stmt.c (expand_decl): Be more selective about calling mark_reg_pointer.

* stmt.c (expand_decl): Be more selective about calling
        mark_reg_pointer.

From-SVN: r82533
This commit is contained in:
Jeff Law 2004-06-01 01:42:35 -06:00 committed by Jeff Law
parent 61c627ed2c
commit 0b068ee90d
2 changed files with 18 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2004-05-19 Jeff Law <law@redhat.com>
* stmt.c (expand_decl): Be more selective about calling
mark_reg_pointer.
2004-06-01 Nicola Pero <nicola@brainstorm.co.uk>
PR objc/7993

View File

@ -3422,12 +3422,21 @@ expand_decl (tree decl)
SET_DECL_RTL (decl, gen_reg_rtx (reg_mode));
/* Note if the object is a user variable. */
if (!DECL_ARTIFICIAL (decl))
mark_user_reg (DECL_RTL (decl));
{
mark_user_reg (DECL_RTL (decl));
if (POINTER_TYPE_P (type))
mark_reg_pointer (DECL_RTL (decl),
TYPE_ALIGN (TREE_TYPE (TREE_TYPE (decl))));
/* Trust user variables which have a pointer type to really
be pointers. Do not trust compiler generated temporaries
as our type system is totally busted as it relates to
pointer arithmetic which translates into lots of compiler
generated objects with pointer types, but which are not really
pointers. */
if (POINTER_TYPE_P (type))
mark_reg_pointer (DECL_RTL (decl),
TYPE_ALIGN (TREE_TYPE (TREE_TYPE (decl))));
}
maybe_set_unchanging (DECL_RTL (decl), decl);