https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67511
Bug ID: 67511 Summary: ICE with invalid OpenMP random access iterator Product: gcc Version: 5.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: jakub at gcc dot gnu.org Target Milestone: --- // { dg-do compile } // { dg-options "-fopenmp" } struct I { I (); I (const I &); I &operator++ (); bool operator< (const I &) const; }; __PTRDIFF_TYPE__ operator- (const I &, const I &); void foo (I &x, I &y) { #pragma omp for for (I i = x; i < y; ++i) // { dg-error "no match for" } ; } ICEs: internal compiler error: tree check: expected class ‘type’, have ‘exceptional’ (error_mark) in useless_type_conversion_p, at gimple-expr.c:84