diff options
| author | pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-12-02 14:05:50 +0000 |
|---|---|---|
| committer | pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-12-02 14:05:50 +0000 |
| commit | 376a0b6e67e36330da70f25d8c9529a45b55ecf6 (patch) | |
| tree | eb0b4daf67ef3e3b5188988294375dc441f7648e /gcc/varasm.c | |
| parent | 8d720a93e8772fb12e19835c9ba9394c859dba7d (diff) | |
| download | ppe42-gcc-376a0b6e67e36330da70f25d8c9529a45b55ecf6.tar.gz ppe42-gcc-376a0b6e67e36330da70f25d8c9529a45b55ecf6.zip | |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91638 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/varasm.c')
| -rw-r--r-- | gcc/varasm.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c index e4fb1eee1b6..d270701a83b 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -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. */ |

