ia64.c (ia64_encode_section_info): Don't prod global register variables.
authorH.J. Lu <hongjiu.lu@intel.com>
Thu, 8 Apr 2004 05:04:26 +0000 (05:04 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Thu, 8 Apr 2004 05:04:26 +0000 (22:04 -0700)
2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>

* config/ia64/ia64.c (ia64_encode_section_info): Don't prod
global register variables.

From-SVN: r80501

gcc/ChangeLog
gcc/config/ia64/ia64.c

index 34b8e14f8906b97f73c697523fa5391f7bf4d648..434bbaa7e5176ee07a3995a2d81ef22b5153b7ea 100644 (file)
@@ -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,
index 6b90aa843c8625856d0f781a6285f1f9de4d564f..92cc4fd24e983e7db83aa827a1047ba9d7d8493b 100644 (file)
@@ -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));
 }