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]