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: unassig...@gcc.gnu.org
        ReportedBy: mar...@trippelsdorf.de


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.

Reply via email to