Commit 30513cf6 by Andrew Pinski Committed by Andrew Pinski

varasm.c (decode_reg_name): Revert change to check for zero length strings.

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.

From-SVN: r91638
parent bfe5acd6
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> 2004-12-02 Dorit Naishlos <dorit@il.ibm.com>
PR tree-opt/18716 PR tree-opt/18716
......
...@@ -791,7 +791,7 @@ set_user_assembler_name (tree decl, const char *name) ...@@ -791,7 +791,7 @@ set_user_assembler_name (tree decl, const char *name)
int int
decode_reg_name (const char *asmspec) decode_reg_name (const char *asmspec)
{ {
if (asmspec != 0 && strlen (asmspec) != 0) if (asmspec != 0)
{ {
int i; int i;
...@@ -901,10 +901,10 @@ make_decl_rtl (tree decl) ...@@ -901,10 +901,10 @@ make_decl_rtl (tree decl)
name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)); name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
reg_number = decode_reg_name (name);
if (TREE_CODE (decl) != FUNCTION_DECL && DECL_REGISTER (decl)) if (TREE_CODE (decl) != FUNCTION_DECL && DECL_REGISTER (decl))
{ {
reg_number = decode_reg_name (name);
/* First detect errors in declaring global registers. */ /* First detect errors in declaring global registers. */
if (reg_number == -1) if (reg_number == -1)
error ("%Jregister name not specified for %qD", decl, decl); error ("%Jregister name not specified for %qD", decl, decl);
...@@ -955,12 +955,19 @@ make_decl_rtl (tree decl) ...@@ -955,12 +955,19 @@ make_decl_rtl (tree decl)
return; return;
} }
} }
/* Now handle ordinary static variables and functions (in memory). /* Now handle ordinary static variables and functions (in memory).
Also handle vars declared register invalidly. */ Also handle vars declared register invalidly. */
else if (name[0] == '*')
if (name[0] == '*' && (reg_number >= 0 || reg_number == -3)) {
#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); error ("%Jregister name given for non-register variable %qD", decl, decl);
}
#endif
}
/* Specifying a section attribute on a variable forces it into a /* Specifying a section attribute on a variable forces it into a
non-.bss section, and thus it cannot be common. */ non-.bss section, and thus it cannot be common. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment