From b55caa712f100a32d61e8adf6cc28c6af1903a44 Mon Sep 17 00:00:00 2001 From: Kaveh Ghazi Date: Fri, 23 Oct 2009 05:28:25 +0000 Subject: * builtins.c (fold_builtin_cabs): Use validate_arg(). (fold_builtin_cexp): Fix if-logic. (fold_builtin_1): Check subtype for BUILT_IN_CIMAG. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@153488 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 6 ++++++ gcc/builtins.c | 7 ++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e5c26798384..0b4b8eebdc6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2009-10-23 Kaveh R. Ghazi + + * builtins.c (fold_builtin_cabs): Use validate_arg(). + (fold_builtin_cexp): Fix if-logic. + (fold_builtin_1): Check subtype for BUILT_IN_CIMAG. + 2009-10-22 Jeff Law * ira-lives.c (process_single_reg_class_operands): Update the diff --git a/gcc/builtins.c b/gcc/builtins.c index d991408fa28..1243d72048b 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -7194,7 +7194,7 @@ fold_builtin_cabs (location_t loc, tree arg, tree type, tree fndecl) { tree res; - if (TREE_CODE (TREE_TYPE (arg)) != COMPLEX_TYPE + if (!validate_arg (arg, COMPLEX_TYPE) || TREE_CODE (TREE_TYPE (TREE_TYPE (arg))) != REAL_TYPE) return NULL_TREE; @@ -7583,7 +7583,7 @@ fold_builtin_cexp (location_t loc, tree arg0, tree type) #endif if (!validate_arg (arg0, COMPLEX_TYPE) - && TREE_CODE (TREE_TYPE (TREE_TYPE (arg0))) == REAL_TYPE) + || TREE_CODE (TREE_TYPE (TREE_TYPE (arg0))) != REAL_TYPE) return NULL_TREE; #ifdef HAVE_mpc @@ -10017,7 +10017,8 @@ fold_builtin_1 (location_t loc, tree fndecl, tree arg0, bool ignore) break; CASE_FLT_FN (BUILT_IN_CIMAG): - if (validate_arg (arg0, COMPLEX_TYPE)) + if (validate_arg (arg0, COMPLEX_TYPE) + && TREE_CODE (TREE_TYPE (TREE_TYPE (arg0))) == REAL_TYPE) return non_lvalue_loc (loc, fold_build1_loc (loc, IMAGPART_EXPR, type, arg0)); break; -- cgit v1.2.3