Hi. The following code, that used to compile on the older gcc, now rejects:
--- static char var; int main() { asm volatile ("" :: "i"(&var + 1)); return 0; } --- with the following message: --- asc.c:5: warning: asm operand 0 probably doesnt match constraints asc.c:5: error: impossible constraint in asm --- Changing "+1" to "+0" makes it to compile again. Here is the info on my gcc: $ gcc -v Using built-in specs. Target: i386-redhat-linux Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,java,f95,ada --enable-java-awt=gtk --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --host=i386-redhat-linux Thread model: posix gcc version 4.0.1 20050714 (Red Hat 4.0.1-3) -- Summary: [4.0 regress] rejects "i"(&var + 1) Product: gcc Version: 4.0.1 Status: UNCONFIRMED Severity: normal Priority: P2 Component: inline-asm AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: stsp at users dot sourceforge dot net CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: x86 GCC host triplet: x86 GCC target triplet: x86 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23200