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

            Bug ID: 67954
           Summary: [5 Regression] internal compiler error: in
                    patch_jump_insn, at cfgrtl.c:1281
           Product: gcc
           Version: 5.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dbaryshkov at gmail dot com
  Target Milestone: ---

Created attachment 36501
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36501&action=edit
Preprocessed source file

Since https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=210824 GCC fails
with ICE when generating ARM Thumb1 code:

/tmp/test.i: In function 'ubidi_writeReordered_55':
/tmp/test.i:4748:1: internal compiler error: in patch_jump_insn, at
cfgrtl.c:1303
 }
 ^
0x63700e patch_jump_insn
        ../../gcc/gcc/cfgrtl.c:1303
0x63715b redirect_branch_edge
        ../../gcc/gcc/cfgrtl.c:1329
0x6376e2 rtl_redirect_edge_and_branch
        ../../gcc/gcc/cfgrtl.c:1462
0x629889 redirect_edge_and_branch(edge_def*, basic_block_def*)
        ../../gcc/gcc/cfghooks.c:376
0xd0be1d try_forward_edges
        ../../gcc/gcc/cfgcleanup.c:621
0xd0be1d try_optimize_cfg
        ../../gcc/gcc/cfgcleanup.c:2835
0xd0be1d cleanup_cfg(int)
        ../../gcc/gcc/cfgcleanup.c:3049
0xd0d318 execute
        ../../gcc/gcc/cfgcleanup.c:3178


The following commands fail:

* gcc -march=armv4t -mthumb /tmp/test.i -S -o /tmp/test.o  -O1 -fcrossjumping
* gcc -march=armv5te -mthumb /tmp/test.i -S -o /tmp/test.o  -O1 -fcrossjumping
* gcc -march=armv6 -mthumb /tmp/test.i -S -o /tmp/test.o  -O1 -fcrossjumping

The following work:
* gcc -march=armv6t2 -mthumb /tmp/test.i -S -o /tmp/test.o  -O1 -fcrossjumping
* gcc -march=armv5te -marm /tmp/test.i -S -o /tmp/test.o  -O1 -fcrossjumping
* gcc -march=armv5te -mthumb /tmp/test.i -S -o /tmp/test.o  -O1

The log was produced using clear gcc from gcc-5_1_0-release tag.

The following configure options were passed to gcc:

../gcc/configure --build=x86_64-linux                  --host=x86_64-linux     
       --target=arm-linux-gnueabi                                
--enable-languages=c --enable-checking=all --disable-nls

Reply via email to