isnan(0.0/0.0) returns false. It returns true if -fno-builtin. KUROBOX-PRO(22:33:53)% cat tst.c extern void abort(void); extern int isnan(double v);
int main() { if (!isnan(0.0/0.0)) abort(); return 0; } KUROBOX-PRO(22:34:02)% ~/src/gcc/bin/gcc -v tst.c Using built-in specs. Target: armv5tejl-unknown-linux-gnu Configured with: ../gcc-4.1.2/configure --prefix=/home/akr/src/gcc --enable-languages=c Thread model: posix gcc version 4.1.2 /home/akr/src/gcc/libexec/gcc/armv5tejl-unknown-linux-gnu/4.1.2/cc1 -quiet -v tst.c -quiet -dumpbase tst.c -auxbase tst -version -o /tmp/ccBo6vhT.s ignoring nonexistent directory "/home/akr/src/gcc/lib/gcc/armv5tejl-unknown-linux-gnu/4.1.2/../../../../armv5tejl-unknown-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: /usr/local/include /home/akr/src/gcc/include /home/akr/src/gcc/lib/gcc/armv5tejl-unknown-linux-gnu/4.1.2/include /usr/include End of search list. GNU C version 4.1.2 (armv5tejl-unknown-linux-gnu) compiled by GNU C version 4.1.2. GGC heuristics: --param ggc-min-expand=38 --param ggc-min-heapsize=15791 Compiler executable checksum: 332d6ae8f800e7865f327fc747ec5bd6 as -o /tmp/cc8FEJCO.o /tmp/ccBo6vhT.s /home/akr/src/gcc/libexec/gcc/armv5tejl-unknown-linux-gnu/4.1.2/collect2 --eh-frame-hdr -dynamic-linker /lib/ld-linux.so.2 -X -m armelf_linux -p /usr/lib/crt1.o /usr/lib/crti.o /home/akr/src/gcc/lib/gcc/armv5tejl-unknown-linux-gnu/4.1.2/crtbegin.o -L/home/akr/src/gcc/lib/gcc/armv5tejl-unknown-linux-gnu/4.1.2 -L/home/akr/src/gcc/lib/gcc/armv5tejl-unknown-linux-gnu/4.1.2/../../.. /tmp/cc8FEJCO.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /home/akr/src/gcc/lib/gcc/armv5tejl-unknown-linux-gnu/4.1.2/crtend.o /usr/lib/crtn.o KUROBOX-PRO(22:34:09)% ./a.out zsh: abort ./a.out It doesn't abort if -fno-builtin is used. KUROBOX-PRO(22:34:18)% ~/src/gcc/bin/gcc -fno-builtin tst.c KUROBOX-PRO(22:34:22)% ./a.out -- Summary: isnan builtin doesn't work Product: gcc Version: 4.1.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: akr at m17n dot org GCC build triplet: armv5tejl-unknown-linux-gnu GCC host triplet: armv5tejl-unknown-linux-gnu GCC target triplet: armv5tejl-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31907