Package: gcc-4.1 Version: 4.1.1-10 Severity: normal The following C code works fine with -O0 or -O1 but does not work correct with -O2
#include <stdio.h> void foo (int arg1) { int loc1; if (arg1 < 0) { loc1 = -arg1; printf ("%d\n", loc1 == ((int) 0x80000000L)); } } int main () { foo ((int) 0x80000000L); return 0; } The expected result is that 1 is printed. I tested the same thing on a 32bit machine as well and it has the same problem. Regards, Patrick -- System Information: Debian Release: testing/unstable APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.16-2-amd64-k8 Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1) Versions of packages gcc-4.1 depends on: ii binutils 2.17-2 The GNU assembler, linker and bina ii cpp-4.1 4.1.1-10 The GNU C preprocessor ii gcc-4.1-base 4.1.1-10 The GNU Compiler Collection (base ii libc6 2.3.6-19 GNU C Library: Shared libraries ii libgcc1 1:4.1.1-10 GCC support library ii libssp0 4.1.1-10 GCC stack smashing protection libr Versions of packages gcc-4.1 recommends: ii libc6-dev 2.3.6-19 GNU C Library: Development Librari pn libmudflap0-dev <none> (no description available) -- no debconf information -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]