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:
parent
613698c025
commit
792eaee2cb
4 changed files with 34 additions and 3 deletions
|
@ -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
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -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
|
||||
|
|
18
gcc/testsuite/gcc.dg/pr30189.c
Normal file
18
gcc/testsuite/gcc.dg/pr30189.c
Normal 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);
|
||||
}
|
Loading…
Add table
Reference in a new issue