https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53050
Markus Trippelsdorf <trippels at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |trippels at gcc dot gnu.org --- Comment #9 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- Quick reduction, several uninitialized vars. markus@x4 tmp % cat b.ii class A; class B { public: B(A *); }; template <typename> char saturate_cast(int p1) { return p1 > 0; } class A { virtual void operator()(const unsigned char **, unsigned char *); }; struct C : A { C(int) {} void operator()(const unsigned char **, unsigned char *p2) { int i, a; double b; int *c; unsigned char *D = p2; for (; i; i += 2) { int d = a + c[i], e = a + c[i + 1]; D[i] = saturate_cast<char>(d * b); D[i + 1] = saturate_cast<char>(e * b); } } }; int f; void getColumnSumFilter() { B(new C(f)); } markus@x4 tmp % g++ -O3 -c b.ii b.ii: In member function ‘virtual void C::operator()(const unsigned char**, unsigned char*)’: b.ii:12:8: internal compiler error: tree check: expected class ‘expression’, have ‘exceptional’ (ssa_name) in tree_operand_check, at tree.h:3436 void operator()(const unsigned char **, unsigned char *p2) { ^ 0xf398a7 tree_class_check_failed(tree_node const*, tree_code_class, char const*, int, char const*) ../../gcc/gcc/tree.c:9638 0xf12861 expr_check(tree_node*, char const*, int, char const*) ../../gcc/gcc/tree.h:3107 0xf12861 tree_operand_check(tree_node*, int, char const*, int, char const*) ../../gcc/gcc/tree.h:3436 0xf12861 vect_get_constant_vectors ../../gcc/gcc/tree-vect-slp.c:2744 0xf12bb3 vect_get_slp_defs(vec<tree_node*, va_heap, vl_ptr>, _slp_tree*, vec<vec<tree_node*, va_heap, vl_ptr>, va_heap, vl_ptr>*, int) ../../gcc/gcc/tree-vect-slp.c:3025 0xee249a vectorizable_condition(gimple*, gimple_stmt_iterator*, gimple**, tree_node*, int, _slp_tree*) ../../gcc/gcc/tree-vect-stmts.c:7389 0xef4998 vect_transform_stmt(gimple*, gimple_stmt_iterator*, bool*, _slp_tree*, _slp_instance*) ../../gcc/gcc/tree-vect-stmts.c:8020 0xf0bd7d vect_schedule_slp_instance ../../gcc/gcc/tree-vect-slp.c:3482 0xf0bbd9 vect_schedule_slp_instance ../../gcc/gcc/tree-vect-slp.c:3363 0xf0bbd9 vect_schedule_slp_instance ../../gcc/gcc/tree-vect-slp.c:3363 0xf0d886 vect_schedule_slp(vec_info*) ../../gcc/gcc/tree-vect-slp.c:3547 0xefab65 vect_transform_loop(_loop_vec_info*) ../../gcc/gcc/tree-vect-loop.c:6619 0xf15287 vectorize_loops() ../../gcc/gcc/tree-vectorizer.c:533