Message ID | 6191032.Fc1XF9ym2H@polaris |
---|---|
State | New |
Headers | show |
On Sat, Dec 14, 2013 at 7:24 AM, Eric Botcazou <ebotcazou@adacore.com> wrote: > This fixes an oversight in the recent change to var-tracking.c > http://gcc.gnu.org/ml/gcc-patches/2013-10/msg02007.html > whereby union types are not treated in a consistent way. > > Tested on x86_64-suse-linux, applied on the mainline as obvious. > > > 2013-12-14 Eric Botcazou <ebotcazou@adacore.com> > > * var-tracking.c (add_stores): Fix oversight in latest commit. > > > 2013-12-14 Eric Botcazou <ebotcazou@adacore.com> > > * gcc.dg/pr59350.c: New test. > I checked in this patch: http://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=3f899b097ac0188fc55c763afc1ccde5e2766027 to fix ChangeLog entries.
> I checked in this patch: > > http://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=3f899b097ac0188fc55c763afc1 > ccde5e2766027 > > to fix ChangeLog entries. Thanks!
Index: var-tracking.c =================================================================== --- var-tracking.c (revision 205982) +++ var-tracking.c (working copy) @@ -5938,6 +5938,7 @@ add_stores (rtx loc, const_rtx expr, voi && REG_EXPR (loc) && TREE_CODE (REG_EXPR (loc)) == PARM_DECL && DECL_MODE (REG_EXPR (loc)) != BLKmode + && TREE_CODE (TREE_TYPE (REG_EXPR (loc))) != UNION_TYPE && ((MEM_P (DECL_INCOMING_RTL (REG_EXPR (loc))) && XEXP (DECL_INCOMING_RTL (REG_EXPR (loc)), 0) != arg_pointer_rtx) || (GET_CODE (DECL_INCOMING_RTL (REG_EXPR (loc))) == PARALLEL