https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83235
Bug ID: 83235 Summary: IAND sometimes doesn't take bitwise-and of sign bit with -O2 Product: gcc Version: 7.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: paul.k.romano at gmail dot com Target Milestone: --- Created attachment 42760 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=42760&action=edit Minimal example of IAND bug I ran into what appears to be a strange bug where the IAND intrinsic function sometimes doesn't take the bitwise-and of the sign bit for 64-bit integers. I've attached a MWE that demonstrates the bug, which can be reproduced by compiling with -O2 or higher. The example writes the bit representation of two 64-bit integers and the result of taking IAND() on them and you can see that the result of IAND doesn't handle the sign bit correctly. Several slight changes seem to suppress the bug, e.g. having the second argument to IAND not be and integer parameter and putting the body of foo in the main program. I produced this bug using the default gcc from APT in Ubuntu 17.10, as follows: Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.2.0-8ubuntu3' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 7.2.0 (Ubuntu 7.2.0-8ubuntu3)