https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120118
Bug ID: 120118 Summary: ICE in c and c++ in cpp_spell_token with unterminated macro stringification inside #pragma message Product: gcc Version: 15.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: mario.rodriguezb1 at um dot es Target Milestone: --- It fails when #pragma message is ended in next after a line break, it happens in C and C++. ``` #define F(X) #X #pragma message F( ) ``` Stack dump ``` prueba.cpp:3:1: internal compiler error: unspellable token PRAGMA_EOL 3 | ) | ^ 0x7f5ea2 c_cpp_diagnostic(cpp_reader*, cpp_diagnostic_level, cpp_warning_reason, rich_location*, char const*, __va_list_tag (*) [1]) .././../gcc-13-source/gcc/c-family/c-common.cc:6710 0x1b1214b cpp_diagnostic_at .././../gcc-13-source/libcpp/errors.cc:67 0x1b1214b cpp_diagnostic .././../gcc-13-source/libcpp/errors.cc:82 0x1b12276 cpp_error(cpp_reader*, cpp_diagnostic_level, char const*, ...) .././../gcc-13-source/libcpp/errors.cc:96 0x1b1c5c1 cpp_spell_token(cpp_reader*, cpp_token const*, unsigned char*, bool) .././../gcc-13-source/libcpp/lex.cc:4426 0x1b25df2 stringify_arg .././../gcc-13-source/libcpp/macro.cc:904 0x1b27fa9 replace_args .././../gcc-13-source/libcpp/macro.cc:1933 0x1b27fa9 enter_macro_context .././../gcc-13-source/libcpp/macro.cc:1483 0x1b28700 cpp_get_token_1 .././../gcc-13-source/libcpp/macro.cc:3018 0x80b15e c_lex_with_flags(tree_node**, unsigned int*, unsigned char*, int) .././../gcc-13-source/gcc/c-family/c-lex.cc:499 0x782e3f c_lex_one_token .././../gcc-13-source/gcc/c/c-parser.cc:294 0x786fbc c_parser_peek_token(c_parser*) .././../gcc-13-source/gcc/c/c-parser.cc:498 0x786fbc pragma_lex(tree_node**, unsigned int*) .././../gcc-13-source/gcc/c/c-parser.cc:13339 0x816580 handle_pragma_message .././../gcc-13-source/gcc/c-family/c-pragma.cc:1380 0x78dbd7 c_parser_pragma .././../gcc-13-source/gcc/c/c-parser.cc:13323 0x7b65e5 c_parser_external_declaration .././../gcc-13-source/gcc/c/c-parser.cc:1906 0x7b6f93 c_parser_translation_unit .././../gcc-13-source/gcc/c/c-parser.cc:1779 0x7b6f93 c_parse_file() .././../gcc-13-source/gcc/c/c-parser.cc:24632 0x814561 c_common_parse_file() .././../gcc-13-source/gcc/c-family/c-opts.cc:1248 ``` It happens since 4.4.7 To reproduce quickly https://gcc.godbolt.org/z/KsbYdoPhc