Description of problem: This little piece of code ICEs gcc when compiled for x86: long long a; void f(long long b) { __sync_bool_compare_and_swap (&a, 1, b); } It is necessary to add -march=i686 to the command line to enable using cmpxchg8b. Version-Release number of selected component (if applicable): 4.1.1-30 4.1.1-45 How reproducible: always when compiling on x86-64 with -m32 haven't tried native x86 Steps to Reproduce: 1.gcc -S -m32 ice.c -march=i686 2. 3. Actual results: u.c: In function ‘f’: u.c:3: internal compiler error: Segmentation fault Expected results: Code using cmpxchg8b Additional info:
Fixed in gcc-4.1.1-48.