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:
parent
61c627ed2c
commit
0b068ee90d
@ -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
|
||||
|
17
gcc/stmt.c
17
gcc/stmt.c
@ -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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user