------- Comment #9 from hjl at lucon dot org  2007-08-07 17:03 -------
Does this patch:

--- builtins.c.round    2007-07-29 13:18:40.000000000 -0700
+++ builtins.c  2007-08-07 09:58:46.000000000 -0700
@@ -2689,6 +2689,16 @@ expand_builtin_int_roundingfn_2 (tree ex

   start_sequence ();

+  if (TREE_CODE (exp) == NOP_EXPR)
+    switch (TREE_CODE (TREE_OPERAND (exp, 0)))
+      {
+      case FIX_TRUNC_EXPR:
+       builtin_optab = sfixtrunc_optab;
+       break;
+      default:
+       gcc_unreachable ();
+      }
+
   if (expand_sfix_optab (target, op0, builtin_optab))
     {
       /* Output the entire sequence.  */
@@ -2698,6 +2708,8 @@ expand_builtin_int_roundingfn_2 (tree ex
       return target;
     }

+  gcc_assert (TREE_CODE (exp) == CALL_EXPR);
+
   /* If we were unable to expand via the builtin, stop the sequence
      (without outputting the insns) and call to the library function
      with the stabilized argument list.  */

make any senses?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33007

Reply via email to