diff options
author | Richard Henderson <rth@redhat.com> | 2001-08-03 15:24:21 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2001-08-03 15:24:21 -0700 |
commit | c99fa40fbe95dc94e7e55b374f778cc154fd4864 (patch) | |
tree | 87b4bde05f5419a601b15bb47336ea21675c5efd /gcc/dbxout.c | |
parent | 5241c227325d247ee6aed67e3a056b1f1d16149f (diff) | |
download | gcc-c99fa40fbe95dc94e7e55b374f778cc154fd4864.zip gcc-c99fa40fbe95dc94e7e55b374f778cc154fd4864.tar.gz gcc-c99fa40fbe95dc94e7e55b374f778cc154fd4864.tar.bz2 |
dbxout.c (dbxout_symbol_location): Flatten subregs first; don't take REGNO of a non-register.
* dbxout.c (dbxout_symbol_location): Flatten subregs first;
don't take REGNO of a non-register.
From-SVN: r44615
Diffstat (limited to 'gcc/dbxout.c')
-rw-r--r-- | gcc/dbxout.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/gcc/dbxout.c b/gcc/dbxout.c index 0d330c2..4eea7ca 100644 --- a/gcc/dbxout.c +++ b/gcc/dbxout.c @@ -2096,13 +2096,7 @@ dbxout_symbol_location (decl, type, suffix, home) If the decl was from an inline function, then its rtl is not identically the rtl that was used in this particular compilation. */ - if (GET_CODE (home) == REG) - { - regno = REGNO (home); - if (regno >= FIRST_PSEUDO_REGISTER) - return 0; - } - else if (GET_CODE (home) == SUBREG) + if (GET_CODE (home) == SUBREG) { rtx value = home; @@ -2113,7 +2107,13 @@ dbxout_symbol_location (decl, type, suffix, home) if (REGNO (value) >= FIRST_PSEUDO_REGISTER) return 0; } - regno = REGNO (alter_subreg (home)); + home = alter_subreg (home); + } + if (GET_CODE (home) == REG) + { + regno = REGNO (home); + if (regno >= FIRST_PSEUDO_REGISTER) + return 0; } /* The kind-of-variable letter depends on where |