To: [EMAIL PROTECTED],debian-gcc@lists.debian.org
Subject: floor() may return incorrect value when optimized
From: karl
Reply-To: [EMAIL PROTECTED]
Cc:
X-send-pr-version: 3.113
X-GNATS-Notify:


>Submitter-Id: net
>Originator: Karl Burgess
>Organization: Tarantella, Inc.
>Confidential: no
>Synopsis: floor() may return incorrect value when optimized
>Severity: serious
>Priority: medium
>Category: optimization
>Class:  wrong-code
>Release: 3.0.4 (Debian testing/unstable)
>Environment:
System: Linux barrie.tarantella.com 2.4.12 #8 Thu Feb 21 11:48:06 UTC 2002
i686 unknown
Architecture: i686

host: i386-pc-linux-gnu
build: i386-pc-linux-gnu
target: i386-pc-linux-gnu
configured with:
../src/configure -v --enable-languages=c,c++,java,f77,proto,objc --prefix=/u
sr --infodir=/share/info --mandir=/share/man --enable-shared --with-gnu-as -
-with-gnu-ld --with-system-zlib --enable-long-long --enable-nls --without-in
cluded-gettext --disable-checking --enable-threads=posix --enable-java-gc=bo
ehm --with-cpp-install-dir=bin --enable-objc-gc i386-linux
>Description:

Under some circumstances the GCC optimizations triggered by -ffast-math and
-O cause the maths function floor() to return incorrect values.
The supplied test program calls the function floor() in two places with
the same input values, but gets different values returned.


The gcc output is as follows:

egcc -v -save-temps -Wall -MMD -O -ffast-math -ofloor_opt floor.c -lm
Reading specs from /usr/lib/gcc-lib/i386-linux/3.0.4/specs
Configured with:
../src/configure -v --enable-languages=c,c++,java,f77,proto,objc --prefix=/u
sr --infodir=/share/info --mandir=/share/man --enable-shared --with-gnu-as -
-with-gnu-ld --with-system-zlib --enable-long-long --enable-nls --without-in
cluded-gettext --disable-checking --enable-threads=posix --enable-java-gc=bo
ehm --with-cpp-install-dir=bin --enable-objc-gc i386-linux
Thread model: posix
gcc version 3.0.4
 /usr/lib/gcc-lib/i386-linux/3.0.4/cpp0 -lang-c -v -MM -MF
floor.dfloor_opt -MQ
floor_opt -D__GNUC__=3 -D__GNUC_MINOR__=0 -D__GNUC_PATCHLEVEL__=4 -D__ELF__ 
-Dunix -Dlinux -D__ELF__ -D__unix__ -D__linux__ -D__unix -D__linux -Asystem=
posix -D__OPTIMIZE__ -D__FAST_MATH__ -D__STDC_HOSTED__=1 -Wall -Acpu=i386 -A
machine=i386 -Di386 -D__i386 -D__i386__ -D__tune_i386__ floor.c floor.i
GNU CPP version 3.0.4 (cpplib) (i386 Linux/ELF)
ignoring nonexistent directory "/usr/i386-linux/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include
 /usr/lib/gcc-lib/i386-linux/3.0.4/include
 /usr/include
End of search list.
 /usr/lib/gcc-lib/i386-linux/3.0.4/cc1 -fpreprocessed
floor.i -quiet -dumpbase floor.c -O -Wall -version -ffast-math -o floor.s
GNU CPP version 3.0.4 (cpplib) (i386 Linux/ELF)
GNU C version 3.0.4 (i386-linux)
 compiled by GNU C version 3.0.4.
 as -V -Qy -o floor.o floor.s
GNU assembler version 2.12.90.0.1 (i386-linux) using BFD version 2.12.90.0.1
20020307 Debian/GNU Linux
 /usr/lib/gcc-lib/i386-linux/3.0.4/collect2 -m elf_i386 -dynamic-linker
