[Bug debug/51650] [4.7 regression] LTO ICE in dwarf2out_finish, at dwarf2out.c:22501 while building libxul

markus at trippelsdorf dot de gcc-bugzilla@gcc.gnu.org
Thu Dec 22 18:47:00 GMT 2011


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51650

--- Comment #12 from Markus Trippelsdorf <markus at trippelsdorf dot de> 2011-12-22 18:45:24 UTC ---
 % cat pr51650.ii
class nsQueryFrame
{
};
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;
};
}

class nsFrameList;
class nsIFrame:nsQueryFrame
{
public:
    typedef mozilla::FramePropertyDescriptor FramePropertyDescriptor;
    typedef mozilla::FrameProperties FrameProperties;
    virtual nsFrameList GetChildList ();
    FrameProperties Properties () {
    }
    static FramePropertyDescriptor *EmbeddingLevelProperty () {
        static FramePropertyDescriptor descriptor;
        return &descriptor;
    }
};

void
nsCaretGetCaretFrameForNodeOffset ()
{
    nsIFrame *theFrame;
    theFrame->Properties ().Get (nsIFrame::EmbeddingLevelProperty ());
}

 % g++ -r -nostdlib -g -flto -O1 pr51650.ii
lto1: internal compiler error: in dwarf2out_finish, at dwarf2out.c:22501
Please submit a full bug report,
with preprocessed source if appropriate.



More information about the Gcc-bugs mailing list