This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug lto/84805] [8 Regression] ICE in get_odr_type, at ipa-devirt.c:2096 since r258133
- From: "ebotcazou at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 12 Mar 2018 12:12:55 +0000
- Subject: [Bug lto/84805] [8 Regression] ICE in get_odr_type, at ipa-devirt.c:2096 since r258133
- Auto-submitted: auto-generated
- References: <bug-84805-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84805
--- Comment #6 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
We have an ordering issue because of forward declarations:
class XclImpRoot : XclRoot {};
class XclImpColRowSettings : XclImpRoot {};
register_odr_type called on XclImpRoot causes get_odr_type to assign the id
number to XclImpColRowSettings before XclImpRoot because the base class:
class XclRoot {
public:
virtual ~XclRoot();
XclRootData &mrData;
};
has an XclRootData field which ultimately references:
struct RootData {
BiffTyp eDateiTyp;
ExtSheetBuffer *pExtSheetBuff;
SharedFormulaBuffer *pShrfmlaBuff;
ExtNameBuff *pExtNameBuff;
ExcelToSc *pFmlaConverter;
XclImpColRowSettings *pColRowBuff;
};
which contains a pointer to XclImpColRowSettings.