https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65242
Bug ID: 65242 Summary: [5 Regression] ICE (in gen_add2_insn, at optabs.c:4761) on powerpc64le-linux-gnu Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: doko at gcc dot gnu.org with r221042 $ g++ -c -g -O3 loadbi3.ii loadbi3.ii: In function 'void J::m_fn8()': loadbi3.ii:91:1: internal compiler error: in gen_add2_insn, at optabs.c:4761 } ^ Please submit a full bug report, with preprocessed source if appropriate. $ cat loadbi3.ii class A { public: int m_fn1(); }; class B { public: enum IOMode { reading }; }; class tn_file_buf_stream : B { public: tn_file_buf_stream(IOMode); ~tn_file_buf_stream(); }; class C { public: int &operator[](int); }; class D { public: bool m_fn2(); }; class F { public: int m_fn3(D &); }; class G { public: D bdt; }; class ObjectType { public: int id; D weather; struct H { F terrainaccess; }; H m_fn4(); struct { A images; } weatherPicture[]; ObjectType *m_fn5(); int m_fn6(); } a; #pragma pack(1) class I {}; class J { J(I *); I translationTableTMISSPart; void m_fn8(); tn_file_buf_stream *MissFile; void m_fn9(); virtual G *m_fn7(int, int); }; int b, c, d, g; int e[5]; short f; void J::m_fn9() { int h; C k; for (; b;) { int l = c, n = c & 1; for (int m; d;) { int o = 0; for (int p = 0; p < 2 && !o; p++) if (g) for (int i; i < a.m_fn6(); i++) { ObjectType *q = a.m_fn5(); for (int r = 0; r < 6; r++) if (q->weather.m_fn2()) for (int j; j < q->weatherPicture[r].images.m_fn1(); j++) if (e[m]) { G *s = m_fn7(l, n); if (q->m_fn4().terrainaccess.m_fn3(s->bdt)) g = o = 1; } } k[h++] = f; } } } void J::m_fn8() try { tn_file_buf_stream t(B::reading); MissFile = &t; m_fn9(); J u(0); u.m_fn8(); } catch (int) { }