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

            Bug ID: 100042
           Summary: ICE in gimple_call_set_fndecl with -Os
                    -fsanitize=undefined -flto -fanalyzer
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: analyzer
          Assignee: dmalcolm at gcc dot gnu.org
          Reporter: acoplan at gcc dot gnu.org
  Target Milestone: ---

Possibly a dup of PR98599, thought it might be worth reporting in any case:

$ cat test.cc
long *a;
void b(unsigned) { *a ^= 9 + *a >> 2; }
int c;
void d() { b(c); }
int main() { d(); }
$ aarch64-linux-gnu-gcc -Os -fsanitize=undefined -flto -fanalyzer test.cc
test.cc: In function ‘b’:
test.cc:2:30: warning: dereference of NULL ‘0B’ [CWE-476]
[-Wanalyzer-null-dereference]
    2 | void b(unsigned) { *a ^= 9 + *a >> 2; }
      |                              ^
  ‘main’: events 1-2
    |
    |    5 | int main() { d(); }
    |      |     ^         ~
    |      |     |         |
    |      |     |         (2) calling ‘d’ from ‘main’
    |      |     (1) entry to ‘main’
    |
    +--> ‘d’: events 3-4
           |
           |    4 | void d() { b(c); }
           |      |      ^      ~
           |      |      |      |
           |      |      |      (4) calling ‘b’ from ‘d’
           |      |      (3) entry to ‘d’
           |
           +--> ‘b’: events 5-6
                  |
                  |    2 | void b(unsigned) { *a ^= 9 + *a >> 2; }
                  |      |      ^                       ~
                  |      |      |                       |
                  |      |      |                       (6) dereference of NULL
‘a’
                  |      |      (5) entry to ‘b’
                  |
during IPA pass: inline
test.cc: In function ‘main’:
test.cc:4:13: internal compiler error: in gimple_call_set_fndecl, at
gimple.h:3135
    4 | void d() { b(c); }
      |             ^
0x7cc398 gimple_call_set_fndecl
        /home/alecop01/toolchain/src/gcc/gcc/gimple.h:3135
0x7cc398 cgraph_edge::redirect_call_stmt_to_callee(cgraph_edge*)
        /home/alecop01/toolchain/src/gcc/gcc/cgraph.c:1568
0xd731e0 redirect_all_calls(copy_body_data*, basic_block_def*)
        /home/alecop01/toolchain/src/gcc/gcc/tree-inline.c:2962
0xd77f0e copy_cfg_body
        /home/alecop01/toolchain/src/gcc/gcc/tree-inline.c:3117
0xd77f0e copy_body
        /home/alecop01/toolchain/src/gcc/gcc/tree-inline.c:3300
0xd7b1ff expand_call_inline
        /home/alecop01/toolchain/src/gcc/gcc/tree-inline.c:5123
0xd7c53a gimple_expand_calls_inline
        /home/alecop01/toolchain/src/gcc/gcc/tree-inline.c:5313
0xd7c53a optimize_inline_calls(tree_node*)
        /home/alecop01/toolchain/src/gcc/gcc/tree-inline.c:5486
0xa4fbb5 inline_transform(cgraph_node*)
        /home/alecop01/toolchain/src/gcc/gcc/ipa-inline-transform.c:790
0xbd2e61 execute_one_ipa_transform_pass
        /home/alecop01/toolchain/src/gcc/gcc/passes.c:2290
0xbd2e61 execute_all_ipa_transforms(bool)
        /home/alecop01/toolchain/src/gcc/gcc/passes.c:2337
0x7d357a cgraph_node::expand()
        /home/alecop01/toolchain/src/gcc/gcc/cgraphunit.c:1823
0x7d54b2 expand_all_functions
        /home/alecop01/toolchain/src/gcc/gcc/cgraphunit.c:1994
0x7d54b2 symbol_table::compile()
        /home/alecop01/toolchain/src/gcc/gcc/cgraphunit.c:2358
0x6eec23 lto_main()
        /home/alecop01/toolchain/src/gcc/gcc/lto/lto.c:653
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
lto-wrapper: fatal error: aarch64-linux-gnu-gcc returned 1 exit status
compilation terminated.
/home/alecop01/toolchain/build-aarch64-linux-gnu/install/bin/../lib/gcc/aarch64-linux-gnu/11.0.1/../../../../aarch64-linux-gnu/bin/ld:
error: lto-wrapper failed
collect2: error: ld returned 1 exit status

Reply via email to