diff options
author | aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-02-06 01:35:10 +0000 |
---|---|---|
committer | aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-02-06 01:35:10 +0000 |
commit | 37f26c2d8427efa0b0b36a0ee705f8c15ccb5926 (patch) | |
tree | d183f0b9e7eb1fc5592761718d4cc3a1467dce6f /gcc/dwarf2out.c | |
parent | b67f0bc6f336d9ac17ae15c025ea23429b4431e5 (diff) | |
download | gcc-37f26c2d8427efa0b0b36a0ee705f8c15ccb5926.tar.gz |
gcc/ChangeLog:
PR debug/30189
* dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE
even if cv-qualification is the same.
gcc/testsuite/ChangeLog:
PR debug/30189
* gcc.dg/pr30189.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@121638 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/dwarf2out.c')
-rw-r--r-- | gcc/dwarf2out.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 186c979abb5..d529d8c879d 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -8519,9 +8519,11 @@ modified_type_die (tree type, int is_const_type, int is_volatile_type, gen_type_die (qualified_type, context_die); return lookup_type_die (qualified_type); } - else if (DECL_ORIGINAL_TYPE (name) - && (is_const_type < TYPE_READONLY (dtype) - || is_volatile_type < TYPE_VOLATILE (dtype))) + else if (is_const_type < TYPE_READONLY (dtype) + || is_volatile_type < TYPE_VOLATILE (dtype) + || (is_const_type <= TYPE_READONLY (dtype) + && is_volatile_type <= TYPE_VOLATILE (dtype) + && DECL_ORIGINAL_TYPE (name) != type)) /* cv-unqualified version of named type. Just use the unnamed type to which it refers. */ return modified_type_die (DECL_ORIGINAL_TYPE (name), |