https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103980
--- Comment #5 from Ryan <rmaguire314 at gmail dot com> --- (In reply to Andrew Pinski from comment #1) > Does it happen with a cross compiler or just a native compiler? Not sure what you mean by that. I'm emulating s390x on a Debian 11 amd64 machine via debootstrap: sudo debootstrap --arch=s390x stable S390X I chroot into it: sudo chroot S390X/ I then install the following from Debian's repository: apt-get install gcc git sudo I'm writing an implementation of libm for fun. Tried building the library with gcc with a bunch of flags to check for errors: STDVER="-std=c89" ... ExtraArgs="" ... CArgs1="-pedantic -Wall -Wextra -Wpedantic -Wmissing-field-initializers" CArgs2="-Wconversion -Wmissing-prototypes -Wmissing-declarations" CArgs3="-Winit-self -Wnull-dereference -Wwrite-strings -Wdouble-promotion" CArgs4="-Wfloat-conversion -Wstrict-prototypes -Wold-style-definition" CArgs5="-I../ -DNDEBUG -g -fPIC -O3 -flto -c" CompilerArgs="$STDVER $ExtraArgs $CArgs1 $CArgs2 $CArgs3 $CArgs4 $CArgs5" The library builds but throws -Wdouble-promotion every time a float (single precision) comparison is made. Removing the -std=c89 flag removes this warning, which is strange. No issues on any other architectures. I've tried mips, mipsel, mips64el, i386, arm64, armel, armhf, and amd64. All Debian via debootstrap. I've also tried using LLVM's clang, pcc, and tcc (again, from Debian's repositories, and when available since those compilers don't support as many architectures) using the same arguments above. No warnings or errors on any of them.