From: Jim Wilson Date: Tue, 16 Sep 1997 20:59:22 +0000 (+0000) Subject: Fix H.J. Lu's alpha-linux bug with TImode constructors. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=21002281e55cbe5b1c8fbacc9074629612dd1b4a;p=platform%2Fupstream%2Fgcc.git Fix H.J. Lu's alpha-linux bug with TImode constructors. * expr.c (expand_expr): Remove previous incorrect change. If target and slot has no DECL_RTL, then call mark_addressable again for the slot after we give it RTL. From-SVN: r15496 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 50633dc..53929a1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Tue Sep 16 11:13:46 1997 Jim Wilson + + * expr.c (expand_expr): Remove previous incorrect change. + If target and slot has no DECL_RTL, then call mark_addressable + again for the slot after we give it RTL. + Tue Sep 16 10:14:55 1997 Jeffrey A Law (law@cygnus.com) * version.c: Bump for snapshot. diff --git a/gcc/expr.c b/gcc/expr.c index 96033da..dd0050d 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -6919,11 +6919,6 @@ expand_expr (exp, target, tmode, modifier) /* All temp slots at this level must not conflict. */ preserve_temp_slots (target); DECL_RTL (slot) = target; - if (TREE_ADDRESSABLE (slot)) - { - TREE_ADDRESSABLE (slot) = 0; - mark_addressable (slot); - } /* Since SLOT is not known to the called function to belong to its stack frame, we must build an explicit @@ -6955,8 +6950,17 @@ expand_expr (exp, target, tmode, modifier) if (TREE_OPERAND (exp, 1) == NULL_TREE) return target; } - - DECL_RTL (slot) = target; + else + { + DECL_RTL (slot) = target; + /* If we must have an addressable slot, then make sure that + the RTL that we just stored in slot is OK. */ + if (TREE_ADDRESSABLE (slot)) + { + TREE_ADDRESSABLE (slot) = 0; + mark_addressable (slot); + } + } } exp1 = TREE_OPERAND (exp, 3) = TREE_OPERAND (exp, 1);