re PR debug/30189 (ICE on modified_type_die)

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.

From-SVN: r121638
This commit is contained in:
Alexandre Oliva 2007-02-06 01:35:10 +00:00 committed by Alexandre Oliva
parent 613698c025
commit 792eaee2cb
4 changed files with 34 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2007-02-05 Alexandre Oliva <aoliva@redhat.com>
PR debug/30189
* dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE
even if cv-qualification is the same.
2007-02-05 Geoffrey Keating <geoffk@apple.com>
* config/rs6000/darwin-tramp.asm (__trampoline_setup): Call

View File

@ -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),

View File

@ -1,3 +1,8 @@
2007-02-05 Alexandre Oliva <aoliva@redhat.com>
PR debug/30189
* gcc.dg/pr30189.c: New test.
2007-02-05 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
* gcc.dg/i386-cpuid.h: Test whether SSE4A is supported

View File

@ -0,0 +1,18 @@
/* { dg-do compile } */
/* { dg-options "-g -O" } */
extern void foo (void);
static
void baz (int i)
{
foo ();
typedef char A[i];
struct { A b; } *x = 0;
}
void
bar (i)
{
baz (i);
}