OSDN Git Service

2007-07-06 Ian Lance Taylor <iant@google.com>
authorzack <zack@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 6 Jul 2007 17:57:58 +0000 (17:57 +0000)
committerzack <zack@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 6 Jul 2007 17:57:58 +0000 (17:57 +0000)
            Zack Weinberg  <zackw@panix.com>

PR middle-end/32441
* builtins.c (std_expand_builtin_va_start): Don't use make_tree.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126424 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/builtins.c

index 7a9b7c9..8bf43ab 100644 (file)
@@ -1,3 +1,9 @@
+2007-07-06  Ian Lance Taylor  <iant@google.com>
+            Zack Weinberg  <zackw@panix.com>
+
+       PR middle-end/32441
+       * builtins.c (std_expand_builtin_va_start): Don't use make_tree.
+
 2007-07-06  Richard Sandiford  <richard@codesourcery.com>
 
        * config/sh/sh.md (*prefetch_i4): Disable for TARGET_VXWORKS_RTP.
index cf1d743..45dea02 100644 (file)
@@ -4649,14 +4649,8 @@ std_build_builtin_va_list (void)
 void
 std_expand_builtin_va_start (tree valist, rtx nextarg)
 {
-  tree t;
-  t = make_tree (sizetype, nextarg);
-  t = fold_convert (ptr_type_node, t);
-
-  t = build2 (MODIFY_EXPR, TREE_TYPE (valist), valist, t);
-  TREE_SIDE_EFFECTS (t) = 1;
-
-  expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
+  rtx va_r = expand_expr (valist, NULL_RTX, VOIDmode, EXPAND_WRITE);
+  convert_move (va_r, nextarg, 0);
 }
 
 /* Expand EXP, a call to __builtin_va_start.  */