$ cat errarg.ii
class errarg {
enum { EMPTY } type;
public:
errarg();
};
extern errarg empty_errarg;
extern void errprint(const char *,
const errarg &arg1 = empty_errarg,
const errarg &arg2 = empty_errarg,
const errarg &arg3 = empty_errarg);
errarg::errarg() : type(EMPTY)
{
}
errarg empty_errarg;
(gdb) r -fpreprocessed errarg.ii -O
Starting program: /cvs/test/gcc/gcc/cc1plus -fpreprocessed errarg.ii -O
errarg::errarg()
errarg::errarg()
errarg::errarg()
void __static_initialization_and_destruction_0(int, int)
Program received signal SIGSEGV, Segmentation fault.
import_export_decl (decl=0x200000000049f9c0) at /cvs/gcc/gcc/cp/decl2.c:1773
1773 gcc_assert (DECL_IMPLICIT_INSTANTIATION (decl)
(gdb) p decl.decl.lang_specific
$6 = (struct lang_decl *) 0x0
--
Summary: [4.0 regression] ICE in import_export_decl
Product: gcc
Version: 4.0.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: critical
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: schwab at suse dot de
CC: gcc-bugs at gcc dot gnu dot org
GCC target triplet: ia64-*-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18416