https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119184

            Bug ID: 119184
           Summary: internal compiler error: in tokens_buff_and_token
           Product: gcc
           Version: 14.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: xieym3 at zohomail dot com
  Target Milestone: ---

The following code triggers an internal compiler error (ICE) with GCC 11.2.0
and 14.2.0, causes a compilation timeout with GCC trunk versions.
$ timeout 300 gcc -x c -std=c2x 979-reduced.c 
979-reduced.c: In function ‘main’:
979-reduced.c:3:3: internal compiler error: in tokens_buff_add_token, at
libcpp/macro.cc:2619
    3 |   float x = max(
      |   ^~~~~
0x507ddf0 tokens_buff_add_token
        /data/xieym/llm/src/gcc-14.2.0/libcpp/macro.cc:2619
0x507fcb2 replace_args
        /data/xieym/llm/src/gcc-14.2.0/libcpp/macro.cc:2299
0x507fcb2 enter_macro_context
        /data/xieym/llm/src/gcc-14.2.0/libcpp/macro.cc:1492
0x5080d7f cpp_get_token_1
        /data/xieym/llm/src/gcc-14.2.0/libcpp/macro.cc:3027
0xfb4f14 get_token
        /data/xieym/llm/src/gcc-14.2.0/gcc/c-family/c-lex.cc:311
0xfb602b c_lex_with_flags(tree_node**, unsigned int*, unsigned char*, int)
        /data/xieym/llm/src/gcc-14.2.0/gcc/c-family/c-lex.cc:572
0xe308a1 c_lex_one_token
        /data/xieym/llm/src/gcc-14.2.0/gcc/c/c-parser.cc:311
0xe3127f c_parser_peek_token(c_parser*)
        /data/xieym/llm/src/gcc-14.2.0/gcc/c/c-parser.cc:515
0xe38074 c_parser_declaration_or_fndef
        /data/xieym/llm/src/gcc-14.2.0/gcc/c/c-parser.cc:2700
0xe4d3b8 c_parser_compound_statement_nostart
        /data/xieym/llm/src/gcc-14.2.0/gcc/c/c-parser.cc:7135
0xe49cfb c_parser_compound_statement
        /data/xieym/llm/src/gcc-14.2.0/gcc/c/c-parser.cc:6531
0xe39a2f c_parser_declaration_or_fndef
        /data/xieym/llm/src/gcc-14.2.0/gcc/c/c-parser.cc:3017
0xe350c3 c_parser_external_declaration
        /data/xieym/llm/src/gcc-14.2.0/gcc/c/c-parser.cc:2046
0xe345a7 c_parser_translation_unit
        /data/xieym/llm/src/gcc-14.2.0/gcc/c/c-parser.cc:1900
0xec8a1e c_parse_file()
        /data/xieym/llm/src/gcc-14.2.0/gcc/c/c-parser.cc:26887
0xfea394 c_common_parse_file()
        /data/xieym/llm/src/gcc-14.2.0/gcc/c-family/c-opts.cc:1311
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
$ cat 979-reduced.c
#define max(X, Y) (((X) >= (Y)) ? (X) : (Y))
void main(void) {
  float x = max(
      x,
      max(x,
          max(x,
              max(x,
                  max(x,
                      max(x,
                          max(x,
                              max(x,
                                  max(x,
                                      max(x,
                                          max(x,
                                              max(x,
                                                  max(x,
                                                      max(x,
                                                          max(x,
                                                              max(x,
                                                                  max(x,
                                                                      max(x,
                                                                         
max(x,
                                                                             
max(x,
                                                                               
  max(x,
                                                                               
      max(x,
                                                                               
          max(x,
                                                                               
              max(x,
                                                                               
                  max(x,
                                                                               
                      max(x,
                                                                               
                          max(x,
                                                                               
                              max(x,
                                                                               
                                  x))))))))))))))))))))))))))));

Reproduction link: https://godbolt.org/z/q5aaf8coG

Reply via email to