https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89288
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P1 |P3 Target Milestone|9.0 |--- Summary|[9 Regression] ICE in |ICE in tree_code_size, at |tree_code_size, at |tree.c:865 |tree.c:865 | --- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- Hmm, we don't seem to get consensus here. I also don't see how this is a regression, my GCC 8 compiler doesn't know __builtin_has_attribute. So, removing the regression marker. Can we, for GCC 9, simply say sorry ("unsupported argument to __builtin_has_attribute"); instead of ICEing and/or extending the specification in some ways? For reference, GCC 8 says t.c:1:22: warning: implicit declaration of function ‘__builtin_has_attribute’; did you mean ‘__builtin_va_start’? [-Wimplicit-function-declaration] typedef int Assert [(__builtin_has_attribute (1, target("sse")) == 1)]; ^~~~~~~~~~~~~~~~~~~~~~~ __builtin_va_start t.c:1:50: warning: implicit declaration of function ‘target’ [-Wimplicit-function-declaration] typedef int Assert [(__builtin_has_attribute (1, target("sse")) == 1)]; ^~~~~~ t.c:1:13: error: variably modified ‘Assert’ at file scope typedef int Assert [(__builtin_has_attribute (1, target("sse")) == 1)]; ^~~~~~