OSDN Git Service

2004-12-02 Andrew Pinski <pinskia@physics.uc.edu>
authorpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 2 Dec 2004 14:05:50 +0000 (14:05 +0000)
committerpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 2 Dec 2004 14:05:50 +0000 (14:05 +0000)
        * varasm.c (decode_reg_name): Revert change to check for zero
        length strings.
        (make_decl_rtl): Make sure that we call decode_reg_name only
        when needed.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91638 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/varasm.c

index 6b4ce0d..cd60511 100644 (file)
@@ -1,3 +1,10 @@
+2004-12-02  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       * varasm.c (decode_reg_name): Revert change to check for zero
+       length strings.
+       (make_decl_rtl): Make sure that we call decode_reg_name only
+       when needed.
+
 2004-12-02  Dorit Naishlos  <dorit@il.ibm.com>
 
        PR tree-opt/18716
index e4fb1ee..d270701 100644 (file)
@@ -791,7 +791,7 @@ set_user_assembler_name (tree decl, const char *name)
 int
 decode_reg_name (const char *asmspec)
 {
-  if (asmspec != 0 && strlen (asmspec) != 0)
+  if (asmspec != 0)
     {
       int i;
 
@@ -901,10 +901,10 @@ make_decl_rtl (tree decl)
 
   name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
 
-  reg_number = decode_reg_name (name);
 
   if (TREE_CODE (decl) != FUNCTION_DECL && DECL_REGISTER (decl))
     {
+      reg_number = decode_reg_name (name);
       /* First detect errors in declaring global registers.  */
       if (reg_number == -1)
        error ("%Jregister name not specified for %qD", decl, decl);
@@ -955,12 +955,19 @@ make_decl_rtl (tree decl)
          return;
        }
     }
-
   /* Now handle ordinary static variables and functions (in memory).
      Also handle vars declared register invalidly.  */
-
-  if (name[0] == '*' && (reg_number >= 0 || reg_number == -3))
-    error ("%Jregister name given for non-register variable %qD", decl, decl);
+  else if (name[0] == '*')
+  {
+#ifdef REGISTER_PREFIX
+    if (strlen (REGISTER_PREFIX) != 0)
+      {
+       reg_number = decode_reg_name (name)
+       if (reg_number >= 0 || reg_number == -3)
+         error ("%Jregister name given for non-register variable %qD", decl, decl);
+      }
+#endif
+  }
 
   /* Specifying a section attribute on a variable forces it into a
      non-.bss section, and thus it cannot be common.  */