Redo the ProPolice patches, there were partly broken.
[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.2 2004/06/20 00:10:52 joerg Exp $
2
3 diff -u ../gcc.orig/calls.c calls.c
4 --- ../gcc.orig/calls.c 2004-06-19 22:27:09.000000000 +0200
5 +++ calls.c     2004-06-20 01:16:04.000000000 +0200
6 @@ -2321,8 +2321,12 @@
7           {
8             /* For variable-sized objects, we must be called with a target
9                specified.  If we were to allocate space on the stack here,
10 -              we would have no way of knowing when to free it.  */
11 -           rtx d = assign_temp (TREE_TYPE (exp), 1, 1, 1);
12 +              we would have no way of knowing when to free it.
13 +
14 +              This is the structure of a function return object and it isn't
15 +              a character array for the stack protection, so it is
16 +              marked using the assignment of the KEEP argument to 5.  */
17 +           rtx d = assign_temp (TREE_TYPE (exp), 5, 1, 1);
18  
19             mark_temp_addr_taken (d);
20             structure_value_addr = XEXP (d, 0);