https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61800
Markus Trippelsdorf <trippels at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2014-08-15 Ever confirmed|0 |1 --- Comment #2 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- Testcase from comment2 now passes. But here's a new variant: markus@x4 xslt % cat test.ii #pragma GCC visibility push(hidden) class A { public: unsigned long m_fn1 () const; }; class B; class C { public: ; virtual bool m_fn2 (void) = 0; }; class D { virtual bool m_fn3 (const int &p1, B *p2) = 0; }; class F : public D { bool m_fn3 (const int &p1, B *p2); A mPredicates; }; class B { }; class G : public B { virtual unsigned int m_fn4 () = 0; }; class H : public G { public: int txNodeSetContext_aContextNodeSet; H (B *p1) {} int m_fn5 () { return mPosition < m_fn4 (); } unsigned int m_fn4 (); unsigned int mPosition; }; unsigned int a; C *b; bool F::m_fn3 (const int &p1, B *p2) { if (!b->m_fn2 ()) return false; unsigned int c = mPredicates.m_fn1 (); for (1; 1 < c; ++a) { H d (p2); while (d.m_fn5 ()) { do { } while (0); } } } markus@x4 xslt % /var/tmp/gcc_test/usr/local/bin/c++ -c -O2 test.ii test.ii: In member function ‘virtual bool F::m_fn3(const int&, B*)’: test.ii:63:1: internal compiler error: Segmentation fault } ^ 0xb9ddcf crash_signal ../../gcc/gcc/toplev.c:337 0x9fd5ea decl_maybe_in_construction_p(tree_node*, tree_node*, gimple_statement_base*, tree_node*) ../../gcc/gcc/ipa-devirt.c:2214 0x9fe561 get_polymorphic_call_info(tree_node*, tree_node*, tree_node**, long*, ipa_polymorphic_call_context*, gimple_statement_base*) ../../gcc/gcc/ipa-devirt.c:2436 0x848244 cgraph_node::create_indirect_edge(gimple_statement_base*, int, long, int) ../../gcc/gcc/cgraph.c:968 0x852af1 cgraph_clone_edge(cgraph_edge*, cgraph_node*, gimple_statement_base*, unsigned int, long, int, bool) ../../gcc/gcc/cgraphclones.c:139 0x85427f cgraph_node::create_version_clone(tree_node*, vec<cgraph_edge*, va_heap, vl_ptr>, bitmap_head*) ../../gcc/gcc/cgraphclones.c:876 0x8543c7 cgraph_node::create_version_clone_with_body(vec<cgraph_edge*, va_heap, vl_ptr>, vec<ipa_replace_map*, va_gc, vl_embed>*, bitmap_head*, bool, bitmap_head*, basic_block_def*, char const*) ../../gcc/gcc/cgraphclones.c:943 0x10d1adb split_function ../../gcc/gcc/ipa-split.c:1235 0x10d5d8e execute_split_functions ../../gcc/gcc/ipa-split.c:1636 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. markus@x4 xslt %