re PR debug/34895 (ICE in force_type_die, at dwarf2out.c:12923)

PR debug/34895
        * dwarf2out.c (force_type_die): Use modified_type_die instead of
        gen_type_die.

        * g++.dg/debug/pr34895.cc: New testcase.

From-SVN: r131761
This commit is contained in:
Michael Matz 2008-01-23 16:44:27 +00:00 committed by Michael Matz
parent 1b7af7b04c
commit b4da9f9dd0
4 changed files with 32 additions and 5 deletions

View File

@ -1,3 +1,9 @@
2008-01-23 Michael Matz <matz@suse.de>
PR debug/34895
* dwarf2out.c (force_type_die): Use modified_type_die instead of
gen_type_die.
2008-01-23 Andreas Krebbel <krebbel1@de.ibm.com>
* ipa-struct-reorg.c (create_new_malloc): Use pointer type as

View File

@ -13736,11 +13736,8 @@ force_type_die (tree type)
else
context_die = comp_unit_die;
type_die = lookup_type_die (type);
if (type_die)
return type_die;
gen_type_die (type, context_die);
type_die = lookup_type_die (type);
type_die = modified_type_die (type, TYPE_READONLY (type),
TYPE_VOLATILE (type), context_die);
gcc_assert (type_die);
}
return type_die;

View File

@ -1,3 +1,8 @@
2008-01-23 Michael Matz <matz@suse.de>
PR debug/34895
* g++.dg/debug/pr34895.cc: New testcase.
2008-01-23 Richard Guenther <rguenther@suse.de>
PR middle-end/31529

View File

@ -0,0 +1,19 @@
// { dg-do compile }
// { dg-options "-O2 -g" }
//
// Copyright (C) 2008 Free Software Foundation, Inc.
// Contributed by Theodore.Papadopoulo 20 Jan 2008 <Theodore.Papadopoulo@sophia.inria.fr>
struct A {
A() { }
unsigned operator()() { return 1; }
};
struct B: public A {
typedef const A base;
using base::operator();
B() { }
};
int
main() {
B b;
}