From c99fa40fbe95dc94e7e55b374f778cc154fd4864 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Fri, 3 Aug 2001 15:24:21 -0700 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/dbxout.c | 16 ++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 06a0e9668a9..b2eb17f34aa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-08-03 Richard Henderson + + * dbxout.c (dbxout_symbol_location): Flatten subregs first; + don't take REGNO of a non-register. + 2001-08-03 John David Anglin * gthr-dce.h (__GTHREAD_MUTEX_INIT_FUNCTION and diff --git a/gcc/dbxout.c b/gcc/dbxout.c index 0d330c22653..4eea7ca82c0 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