http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51650
Bug #: 51650
Summary: [4.7 regression] ICE in dwarf2out_finish, at
dwarf2out.c:22501 while building libxul
Classification: Unclassified
Product: gcc
Version: 4.7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: lto
AssignedTo: [email protected]
ReportedBy: [email protected]
After applying the patch that fixes Bug 51635 I've hit new bug
while building Firefox's libxul.
% cat test.ii
extern "C" typedef int PRUint32;
typedef PRUint32 nsresult;
class nsQueryFrame
{
};
extern "C" struct PLDHashEntryHdr
{
};
template < class > class nsPtrHashKey:PLDHashEntryHdr
{
};
class nsIFrame;
namespace mozilla
{
struct FramePropertyDescriptor
{
};
class FramePropertyTable
{
public:FramePropertyTable ():mLastFrame (), mLastEntry ()
{
}
void *Get (nsIFrame *, FramePropertyDescriptor *, bool *);
class Entry:nsPtrHashKey < nsIFrame >
{
};
nsIFrame *mLastFrame;
Entry *mLastEntry;
};
class FrameProperties
{
public:FrameProperties ():mTable (), mFrame ()
{
}
void *Get (FramePropertyDescriptor * aProperty)
{
mTable->Get (0, aProperty, 0);
}
FramePropertyTable *mTable;
nsIFrame *mFrame;
};
}
extern "C" class nsIFrame:nsQueryFrame
{
public:typedef mozilla::FramePropertyDescriptor FramePropertyDescriptor;
typedef mozilla::FrameProperties FrameProperties;
FrameProperties Properties ()
{
}
static FramePropertyDescriptor *EmbeddingLevelProperty ()
{
static FramePropertyDescriptor descriptor;
return &descriptor;
}
};
nsresult
nsCaretGetCaretFrameForNodeOffset ()
{
nsIFrame *theFrame;
theFrame->Properties ().Get (nsIFrame::EmbeddingLevelProperty ());
}
% g++ -flto -g -w test.ii
lto1: internal compiler error: in dwarf2out_finish, at dwarf2out.c:22501
Please submit a full bug report,
with preprocessed source if appropriate.