Package: libc6 Version: 2.3.2.ds1-22 Followup-For: Bug #318959
Actually there is something wrong even without "volatile": /* file: ki.c */ #include <stdio.h> #include <math.h> extern long int lround(double x); int main() { double b; long int i; b = 1.04866e+6; i = lround(b); printf("%e %ld %ld\n", b, lround(b), i); return 0; } try running the following bash script: for c in 3.3 3.4 4.0; do for o in 0 1 2 3 ; do printf "gcc-%s -O%s\t" $c $o; gcc-$c -W -Wall -O$o -std=c99 ki.c -lm; ./a.out; done; done on my debian (stable, uniprocessor), the results are... mysterious: gcc-3.3 -O0 1.048660e+06 -2146434988 -2146434988 gcc-3.3 -O1 1.048660e+06 -2146434988 -2146434988 gcc-3.3 -O2 1.048660e+06 -2146434988 -2146434988 gcc-3.3 -O3 1.048660e+06 -2146434988 -2146434988 gcc-3.4 -O0 1.048660e+06 -2146434988 -2146434988 gcc-3.4 -O1 1.048660e+06 -2146434988 -2146434988 gcc-3.4 -O2 1.048660e+06 -2146434988 -2146434988 gcc-3.4 -O3 1.048660e+06 -2146434988 -2146434988 gcc-4.0 -O0 1.048660e+06 -2146434988 -2146434988 gcc-4.0 -O1 1.048660e+06 1048660 1048660 gcc-4.0 -O2 1.048660e+06 1048660 1048660 gcc-4.0 -O3 1.048660e+06 1048660 1048660 -- System Information: Debian Release: testing/unstable APT prefers testing APT policy: (500, 'stable') Architecture: i386 (i686) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.8-2-686-smp Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) Versions of packages libc6 depends on: ii libdb1-compat 2.1.3-7 The Berkeley database routines [gl libc6 recommends no packages. -- no debconf information -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]