$ cat opt.c extern void abort (void); double foo (int arg) { if (arg != 116) abort(); return arg + 1; } inline double #if HAS_ATTR __attribute__ ((__option__ ("no-mmx"))) #endif bar (int arg) { foo (arg); __builtin_return (__builtin_apply ((void (*) ()) foo, __builtin_apply_args (), 16)); } $ gcc -v Using built-in specs. Target: x86_64-unknown-linux-gnu Configured with: ../src/configure --disable-bootstrap --enable-languages=c,c++,fortran --enable-checking=assert Thread model: posix gcc version 4.4.0 20080810 (experimental) [trunk revision 138935] (GCC) $ gcc -c -m32 -O3 -mmmx opt.c -DHAS_ATTR=1 opt.c: In function 'bar': opt.c:20: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. $ gcc -c -m32 -O3 -mmmx opt.c -DHAS_ATTR=0 $
-- Summary: ICE with attribute(option("no-mmx")) Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: Joey dot ye at intel dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37124