re PR debug/32610 (ICE in gen_tagged_type_instantiation_die, at dwarf2out.c:12762)

PR debug/32610
	* dwarf2out.c (gen_decl_die): Don't call
	gen_tagged_type_instantiation_die if decl doesn't have tagged type.

	* gcc.dg/debug/pr32610.c: New test.

From-SVN: r127669
This commit is contained in:
Jakub Jelinek 2007-08-21 19:11:20 +02:00 committed by Jakub Jelinek
parent af9fc1dd63
commit d6b3c79757
4 changed files with 25 additions and 1 deletions

View file

@ -1,3 +1,9 @@
2007-08-21 Jakub Jelinek <jakub@redhat.com>
PR debug/32610
* dwarf2out.c (gen_decl_die): Don't call
gen_tagged_type_instantiation_die if decl doesn't have tagged type.
2007-08-21 Paul Brook <paul@codesourcery.com>
Nathan Sidwell <nathan@codesourcery.com>
Mark Mitchell <mark@codesourcery.com>

View file

@ -13622,7 +13622,8 @@ gen_decl_die (tree decl, dw_die_ref context_die)
was generated within the original definition of an inline function) we
have to generate a special (abbreviated) DW_TAG_structure_type,
DW_TAG_union_type, or DW_TAG_enumeration_type DIE here. */
if (TYPE_DECL_IS_STUB (decl) && decl_ultimate_origin (decl) != NULL_TREE)
if (TYPE_DECL_IS_STUB (decl) && decl_ultimate_origin (decl) != NULL_TREE
&& is_tagged_type (TREE_TYPE (decl)))
{
gen_tagged_type_instantiation_die (TREE_TYPE (decl), context_die);
break;

View file

@ -1,5 +1,8 @@
2007-08-21 Jakub Jelinek <jakub@redhat.com>
PR debug/32610
* gcc.dg/debug/pr32610.c: New test.
* g++.dg/init/new24.C: New test.
PR middle-end/32912

View file

@ -0,0 +1,14 @@
/* PR debug/32610 */
/* { dg-do compile } */
inline void
foo (int x)
{
double (*arr)[x];
}
void
bar (void)
{
foo (1);
}