diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/ia64/ia64.c | 3 |
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 34b8e14..434bbaa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-04-07 H.J. Lu <hongjiu.lu@intel.com> + + * config/ia64/ia64.c (ia64_encode_section_info): Don't prod + global register variables. + 2004-04-07 Joseph S. Myers <jsm@polyomino.org.uk> * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a, diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c index 6b90aa8..92cc4fd 100644 --- a/gcc/config/ia64/ia64.c +++ b/gcc/config/ia64/ia64.c @@ -1116,7 +1116,10 @@ ia64_encode_section_info (tree decl, rtx rtl, int first) { default_encode_section_info (decl, rtl, first); + /* Careful not to prod global register variables. */ if (TREE_CODE (decl) == VAR_DECL + && GET_CODE (DECL_RTL (decl)) == MEM + && GET_CODE (XEXP (DECL_RTL (decl), 0)) == SYMBOL_REF && (TREE_STATIC (decl) || DECL_EXTERNAL (decl))) ia64_encode_addr_area (decl, XEXP (rtl, 0)); } |