https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63612
Bug ID: 63612 Summary: #pragma breaks if...else Product: gcc Version: 4.8.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: q....@rsn-tech.co.uk The following program fails to compile, giving the error "else without a previous if". Removing (or commenting out) the #pragma restores correct behaviour. int main (int argc, char *argv[]) { if (argc == 1) return 1; #pragma message ("This is a message") else return 0; } Other valid pragmas (such as #pragma pack) also exhibit this bug, but invalid ones (like #pragma asasdadf) don't, nor do other preprocessor directives (such as #define FOO). It exists in at least two builds of gcc 4.8.3, in ARM cross-compilation and native x64: $ /opt/Xilinx/SDK/current/gnu/arm/lin/arm-xilinx-eabi/bin/gcc -v Using built-in specs. COLLECT_GCC=/opt/Xilinx/SDK/current/gnu/arm/lin/arm-xilinx-eabi/bin/gcc Target: arm-xilinx-eabi Configured with: /scratch/janisjo/build7/2014.05-xilinx-eabi-preview/src/gcc-4.8-2014.05/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-xilinx-eabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --with-arch=armv7-a --with-cpu=cortex-a9 --with-float=softfp --with-fpu=neon-fp16 --disable-multilib --with-gnu-as --with-gnu-ld --with-specs='%{save-temps: -fverbose-asm} -D__CS_SOURCERYGXX_MAJ__=2014 -D__CS_SOURCERYGXX_MIN__=5 -D__CS_SOURCERYGXX_REV__=22' --enable-languages=c,c++ --disable-shared --enable-lto --with-newlib --with-pkgversion='Sourcery CodeBench Lite 2014.05-22' --with-bugurl=https://sourcery.mentor.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-headers=yes --with-sysroot=/opt/codesourcery/arm-xilinx-eabi --with-build-sysroot=/scratch/janisjo/build7/2014.05-xilinx-eabi-preview/install/opt/codesourcery/arm-xilinx-eabi --with-gmp=/scratch/janisjo/build7/2014.05-xilinx-eabi-preview/obj/pkg-2014.05-22-arm-xilinx-eabi/xilinx-2014.05-22-arm-xilinx-eabi.extras/host-libs-i686-pc-linux-gnu/usr --with-mpfr=/scratch/janisjo/build7/2014.05-xilinx-eabi-preview/obj/pkg-2014.05-22-arm-xilinx-eabi/xilinx-2014.05-22-arm-xilinx-eabi.extras/host-libs-i686-pc-linux-gnu/usr --with-mpc=/scratch/janisjo/build7/2014.05-xilinx-eabi-preview/obj/pkg-2014.05-22-arm-xilinx-eabi/xilinx-2014.05-22-arm-xilinx-eabi.extras/host-libs-i686-pc-linux-gnu/usr --with-isl=/scratch/janisjo/build7/2014.05-xilinx-eabi-preview/obj/pkg-2014.05-22-arm-xilinx-eabi/xilinx-2014.05-22-arm-xilinx-eabi.extras/host-libs-i686-pc-linux-gnu/usr --with-cloog=/scratch/janisjo/build7/2014.05-xilinx-eabi-preview/obj/pkg-2014.05-22-arm-xilinx-eabi/xilinx-2014.05-22-arm-xilinx-eabi.extras/host-libs-i686-pc-linux-gnu/usr --disable-libgomp --disable-libitm --disable-libatomic --disable-libssp --enable-poison-system-directories --with-build-time-tools=/scratch/janisjo/build7/2014.05-xilinx-eabi-preview/install/opt/codesourcery/arm-xilinx-eabi/bin --with-build-time-tools=/scratch/janisjo/build7/2014.05-xilinx-eabi-preview/install/opt/codesourcery/arm-xilinx-eabi/bin SED=sed Thread model: single gcc version 4.8.3 20140320 (prerelease) (Sourcery CodeBench Lite 2014.05-22) $ gcc -v Using built-in specs. COLLECT_GCC=/usr/bin/gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.3/lto-wrapper Target: x86_64-redhat-linux Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-isl=/builddir/build/BUILD/gcc-4.8.3-20140911/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.3-20140911/obj-x86_64-redhat-linux/cloog-install --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux Thread model: posix gcc version 4.8.3 20140911 (Red Hat 4.8.3-7) (GCC)