https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63512
Bug ID: 63512 Summary: [5 Regression] ICE: error: virtual use of statement not up-to-date Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: trippels at gcc dot gnu.org ~ % cat ParseDeclCXX.ii extern "C" { void __assert_fail (); unsigned long strlen (const char *); } class A { int Data; int Length; public: A (const char *p1) : Data () { p1 ? void() : __assert_fail (); Length = strlen (p1); } }; enum TokenKind { semi }; class B { public: void m_fn1 (); }; class C { void m_fn2 (TokenKind, int, A); struct D { D (int); B Range; }; int *m_fn3 (const int &, int &, int **); }; int a, b; int * C::m_fn3 (const int &, int &, int **) { D c (0); if (a) c.Range.m_fn1 (); m_fn2 (semi, 0, b ? "" : a ? "alias declaration" : "using declaration"); } ~ % g++ -c -O2 ParseDeclCXX.ii ParseDeclCXX.ii: In member function ‘int* C::m_fn3(const int&, int&, int**)’: ParseDeclCXX.ii:38:1: error: virtual use of statement not up-to-date C::m_fn3 (const int &, int &, int **) ^ # VUSE <.MEM_16> _21 = 17; ParseDeclCXX.ii:38:1: internal compiler error: verify_ssa failed 0x10bb6b0b verify_ssa(bool, bool) ../../gcc/gcc/tree-ssa.c:1055 0x1087664b execute_function_todo ../../gcc/gcc/passes.c:1758 0x10877087 do_per_function ../../gcc/gcc/passes.c:1478 0x1087734f execute_todo ../../gcc/gcc/passes.c:1808 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions.