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

            Bug ID: 87347
           Summary: ICE in warn_for_abs at gcc/c/c-parser.c:9226 since
                    r264368
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
  Target Milestone: ---

I see some ICEs happening:

$ cat ice.i
int a;
int abs();
void b() { abs(a); }

$ gcc ice.i -Wabsolute-value -c
ice.i: In function ‘b’:
ice.i:3:1: internal compiler error: Segmentation fault
3 | void b() { abs(a); }
  | ^~~~
0xce366f crash_signal
        /home/marxin/Programming/gcc/gcc/toplev.c:325
0x7ffff6bc310f ???
       
/usr/src/debug/glibc-2.27-6.1.x86_64/signal/../sysdeps/unix/sysv/linux/x86_64/sigaction.c:0
0x7f2113 tree_check(tree_node*, char const*, int, char const*, tree_code)
        /home/marxin/Programming/gcc/gcc/tree.h:3112
0x7f2113 warn_for_abs
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:9226
0x7f2113 c_parser_postfix_expression_after_primary
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:9318
0x7e1c47 c_parser_postfix_expression
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:9006
0x7ebb82 c_parser_unary_expression
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:7266
0x7ec9ff c_parser_cast_expression
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:7110
0x7ecc73 c_parser_binary_expression
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:6913
0x7edb35 c_parser_conditional_expression
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:6647
0x7ee160 c_parser_expr_no_commas
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:6564
0x7ee3b2 c_parser_expression
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:9460
0x7f0476 c_parser_expression_conv
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:9493
0x7fc170 c_parser_statement_after_labels
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:5542
0x7fdf7e c_parser_compound_statement_nostart
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:5080
0x7fe6c6 c_parser_compound_statement
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:4914
0x7ffdb4 c_parser_declaration_or_fndef
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:2342
0x80675f c_parser_external_declaration
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:1643
0x806f99 c_parser_translation_unit
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:1524
0x806f99 c_parse_file()
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:18538

$ cat ice.c
void a(void) { abs(0); }

$ gcc -Wabsolute-value ice.c -c
ice.c: In function ‘a’:
ice.c:1:16: warning: implicit declaration of function ‘abs’
[-Wimplicit-function-declaration]
1 | void a(void) { abs(0); }
  |                ^~~
ice.c:1:1: internal compiler error: Segmentation fault
1 | void a(void) { abs(0); }
  | ^~~~
0xce366f crash_signal
        /home/marxin/Programming/gcc/gcc/toplev.c:325
0x7ffff6bc310f ???
       
/usr/src/debug/glibc-2.27-6.1.x86_64/signal/../sysdeps/unix/sysv/linux/x86_64/sigaction.c:0
0x7f2113 tree_check(tree_node*, char const*, int, char const*, tree_code)
        /home/marxin/Programming/gcc/gcc/tree.h:3112
0x7f2113 warn_for_abs
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:9226
0x7f2113 c_parser_postfix_expression_after_primary
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:9318
0x7e1c47 c_parser_postfix_expression
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:9006
0x7ebb82 c_parser_unary_expression
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:7266
0x7ec9ff c_parser_cast_expression
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:7110
0x7ecc73 c_parser_binary_expression
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:6913
0x7edb35 c_parser_conditional_expression
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:6647
0x7ee160 c_parser_expr_no_commas
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:6564
0x7ee3b2 c_parser_expression
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:9460
0x7f0476 c_parser_expression_conv
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:9493
0x7fc170 c_parser_statement_after_labels
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:5542
0x7fdf7e c_parser_compound_statement_nostart
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:5080
0x7fe6c6 c_parser_compound_statement
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:4914
0x7ffdb4 c_parser_declaration_or_fndef
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:2342
0x80675f c_parser_external_declaration
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:1643
0x806f99 c_parser_translation_unit
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:1524
0x806f99 c_parse_file()
        /home/marxin/Programming/gcc/gcc/c/c-parser.c:18538

Reply via email to