https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85153
Peter Maydell <peter.maydell at linaro dot org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |peter.maydell at linaro dot org --- Comment #5 from Peter Maydell <peter.maydell at linaro dot org> --- I was looking to see if this bug had been fixed in gcc trunk, and if you tell godbolt to run the non-preprocessed original code on gcc trunk (ie the source you get by following the godbolt link in comment 1), the compiler ICEs: <source>: In function 'int test7(int)': <source>:76:5: internal compiler error: in linemap_macro_map_loc_to_exp_point, at libcpp/line-map.c:1063 76 | switch (val) { | ^~~~~~ Please submit a full bug report, with preprocessed source if appropriate. See <https://gcc.gnu.org/bugs/> for instructions. Compiler returned: 1 (There are a whole set of these "_Pragma() to disable diagnostics doesn't do the right thing" bugs in bugzilla. So far I have seen test cases which have been fixed in gcc 8, test cases fixed in trunk but not 8, and this one which is differently-broken in trunk. So there isn't a single underlying bug in all cases.)