[Bug middle-end/56964] New: ICE with -fno-sync-libcalls when target lacks atomic operations

mans at mansr dot com gcc-bugzilla@gcc.gnu.org
Mon Apr 15 10:45:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56964

             Bug #: 56964
           Summary: ICE with -fno-sync-libcalls when target lacks atomic
                    operations
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: mans@mansr.com


Use of __atomic_* functions when compiling for a target without atomic
operations (e.g. ARMv6) while specifying -fno-sync-libcalls gives an ICE
instead of a proper error message.

$ cat foo.c
int *x;
void foo(void)
{
    __atomic_test_and_set(x, 0);
}

$ arm-unknown-linux-gnueabi-gcc-4.8.0 -c foo.c -march=armv6 -fno-sync-libcalls
foo.c: In function 'foo':
foo.c:4:26: internal compiler error: in emit_move_insn, at expr.c:3486
     __atomic_test_and_set(x, 0);
                          ^
Please submit a full bug report,
with preprocessed source if appropriate.

This happens for any target without atomic operations in hardware.



More information about the Gcc-bugs mailing list