[Bug c++/53050] ssa_forward_propagate_and_combine: segmentation fault

trippels at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Nov 11 20:29:00 GMT 2015


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


More information about the Gcc-bugs mailing list