Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
[dragonfly.git] / gnu / usr.bin / cc34 / cc_prep / patches / calls.c.patch
1 $DragonFly: src/gnu/usr.bin/cc34/cc_prep/patches/calls.c.patch,v 1.3 2004/12/21 13:10:48 joerg Exp $
2
3 ===================================================================
4 RCS file: /home/joerg/wd/repository/dragonflybsd/src/contrib/gcc-3.4/gcc/calls.c,v
5 retrieving revision 1.2
6 diff -u -r1.2 calls.c
7 --- calls.c     20 Dec 2004 19:23:23 -0000      1.2
8 +++ calls.c     20 Dec 2004 20:48:09 -0000
9 @@ -2321,8 +2321,12 @@
10           {
11             /* For variable-sized objects, we must be called with a target
12                specified.  If we were to allocate space on the stack here,
13 -              we would have no way of knowing when to free it.  */
14 -           rtx d = assign_temp (TREE_TYPE (exp), 1, 1, 1);
15 +              we would have no way of knowing when to free it.
16 +
17 +              This is the structure of a function return object and it isn't
18 +              a character array for the stack protection, so it is
19 +              marked using the assignment of the KEEP argument to 5.  */
20 +           rtx d = assign_temp (TREE_TYPE (exp), 5, 1, 1);
21  
22             mark_temp_addr_taken (d);
23             structure_value_addr = XEXP (d, 0);