fold-const.c (fold_unary): Test for availability of BUILT_IN_COS before simplifying...
authorRoger Sayle <roger@eyesopen.com>
Mon, 5 Feb 2007 19:10:44 +0000 (19:10 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Mon, 5 Feb 2007 19:10:44 +0000 (19:10 +0000)
* fold-const.c (fold_unary) <REAL_PART>: Test for availability of
BUILT_IN_COS before simplifying REAL_PART(CEXPI)) to COS.
<IMAG_PART>: Likewise, check for availability of BUILT_IN_SIN.
* builtins.c (fold_builtin_sincos): Check for TARGET_C99_FUNCTIONS
before canonicalizing sincos to cexpi.
(fold_builtin_cexp): Likewise, for canonicalizing cexp to cexpi.

From-SVN: r121607

gcc/ChangeLog
gcc/builtins.c
gcc/fold-const.c

index ec8b63369ac44911d59c5e81684dd92fc67fbf92..a7124292faac3ce27632c8afaba5b5d68b31c6b0 100644 (file)
@@ -1,3 +1,12 @@
+2007-02-05  Roger Sayle  <roger@eyesopen.com>
+
+       * fold-const.c (fold_unary) <REAL_PART>: Test for availability of
+       BUILT_IN_COS before simplifying REAL_PART(CEXPI)) to COS.
+       <IMAG_PART>: Likewise, check for availability of BUILT_IN_SIN.
+       * builtins.c (fold_builtin_sincos): Check for TARGET_C99_FUNCTIONS
+       before canonicalizing sincos to cexpi.
+       (fold_builtin_cexp): Likewise, for canonicalizing cexp to cexpi.
+
 2007-02-05  Roger Sayle  <roger@eyesopen.com>
 
        * config/alpha/alpha.c (alpha_add_builtins): New Helper function.
index b7ff78203f810a3859a669619dc2175c02ace04d..8e9d9e4c48466de1722b2acd6a0d9ea3aa1ae921 100644 (file)
@@ -7474,6 +7474,8 @@ fold_builtin_sincos (tree arglist)
     return res;
 
   /* Canonicalize sincos to cexpi.  */
+  if (!TARGET_C99_FUNCTIONS)
+    return NULL_TREE;
   fn = mathfn_built_in (type, BUILT_IN_CEXPI);
   if (!fn)
     return NULL_TREE;
@@ -7507,6 +7509,8 @@ fold_builtin_cexp (tree arglist, tree type)
 
   /* In case we can figure out the real part of arg0 and it is constant zero
      fold to cexpi.  */
+  if (!TARGET_C99_FUNCTIONS)
+    return NULL_TREE;
   ifn = mathfn_built_in (rtype, BUILT_IN_CEXPI);
   if (!ifn)
     return NULL_TREE;
index ee2c469921c518388653ef4652cef962561d776c..c147efafb68bbf4d19b9681944fe6384d4190d7e 100644 (file)
@@ -7769,9 +7769,13 @@ fold_unary (enum tree_code code, tree type, tree op0)
              {
              CASE_FLT_FN (BUILT_IN_CEXPI):
                fn = mathfn_built_in (type, BUILT_IN_COS);
-               return build_function_call_expr (fn, TREE_OPERAND (arg0, 1));
+               if (fn)
+                 return build_function_call_expr (fn,
+                                                  TREE_OPERAND (arg0, 1));
+               break;
 
-             default:;
+             default:
+               break;
              }
        }
       return NULL_TREE;
@@ -7808,9 +7812,13 @@ fold_unary (enum tree_code code, tree type, tree op0)
              {
              CASE_FLT_FN (BUILT_IN_CEXPI):
                fn = mathfn_built_in (type, BUILT_IN_SIN);
-               return build_function_call_expr (fn, TREE_OPERAND (arg0, 1));
+               if (fn)
+                 return build_function_call_expr (fn,
+                                                  TREE_OPERAND (arg0, 1));
+               break;
 
-             default:;
+             default:
+               break;
              }
        }
       return NULL_TREE;