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

            Bug ID: 82096
           Summary: ICE in int_mode_for_mode, at stor-layout.c:403 with
                    arm-linux-gnueabi
           Product: gcc
           Version: 8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
  Target Milestone: ---
              Host: x86_64-linux-gnu
            Target: arm-linux-gnueabi

Following ICEs:

$ arm-linux-gnueabi-gcc
/home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/di-longlong64-sync-1.c -Og
-mflip-thumb -c
/home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/di-longlong64-sync-1.c: In
function ‘do_noret_di’:
/home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/di-longlong64-sync-1.c:85:3:
note: ‘__sync_fetch_and_nand’ changed semantics in GCC 4.4
   __sync_fetch_and_nand (AL+15, 0xa00000007ll);
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/di-longlong64-sync-1.c:98:3:
note: ‘__sync_nand_and_fetch’ changed semantics in GCC 4.4
   __sync_nand_and_fetch (AL+23, 0xa00000007ll);
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
during RTL pass: expand
/home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/di-longlong64-sync-1.c: In
function ‘do_ret_di’:
/home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/di-longlong64-sync-1.c:107:7:
internal compiler error: in int_mode_for_mode, at stor-layout.c:403
   if (__sync_bool_compare_and_swap (AL+1, 0x200000003ll, 0x1234567890ll) !=
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0xb46b8a int_mode_for_mode(machine_mode)
        .././../gcc/stor-layout.c:403
0x80ae2e emit_move_via_integer
        .././../gcc/expr.c:3313
0x817d35 emit_move_insn_1(rtx_def*, rtx_def*)
        .././../gcc/expr.c:3693
0x81803e emit_move_insn(rtx_def*, rtx_def*)
        .././../gcc/expr.c:3761
0x7fa283 force_reg(machine_mode, rtx_def*)
        .././../gcc/explow.c:642
0xa57741 prepare_cmp_insn
        .././../gcc/optabs.c:3777
0xa57d21 emit_cmp_and_jump_insns(rtx_def*, rtx_def*, rtx_code, rtx_def*,
machine_mode, int, rtx_def*, profile_probability)
        .././../gcc/optabs.c:4054
0x77f41f do_compare_rtx_and_jump(rtx_def*, rtx_def*, rtx_code, int,
machine_mode, rtx_def*, rtx_code_label*, rtx_code_label*, profile_probability)
        .././../gcc/dojump.c:1151
0x806d95 emit_store_flag_force(rtx_def*, rtx_code, rtx_def*, rtx_def*,
machine_mode, int, int)
        .././../gcc/expmed.c:6050
0xa59e16 expand_atomic_compare_and_swap(rtx_def**, rtx_def**, rtx_def*,
rtx_def*, rtx_def*, bool, memmodel, memmodel)
        .././../gcc/optabs.c:6270
0x6cfa33 expand_builtin_compare_and_swap
        .././../gcc/builtins.c:5618
0x6dc791 expand_builtin(tree_node*, rtx_def*, rtx_def*, machine_mode, int)
        .././../gcc/builtins.c:7203
0x8144cc expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
        .././../gcc/expr.c:10874
0x81f8f7 expand_expr
        .././../gcc/expr.h:276
0x81f8f7 store_expr_with_bounds(tree_node*, rtx_def*, int, bool, bool,
tree_node*)
        .././../gcc/expr.c:5483
0x820d07 expand_assignment(tree_node*, tree_node*, bool)
        .././../gcc/expr.c:5343
0x6ffe7f expand_call_stmt
        .././../gcc/cfgexpand.c:2664
0x6ffe7f expand_gimple_stmt_1
        .././../gcc/cfgexpand.c:3585
0x6ffe7f expand_gimple_stmt
        .././../gcc/cfgexpand.c:3751
0x701897 expand_gimple_basic_block
        .././../gcc/cfgexpand.c:5750

Reply via email to