[LV] New GCC 4.1.2 packages available, fixing a critical bug
Hello folks, I have uploaded a new source and a new binary GCC package to: ftp://ftp.linux-mips.org/pub/linux/mips/people/macro/SRPMS/ and ftp://ftp.linux-mips.org/pub/linux/mips/people/macro/RPMS/ respectively. The packages to download are: vax-linux-boot-gcc-4.1.2-20.src.rpm i386/vax-linux-boot-gcc-4.1.2-20.i386.rpm The packages fix a critical bug in the compiler where the combiner would incorrectly attempt to simplify a masking operation applied to a result of a floating-point operation, resulting in an internal compiler error. An example code triggering this looks like: float foo = 1.0; short frob(void) { union { float f; short i[2]; } bar = { .f = 2.0, }; bar.f -= foo; return bar.i[0]; } or in RTL-speak: (and:SI (subreg:SI (minus:SF (reg:SF 61) (mem/s/u:SF (reg/f:SI 60) [2 foo S4 A32])) 0) (const_int 65535 [0xffff])) and the combiner would have thought the operation could be optimised by performing the floating-point addition on the lowest order 16 bits of the operands only, which is obviously not true. I've seen it happen with the -fPIC option only. This bug has only been recently been fixed in upstream GCC 4.5, so anyone using either an older version of my package or an outdated version of GCC 4.5 HEAD, please upgrade. Maciej _______________________________________________ Linux-Vax mailing list Linux-Vax@mail.pergamentum.com http://mail.pergamentum.com/mailman/listinfo/linux-vax
Teilnehmer (1)
-
Maciej W. Rozycki