/lib/ld-linux.so.2 -ofloor_opt
/usr/lib/gcc-lib/i386-linux/3.0.4/../../../crt1.o
/usr/lib/gcc-lib/i386-linux/3.0.4/../../../crti.o
/usr/lib/gcc-lib/i386-linux/3.0.4/crtbegin.o -L/usr/lib/gcc-lib/i386-linux/3
.0.4 -L/usr/lib/gcc-lib/i386-linux/3.0.4/../../..
floor.o -lm -lgcc -lc -lgcc /usr/lib/gcc-lib/i386-linux/3.0.4/crtend.o
/usr/lib/gcc-lib/i386-linux/3.0.4/../../../crtn.o


When the test program is run (by typing ./floor_opt), it prints out the
following:

    Test failed! floor(-270.000000/90) == -4.000000
    Test worked! floor(-270.000000/90) == -3.000000

The first calculation involving floor() has returned -4.0 instead of
-3.0, which is incorrect. The second occurrence of floor() is correct.


>How-To-Repeat:

Here is the .i file for the test, compressed with gzip -9 and uuencode:

begin 664 floor.i.gz
M'XL("$:8M3P"`V9L;V]R+FD`[3UK<]NXM9]7OX+USG8LQW%$27ZMQMMI=]U<
MS\TFF23MM).F'(HB+284J9*4+=UM_OO%`?C`&Z"DS299:R:.!)QS<%XX``Y`
M\%O'=0ZB),ORD^"@]RW\>K(J\B=)/'UR&P2/X?]X='&&OJ2K]9/1R>!D_"1.
[EMAIL PROTECTED]"Y\4Y2S.3N8'"&N$<$?G6R&/J&;KRBCTRU4>%BWQX<5(`R.C46R*)\$L
[EMAIL PROTECTED](9'"'79LZ#9=(6E64ZJAD3LR-W2QE;H`&7^Z&PLIHV71O;S<#GW4
M*S?+$/UP5FD1WZ;AS(G3TBGB_PN]<H(HC\?;"R9J=QJ7Q1-HD;;CF1;(TJ/.
MM42([EMAIL PROTECTED]:@SF#NYX[GK3SX,A'[EMAIL PROTECTED](#0+UZ']);9*EM[@:
MODQZ/<\+UV6(:K/4\QPY./Y3D_W/RI^!K>6(/'P-C3SCTF"[EMAIL PROTECTED]"$3FPI,)
M4BN*!V#T1)A`?]TS*1$::B6`,0I%?T=#3Z/P!D"A&H5&T=^SL5JA:DLTB`U'
MM;J=(_3-G\URKK8V'OHZ"^]H62I_P61G\HI;L:+RI3C-Y"B+;!;*:[EMAIL PROTECTED]
[EMAIL PROTECTED]"5=%X)<L8Z2PJ$.2A-\\B1=\5=,&5!*UBER3AEKW*/-54/8<
MYQ?TSZD:[EMAIL PROTECTED]'8V]66Z<NQMZ,S!;[EMAIL PROTECTED]"(,L
MG14*[,)4?S]-/[EMAIL PROTECTED](+@"KF,P"[Q0/QA*S^$&Q9'VB7C95";MR?E
M"[%<&UH-$:2EPJ%(9=6+9*X2%3)\REUJ`"V-*$[T-`B`C$8#A#J96$\Z!.DS
M?"WM.%X1^(F?>\H!H89;M8"\Q=#?99DKC%:Y$/*%)$QK:RC&[EMAIL PROTECTED]
M(QO8D8IH$<S#64OM[$([EMAIL PROTECTED]'-_P?7DJB:/LSPN-[A'[EMAIL PROTECTED]'-LP
MBD=W5H%^F2WBP&M[4LU#A>M%?E%";0^XH'MFB:8O!3#`$8&Z99S"#T3O(]-)
M>.*SL`ARKRH]8HLG;`]M=%,#^24R?('9JL)76/K!'/@*)SU&7\LLB0.L+)F&
M&RCXT6+&Z3Q$.L95-+ULB<F3'@Y#T,K/9_"+`D*,?,`QLPA+*+[+XAD$TJ:"
MH8!+"86/#B->*=$>EEAE)0A^'E&]PZD95]W[<1G#%*MM",*ONJ%*M:O%8L,C
MM1Q*>[EMAIL PROTECTED],+#\V$P_R.5O4"M;)*2ZDD"R^[3\.<!OX0I[.)7C6+2C6M
M'(M5&:Y-TF,@0I[#E!B)[EMAIL PROTECTED]'=I%$'0EKHA6]L7$>CV:W9UNO>[YU
M3L=;+I[Y'GOSPOOKS;-K!_X`[V?[)NQY->GS\=X6_`B3224,5?4R9.\I])`H
MOFT)7.I`1I;+3'>@HU(OQ'=<(@XOSG==AS=.>P]32.*R;1IC/\O[^YC,7I"T
MIR:M2`9(H_XQZZU6QA>J^M&N"A<6H0UI70:"X^_4U1%!O>Y<S;\R\C4!>)6B
M!6`S%2&J1_6([EMAIL PROTECTED]>]'OZ=MPL--"R8X4'-11#IWA@)@8;&@TF8ZE:A,$4
M(*LF'@W5:D)"&GOJ10B"63-S5&!::DN'3&&I))*U!]VBZCM-CJBIWS(]U.`K
MW.0K\^#AI5;^G3-C0SUY]`G3U:)RHJ<_OGC^=^_%_SI7SN"8*GG^`OYC2W[Z
M"_O[Y^N?CWM4R?7/+]_\T[MY_O)O;VC`O_[MV3/OQ=_><,4WSYY=/_WS,Q'^
MYOF/+WY^^>SZS75=)\'ZZ?KUCZ]N7KYY\8I%?7/]ZCFJOG[UZL6K:M(N2'OS
MVGOVY]=O0.3U8#!P&0I/G[]X=4WP7]<0PXI2,^O&*D4]+%Q.9(4>FE/Z0DV2
M^3,[EMAIL PROTECTED]&K+W$^+"I&;AAT>U4!14/:=0TF+SM&QHV($U>'8IOI`>$R+
MDDO^'2&*BAH].9%,M4!`WY`T^$]_HA0Q3N-2)V>_C89X-=)BAFC^KT=4-DJ4
MK].N5F3RT>[EMAIL PROTECTED],3#2.OJ+51VWO2DF[J&`/6E3X
ML:`)HW#_687YIA*MYJ>FQ?X^ZL"8M6ZICD04BYJE&U5W)(+?=B>"[EMAIL PROTECTED]:*
MKSB(<MT)TE[U]XD`0%F_`:3*1(2*I0:X^DUG)[EMAIL PROTECTED]:B%B3JF,YD)
M6?#&*9`Y&I6]N9_.DI!P2BL7I^=3?X&JV$DHK/5[3@,5Y=G"(W!M89EY#2H5
M^2&9R6JE-C'.\L2"TEIU-8KJM>PLXA0I(@[EMAIL PROTECTED]>&O%14M1IE)X:&X1Z>/
MRC!:)[EMAIL PROTECTED]>)/0_--]=E=-5-%%7A9#9H-J/$O^V8$KB]"X+_!([EMAIL PROTECTED]
MT-6H)/43R/97VF]GU$>50$OE5!M3TCH>_C51)!,;HT89\<`ZKY:"[EMAIL PROTECTED])5Y.Q
MR?.:>G:[EMAIL PROTECTED];]_!\J#M]GAU8%S2M(M86$I)[EMAIL 
PROTECTED](`.Y.9;&:%9<.U#$Q
M7"_'@FPQC=-P5BUNXII[-B7\M-Z9Q(G=,H^G*V0NSSD\K/;./`C+_W/C>?U^
M?R+!A?U&+>YK'I?-V#]M-CV[<2"C8L\+6@",5"F>*B$VLDD!V:X]_)Q*#HU'
MVV&/J&V7Z2I.2A1I[GPOB0OL#>DJJ'].Z(R>0D#W;*"6D$JZO5\MELAO^#P<
M3L6<:[EMAIL PROTECTED]@M;L.5%!#Y0L__Q#F#MU'VM*C:[EMAIL PROTECTED]@0-=&)KS`AY,E
M&M/AH`)K'=Q#9F%P5T(R>I74^8*Z,/MPS/Q>^GD9^PE;&.9YEK-%:08=K4?V
M:<Y<*Q5C>9H\3!N0J]'N"`/A=/"RS"=B:4ARX5SIU"]"[EMAIL PROTECTED]&G4)4+M$FQ
M0!QI74([EMAIL PROTECTED]@&2?'4#SZLEI(*#%^3D7D#^5+P]95'($)QVDXF
MHC@)TW8,KG9J)W1V*4MF\!7OW&"%\Z=<@E6.;)NL%BG9Q:$.?MR5_C0)&_0Z
M+X81D3K>NN\JFJWW(Q[)[EMAIL PROTECTED]<S3E5.P>3N:+XH^<(2W_F3MC?PU9V"'JM,;Q5
MBD;KV?"M>^H<X3$SBYQ#6&,ZCU$\:(NJ6>R[>C-/F85OPD"/]V1OF<!680\&
MV3QU9+7XU]!S/4C*I][$%A;-8.R!4>?TL*+'8W.4:HYKP`0G(QTH2FM]0/?.
M/L3A<3.70O8]IN8>TTT9%OWZG(&**NE0,K+\O!C(]VQ7.:A]L>EJKI9Y11A^
M4+19>[EMAIL PROTECTED]>5SCW_8F,3I!DA8QY,II>GJEU7-FK.B*2(L-$27:/QN.FX_:=
M"0=EA,CN1#(D:])"MIEK4ZL4I!64O'52#PAHD!]::@3AWX9E0%-"D_(E+S"J
M7*X`K%HF'3M&^`CW:`LP&,[EMAIL PROTECTED](#R)7([EMAIL PROTECTED])[EMAIL 
PROTECTED],VP'P$\1&*%4EO`
M56H`;[EMAIL PROTECTED]";G]IJ_BXK`3QDMP0&L$,66."C95`!=T5.G5.AY&.E21RVB
M1)B[:)FC[YREY"S8<,"Q0+5(12,PIC]+A<YSW`)[EMAIL PROTECTED]:VV`S
[EMAIL PROTECTED])\TQ3P#%*1T!NO76L?(PK*<</HKLHLN<G^ZP=7YQN>,.
[EMAIL PROTECTED];/7I)(!`'K&@]I='E[L<`:_43/2(!_*)4(8&;+$0Q9MZ
MN*+Z0AXN4%3EDX`>F<3YBY`/2#DN%>'1C$X<3]/[EMAIL PROTECTED]""[EMAIL PROTECTED]
M4=-5\Q5ETB:BC/AS#FL."JY]&LK+.3C$Q<7Y7K@(*S9XA<SB7-32,EKW>UPL
M$1;3?H)"+RRC)[P%(SQ%<`[K&(8B5>@O>+M%$9JGS:50$CB/#`HPWH@(:(7E
[EMAIL PROTECTED]&$>7A!ZZ!J,0]W;-/<[EMAIL PROTECTED]/'V,<3J?C_>AT
[EMAIL PROTECTED];*H]W:Q,$>K9+0Q+GU%$'`8YFN$(KH?8C4W7:TY%IO3Z,7
M]+J!"PJ4%&A6MK?&Z:4"?"&M<FTB/8>,Q$S'9'IF/6%1L]>UET19OO#1$'YR
M<L+'BV9VM!5V4:-+T(J=V:1;NM.JY=B";,]B.@<1.;_EI;SKH"0I/:9ICK9>
MA?N7B[5?JF^]\>N%OT;14MF6E4E-8Q^!):EDPI;G'3NC8V>,D\JLUO;"N+,7
[EMAIL PROTECTED]>[160<*:K55;=`L65/KQ9RVR&;L8L=>44J/1OL0:4D62`&:0I&
[EMAIL PROTECTED]@`M56&X8?,>6C:,L#T>&[EMAIL PROTECTED]"K`3-`
M<:RE+M"W0Q29$O'X%$NE]GNCJ1'[EMAIL PROTECTED](5NJKGYXXU$TEN/*'3
M83NM9UBVBCKALX]^A914&`)`)X'WT=GE/!7B,+E*29_7NR:;[EMAIL PROTECTED]<RF9
MEF5^S,X8%<-3.Y$]UJ\J^*9Q)KR5;!<>C$RHA>>"U=8<=%:'3!L4,WM1RQ9&
MXL(>Y-OXV'+,/2;;;!K,PS1@<C0-7%2&2:++"F`Q\_`^3A6K_-/!>#\#)\X>
M:A9551J.4WE6Z.;'L#?'T*V)U59LB0(E(M"N2VRLLB`)_3S,<V/&!>\#F&#(
M)H`N;C"-VLX+H'%[6&#"=FZ`V5G6FQ>*&,E,\C:%E^+D8Y->9I'(+P!#4#"9
MAK,_R%KG[A[<#^]%VTQW,*!1"5P^:2G/)@798N&GNMP+.U%09_"$*4*`OB_@
M1"0W&I^Y%WOP;6K7R)@H9':#-%,A0IC>99(%F[/1Y:^0>:>>/[EMAIL PROTECTED]:M<\9P
M14$(,O:[EMAIL PROTECTED](0SI;D8;D")31I"I*>/[EMAIL PROTECTED]"
M5#345"2^'2T9BGB%NNP__H$^^.+\<.4(Y2$:,_Y$;1CCG<COG:-#_ARR(R/Y
MZ)%98'Y%P_))))8P*E1PG))Z!:[EMAIL PROTECTED]<FZ%I0QO(;(RPI-#8GDM.=LU#ZN-
MPZ:<\-X<+*IL)ZE$:NECO5!;ZLT0RJJ&[EMAIL PROTECTED]>.5<58B.Q4H-?
MJ<0:AY$L,SD)*V^1R2>IDDA7!YHNLLD;Y25#$==UMPBG^DF)QL+X;)[S1V>P
[EMAIL PROTECTED]"C8=-TQJJ=(=T./$X]V&&K>MA>MN8,%1=D+/QRKGD,L:ZVO39-
[EMAIL PROTECTED]'QU&\(3I12I4Q.<)4MG)CK5_6AC$^LJW@&0?6#2U9""&4<''3<M
M!'Z24&*=CHV`35]`76N*IC]^`,N6ZH?GK='\QV$AT)Q`A.GQ9(HX-9(1800R
MI6\F(\+(R`PIF,VQ8Z:I0^CQ+5AHS:PT"YV956:A,8G"OG7.+SK["I)H;B'U
MW"SVW$+NN5GPN87D(IF>I`O,;?K`W*(3S&UZP=S"?^<V_4`F'$\L7"]-I$00
M?//$66</B7*.5'/X#95G:8@/9PG-6V$)<B4S*9:^*1LDL:7LUJ1!$41&Q1U8
MT!&`!$IHW1ZQ,E3?C^"JLC*7$;;`D;K.PK5P'@%(*OS21OBE!:6I!:&IQ*''
MH\X.O82YJT1K:(B0-:P'[EMAIL PROTECTED]&FF^66=F%41.")(X$4S.S$IB>
M+"8%89P8:8DP`IW(GW*#K+C+C7,E^*R:&'@ZH8NMPS3:)(8,2*2$NF<7\QG@
M^70BZN)HU*'[/[ZGQ5;<ZO06/#@;=J;!4-F9C2V98/4WR\-%%VT;X$7WAH5L
M',6!G\[,$QT5J*S;9,L-(*B9Z>3^NY&[EMAIL PROTECTED],K-12R=B?&@;"JSL
M[YLQ5F83II;'=+68K@:3G(.L%2Q%%T`X&ALMWQL-WQLMWQL-WQLSWR*(="*:
M1SH>V&[EMAIL PROTECTED]'P=O@"!KP+MOD0R-B2T(],4X<9KAHUF/@R]%=4M
MU2+HD:2MY?A.#'V8DL`(=.`A73\JPWQ/X6E'>E)[EMAIL PROTECTED]<*_#9)D#$`^
M,[EMAIL PROTECTED](#04[21RI8SZA:4X'R8U4RTJU`NGV:?C;6)KHOA)TYTH0F87^)%
M/HHOY`<K35TF`>EQ1,CT14M$!.&)[EMAIL PROTECTED](3*D0#;'[EMAIL PROTECTED]'[EMAIL 
PROTECTED]
MLZ:,BC+K2:*F;HFM1MRY6=ZY4>"Y6>*Y4>2Y66:12$]T]KF%M\_-[CZW\/>Y
MV5?G%AXO$XLC%:Z7!D(B1-=4%L'%.2F:DBZ350-9(?$RX924B*1MR`9':">[
M->A.A)#0<`=F*@(,3P>[EMAIL PROTECTED]<18&1"+RV$7IKI3,UD
MIA+W[9*X(KC+[%ZF+7:&[EMAIL PROTECTED](!]EBG,BB&`<G("R9]$`+D8*R$298OI4
MRJ9`*8P3$R41A*<"J286Q&8NW`263MA"VY"",H@@@Q'HD"2RI<GTT(H4%86P
M=8JJ,PTQ1;4+&ULRP6@/,D[VFM9#"PY-I9R,$Q85I*2;5,DD)2-=_'TG8CLD
MIKJ[#I^8VLWN[YN!4V(-II+#<W5XKAHOC:K,C1)9@&`I;'0<;]0<;W0<;]0<
M;XP<BQ"RB60>:=IG:P7,0(\:*'%)BD:#+0!T34,10J9FA%8D&[EMAIL PROTECTED]
MH#CVM3BRMJK#J+I0)`'[EMAIL PROTECTED]"18SND.21PZ>R$*\'
M[\GII[*UAY*\$EJ6<E+X`95R$B?(%R-MRNGR\A.GG/!C+]3IDL0YI(M8R=@:
M)7A/2AQ-5KH05X'+B:,U>1?B*G`E\:$`OCEVNC1G2:`GY:";73J9I9M5.AFE
MFTV4)NF6)N/4-N^FMWDGQ<V[:6[>277S;KI3$>^I.OJ\8T^?=^OJ\XY]?=ZM
M/\X[]G:U>J1-A.MEAP94T%W3>30%G)\3J>I2>RQH!P)R'>#$G8J`!0/V^(KV
[EMAIL PROTECTED]/D(E.%X@)1!:\&PVU(R_<;[EMAIL PROTECTED]<K<ME1D<MN
M]*?=R$^57;%+:I*FL,[EMAIL PROTECTED]>PRSJC`%0Z"LY6[B->!@"K:
M0G:[EMAIL PROTECTED]:"&,DRXMJ,#EU"'E*0.W6<[EMAIL PROTECTED]>($G:060UO((^"D^[
MN([EMAIL PROTECTED],D>7]'QJ+1LI\FR'DO9S:M<
MK!7+W7OGWLCOD/;=UEGYY._^?.P]-S%26E4"**7GVM)S[>B!K#C):D54`2VC
MO+&5?&,G^<96\HV=Y)[EMAIL PROTECTED]/++D5P:IH!C8DPRL:))$KR55!7#7U#9-
MM$OSBM:5%JC8A20V5:Q+?TO%M<[EMAIL PROTECTED]
M70;BCD14HS&DN,T44O7`;[EMAIL PROTECTED],A5><%#(T;,&5I>JUW4LEZ=0YGH,W9NZ[Z
[EMAIL PROTECTED]@KBT6,^I;[EMAIL PROTECTED]>;GSS\[1\O7EX_)U]?
MOGA]\P_R]>;UBQ\]>(G6LYN_>'^_?O7ZYL5S[\T_7UXS)A%JF1)RQ_&IDLGJ
M72;[EMAIL PROTECTED],N,)`41*#>O'Q4OPK/:3)X^:[EMAIL PROTECTED],F&L#
M&_@:*9X+DM8*R'[EMAIL PROTECTED](=0C4T_>7%J#BI0VMS[:/K%!.IX4CCO=+<Q>*
MMW:NKIS!R<#Y$_[[/=PHL79^J(I<7/08_8=BW$>AA69WJSVA(&-$`K9?/KBN
MS$^B93P94';B3WJK"IVR&5J9C09L^;F-"[EMAIL PROTECTED]'O;'X:BKK!;
MPH4B3"&,2NN)$T=$W*LK3J\(![B"+#N\1.PN2_PR3O#X=0#WW2;A`=++P55Y
M``2J50`J&*#?H*QCYV"%J]8PB#;*KL3YJ""<S+[Y[KNB/!ST_Y7^"Y$^B/)T
[EMAIL PROTECTED]@N7V`BW(_H"&'ZX6+"0S_?5C7P0NA7`+`
[EMAIL PROTECTED]>70%[C'93DE4<UQK4GVI>AZXDDT/I>$>7.[!Y;9P
M.2$_/>P:C$6<!U=\<$6S*\+$[.)TFQF5Y3;[EMAIL PROTECTED](`7TTR4UDZ&(;9,^.\U
M&`1Y*;+1VCF"[:OA84B;Z2!:K!+:S!18XPAE#:!R'XJTM2-)<"0N14$Q7&,W
MJ&$YT5`)SU5_>Z=4.F'5NEP!;[EMAIL PROTECTED]/*]]O/!67/FKZQI_$HN])
MR`%?'@[EMAIL PROTECTED]"%?9["%ZFOU3\,TOV2^_Y"F?\/[EMAIL 
PROTECTED]'^:W.&CTX`I?I2N8
M9S4/SO#[<09E`DJX!'%+#\"U0\FN!7F[-MD6D4NZ1#P(@@XI1?*2K[L,?<+#
M\%^/@!8'H+]88?%[<7:9\1KN+C4I1B&<+Y..$:;ID!M<C$/-00=_U=])\1FR
MO=WC"[^]((8!\HL211G>]3?B;<6Y^_TWT3(/%_5(F19E<8\&57]=E13^/*J^
MOE]^XTX[">FO#U!)$'3I,MI'JK]X&;<Z"?FE20WA7MBH[A+NQ?M`*1501QN*
M5:*<I0(-6B0"K1RJ:F(JMQ3O>Z!8:I]E_"0<V9SR5OK,K\.C(?Y^+ERJ0ZMP
M2RJU/SQ=Q4D9I]55JE`KDUAU!X:"4*2F9'-$7$$UL:.J/C!NIMOKZ?;`A<O<
MM^BY<;K/CANGN_;;/?%C\?3DMOUA.PZ51A2N]>]N1$1BCT84KF+K;,1]\6/Q
M=.V61MR20Z41A>O:NQLQF27I<.)[EMAIL PROTECTED]<S69%WA3J[.UOW5&;5X
MOG!+L^^;=8T[\+?N;^40MY_&(?CKU;9QB=M/Z1+RQSRW=XJ],J\,$KYTO*[0
[EMAIL PROTECTED]<8GYH[<JJHI$Q_2`??W:G;7`^Q54M*-4E'1(&[EMAIL PROTECTED]
M5&J2#F^[4[>YHF.KEM33/[EMAIL PROTECTED]<[EMAIL PROTECTED]:',YR=9!
M94],]WK&$[?N%J=T%>=RV)-=JQ3.:__")^Z2V<1I7JY'SGRMX[>C=^2H5>I<
M84((#!_"<#Z"CM(3##1\1]ZUU_Z$U]%=#`:#OO-?]&T411$%[@(XJ8</53/`
M-93"<#EPAC,BYY>[9$2$%RK]HMZ^6\!!HO:LDT>OX%J##DY.4;\^K!">--\>
MP496'Y];@=]]W/DK\^CCF'A-[F?%I,[EMAIL PROTECTED]@YB
M#W[TM>LN>XONI5V;:WCVS$-/NZ&Z=;=[3'L([EMAIL PROTECTED],<[EMAIL PROTECTED]
M_AQXL[F,[EMAIL PROTECTED]>RDKR]R)QQKX?6=M0IYEE>5F-/<&\#4\J.AL)(G19E<.]\
M-R##]`*/RL$]V:;%:-7;8>_Q4!6A$8H,58/Q8""GF,P:@HAD31%1DNW]`@(Y
MB:'?$^AW::O+-K_DHMX'B_Q&%K&Z&^3!.I_&.G!'XV"TPSQ2?.'<EVJZBZ\C
MU(G7JC\8Y#.(=*J+G!Z,\^D"W7"')ZA[RI?@;NK7T7<_Y6,\Q=D<D^"?)=M(
MA.Q]U.^D2MXY^_"0TL-#2I_H(27ULR?\NV0>G/+!*7\KI[2ZL?3!01\<]%,]
MVJD=T27O?C?Y)GD^G<[EMAIL PROTECTED]"&24K3/1F[XZ$[.CT;CLY'@\O3P?CB8O"L
MW[!V59U7`*1'U09>F!2A[CB"Q'[EMAIL PROTECTED]<_6QV1E[Q5[/>L%*L[DG]'"H*%
MP.DN&0^_P];9!B>?F?..%4.'M2T`Z`B#/J%VRMO29I^GV>[9"'L]AA,3MEG]
MWY);JUO[/P?.=?'8EV^K84:(^]>[#DWS>"QO]AC:4L*'X8S'7''(8W]M6;VK
M8?=V]><_=N]MCTF4JGWA\2&Q.+;QDS8HH56U_>:TWV&_[%-Q9O5RBD_-I:['
MX#O;[EMAIL PROTECTED]&;\AM\>(@T2#JOQDKZ=V#N0G^[N^L[M*B;]DWWDL=YOTH_J&;#
MZQ+FZOR\%S#V]>RM^%JJ+TP,F]=#?-XBP9OG3X<[3(;@6G:K)PB5<E<IZB2;
M3L,\G!D>/FN7BIT?/@/=_-$G.>*Z-=T3:=V>,M2^3O1WH8>M;OO_&C4#G>IL
MJX?3D:2]^ET03("O=AC(C)8YOXBOJB6?0_C4QQG;%R=,ZIN%WP[A]"+2.2K$
M^86/_1,[EMAIL PROTECTED]>#\[(A;NE/VJO*X498KO'H+VPE`7]
M)(?ER.0$"G377Q+&;"[`9"$_`Q'[EMAIL PROTECTED];E6%]>M&T7H87(FWB2^MF'*RX
M8*D6A_R21;)8&>H79$U;[EMAIL PROTECTED];$G>G,=G?\SN($7;![OX9FQ7>YWY.8KB
M<$#H)$`E<`7VL"WH%26*_4&].[N(?\)/5/C]7KW\F?1^:>(:OH']V'D_:4J:
MV[V+2:\I1+^0'^,F#OTGEX-^"P\9,%Q]Y3P>(1&8D+G$+]H]=`[>A$7IW&?Y
MAW#VAXK.=Q$0`KSOT/!S<[EMAIL PROTECTED];DP33T(A^-<3;T&&:K0XA^#4V^_,*&
M>H"%'7Y\?RF&/:&%KC_O`>8PQED_N,$:OG[G'(YA%(2_C]&2L"ZBT#]2BL6.
M0DR$?&)TXH[=T\OAV>GH].+R_'(T'%V,SU!(<"\([EMAIL PROTECTED]<
A0#\\1W#</>VU)8DO'"[EMAIL PROTECTED]']=/L<$![```
`
end

>Fix:

I have a choice of workarounds:
If you don't compile with -ffast-math, then the test program works.
If you compile with -ffast-math, but not -O, then the program also works.
If you compile with -O -ffast-math -fno-inline, then the program also works.
If you compile with gcc 2.7.2.1, then the program works.
If you redefine floor() as a call to one of your own functions (eg.
myfloor),
which then calls the real floor(), then the program also works.

I have also noticed that the problem does not occur with gcc 3.0.3 on
Solaris 2.6



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]


Reply via email to