With gcc 4.0.1, compiling the following results in an ICE:
label: asm ("" : : "g" (*&&label));
Admittedly I don't expect it to do anything useful, but I was told in #gcc that
I should report the ICE anyways. (For what it's worth, this same code snippet
compiles without error in gcc 3.3 and 3.4.)
Confirmed, a regression from 3.4.0.
(In reply to comment #0)
> Admittedly I don't expect it to do anything useful, but I was told in #gcc that
> I should report the ICE anyways.
Yes by me :).
*** Bug 23110 has been marked as a duplicate of this bug. ***
Turns out this is not really a regression. If you change g to r, it fails from 2.95.3 and up.
This also happens when dereferencing void pointers (this is invalid code though, but I get the same error with the code in the first post):
void foo (void *p)
asm("" :: "g" (*p));
$ gcc -c foo.c
foo.c: In function ‘foo’:
foo.c:3: warning: dereferencing ‘void *’ pointer
foo.c:3: internal compiler error: in gimplify_expr, at gimplify.c:6288
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
$ gcc -v
Using built-in specs.
Configured with: ../configure --prefix=/usr --enable-shared --enable-languages=c,c++,fortran,objc,obj-c++,treelang --enable-threads=posix --mandir=/usr/share/man --infodir=/usr/share/info --enable-__cxa_atexit --disable-multilib --libdir=/usr/lib --libexecdir=/usr/lib --enable-clocale=gnu --disable-libstdcxx-pch --with-tune=generic
Thread model: posix
gcc version 4.3.3 (GCC)