+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
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));
-
- if (POINTER_TYPE_P (type))
- mark_reg_pointer (DECL_RTL (decl),
- TYPE_ALIGN (TREE_TYPE (TREE_TYPE (decl))));
+ {
+ mark_user_reg (DECL_RTL (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);