http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58595
Meador Inge <meadori at codesourcery dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |meadori at codesourcery dot com --- Comment #2 from Meador Inge <meadori at codesourcery dot com> --- I hit this problem as well. Here is a much reduced test case: $ cat repro.c struct state { unsigned long last; unsigned long current; }; __thread struct state state; void foo() { while (1) { __sync_add_and_fetch_4(&state.current, (long) 1); } } $ ./install/bin/arm-none-linux-gnueabi-gcc --version arm-none-linux-gnueabi-gcc (GCC) 4.9.0 20140219 (experimental) Copyright (C) 2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. meadori@build1-lucid-cs:/scratch/meadori/arm-none-linux-gnueabi-fsf-mainline$ ./install/bin/arm-none-linux-gnueabi-gcc -fPIC -O2 repro.c repro.c: In function 'foo': repro.c:13:1: internal compiler error: in gen_movsi, at config/arm/arm.md:6272 } ^ 0x8b3ee69 gen_movsi(rtx_def*, rtx_def*) /scratch/meadori/arm-none-linux-gnueabi-fsf-mainline/src/gcc-mainline/gcc/config/arm/arm.md:6272 0x838853f insn_gen_fn::operator()(rtx_def*, rtx_def*) const /scratch/meadori/arm-none-linux-gnueabi-fsf-mainline/src/gcc-mainline/gcc/recog.h:284 0x844b2be emit_move_insn_1(rtx_def*, rtx_def*) /scratch/meadori/arm-none-linux-gnueabi-fsf-mainline/src/gcc-mainline/gcc/expr.c:3556 0x844b6f1 emit_move_insn(rtx_def*, rtx_def*) /scratch/meadori/arm-none-linux-gnueabi-fsf-mainline/src/gcc-mainline/gcc/expr.c:3650 0x8508d4a process_insert_insn /scratch/meadori/arm-none-linux-gnueabi-fsf-mainline/src/gcc-mainline/gcc/gcse.c:2133 0x85091f4 pre_edge_insert /scratch/meadori/arm-none-linux-gnueabi-fsf-mainline/src/gcc-mainline/gcc/gcse.c:2310 0x8509c2a pre_gcse /scratch/meadori/arm-none-linux-gnueabi-fsf-mainline/src/gcc-mainline/gcc/gcse.c:2641 0x8509d8a one_pre_gcse_pass /scratch/meadori/arm-none-linux-gnueabi-fsf-mainline/src/gcc-mainline/gcc/gcse.c:2696 0x850caa4 execute_rtl_pre /scratch/meadori/arm-none-linux-gnueabi-fsf-mainline/src/gcc-mainline/gcc/gcse.c:4127 0x850cba8 execute /scratch/meadori/arm-none-linux-gnueabi-fsf-mainline/src/gcc-mainline/gcc/gcse.c:4186 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions.