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 %