https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103596
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|[11/12 Regression] ICE: |[9/10/11/12 Regression] |tree check: expected class |ICE: tree check: expected |'type', have 'exceptional' |class 'type', have |(error_mark) in |'exceptional' (error_mark) |useless_type_conversion_p, |in |at gimple-expr.c:88 |useless_type_conversion_p, | |at gimple-expr.c:88 Target Milestone|--- |9.5 --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Testcase which shows this is an older bug: int n; void qux (int a) { } int baz (void) { return -1; } __attribute__ ((returns_twice)) int bar (int b) { if (n != 0) { switch (b) { default: return n + b; case 0: case 2:; } if (n == 2) return 0; } } void foo (void) { qux (n); bar (baz ()); }