Bug#376213: [amd64] : compiler produces wrong code for <<
Package: gcc-4.1
Version: 4.1.1-5
Severity: important
Justification: causes FTBS for at least one package (fftw)
Hello !
I simply compile and run the program attached on my amd64 box, and I get the following results:
iteration 0, iters = 1
iteration 1, iters = 2
iteration 2, iters = 4
iteration 3, iters = 8
iteration 4, iters = 16
iteration 5, iters = 32
iteration 6, iters = 64
iteration 7, iters = 128
iteration 8, iters = 256
iteration 9, iters = 512
iteration 10, iters = 1024
iteration 11, iters = 2048
iteration 12, iters = 4096
iteration 13, iters = 8192
iteration 14, iters = 16384
iteration 15, iters = 32768
iteration 16, iters = 65536
iteration 17, iters = 131072
iteration 18, iters = 262144
iteration 19, iters = 524288
iteration 20, iters = 1048576
iteration 21, iters = 2097152
iteration 22, iters = 4194304
iteration 23, iters = 8388608
iteration 24, iters = 16777216
iteration 25, iters = 33554432
iteration 26, iters = 67108864
iteration 27, iters = 134217728
iteration 28, iters = 268435456
iteration 29, iters = 536870912
iteration 30, iters = 1073741824
iteration 31, iters = 18446744071562067968
There definitely *is* a problem in the last iteration. I wonder if it is a compiler bug or a
processor bug -- I can't speak assembler anymore.
Regards,
Vincent Fourmond
-- 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
Locale: LANG=fr_FR, LC_CTYPE=fr_FR (charmap=ISO-8859-1) (ignored: LC_ALL set to en_GB)
Versions of packages gcc-4.1 depends on:
ii binutils 2.17-1 The GNU assembler, linker and bina
ii cpp-4.1 4.1.1-5 The GNU C preprocessor
ii gcc-4.1-base 4.1.1-5 The GNU Compiler Collection (base
ii libc6 2.3.6-15 GNU C Library: Shared libraries
ii libgcc1 1:4.1.1-5 GCC support library
Versions of packages gcc-4.1 recommends:
ii libc6-dev 2.3.6-15 GNU C Library: Development Librari
ii libmudflap0-dev 4.1.1-5 GCC mudflap support libraries (dev
ii libssp0-dev 4.1.1-5 GCC stack smashing protection libr
-- no debconf information
#include <stdio.h>
int main()
{
unsigned long iters;
int i;
for (i = 0; i < 32; i++) {
iters = 1 << (unsigned long) i;
printf("iteration %d, iters = %lu\n", i, iters);
}
}
Reply to: