$ 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

Reply via email to