From 5baa1aaa2aeb5e0043d340a07d7cddde51f10646 Mon Sep 17 00:00:00 2001 From: visualfc Date: Mon, 20 May 2024 22:27:33 +0800 Subject: [PATCH] runtime: PrintFloat --- cl/_testrt/builtin/in.go | 2 +- cl/_testrt/builtin/out.ll | 4 ++++ internal/runtime/llgo_autogen.lla | Bin 5662 -> 5672 bytes internal/runtime/z_print.go | 8 ++++---- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/cl/_testrt/builtin/in.go b/cl/_testrt/builtin/in.go index b06eec85..e16f2465 100644 --- a/cl/_testrt/builtin/in.go +++ b/cl/_testrt/builtin/in.go @@ -25,7 +25,7 @@ func main() { data = append(data, "def"...) println(data) var i any = 100 - println(true, 100, -100, uint(255), int32(-100), 100.5, i, &i, uintptr(unsafe.Pointer(&i))) + println(true, 0, 100, -100, uint(255), int32(-100), 0.0, 100.5, i, &i, uintptr(unsafe.Pointer(&i))) var dst [3]byte n := copy(dst[:], data) println(n, dst[0], dst[1], dst[2]) diff --git a/cl/_testrt/builtin/out.ll b/cl/_testrt/builtin/out.ll index 1f205311..50204197 100644 --- a/cl/_testrt/builtin/out.ll +++ b/cl/_testrt/builtin/out.ll @@ -223,6 +223,8 @@ _llgo_0: %96 = ptrtoint ptr %92 to i64 call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 true) call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 0) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 100) call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 -100) @@ -231,6 +233,8 @@ _llgo_0: call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 -100) call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double 0.000000e+00) + call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double 1.005000e+02) call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) call void @"github.com/goplus/llgo/internal/runtime.PrintIface"(%"github.com/goplus/llgo/internal/runtime.iface" %95) diff --git a/internal/runtime/llgo_autogen.lla b/internal/runtime/llgo_autogen.lla index 61566d860b8ded0e710d840169f70397efa2c8c8..9dba2f3adb44f05088eca6bbd01446d28e5941a5 100644 GIT binary patch delta 5658 zcmV+#7Uk)lET}AhP)h>@6aWAK2mm~`v{>yJ-*|Kt004mP000jF8~|)=XK!C&b#!lM zWo|BPY*kbV00R_bOJ){hOJ;R=3jhHG^#K3?1QY-O0PQ_%Z`($;-~B6yV1>1JeI3p4 zAu5XnoTe={z->_U@ny3?KufekRIf@@8n@_wzw;*NL5ZAy8B+FL1!yf>M@tHy~wpXMlmQ3E_3{J_^1BMfw4K0{BxBedq-J$3>x|h@iBeY<5@NyhB?d z18My#TIv0){0Y5S1JLeO^3rw7hY5;p9#&SS?L3qj@Fis1RHX8Mby}!zC;DHp>=7VEogK>)1wi$wP=H(I4_R4!&V${j;=T;BJHZ`XJU3-mJjTmureKnn=8 z-om%5@)ae&WwBdk;UkT&EFE#G{nKuwNA4Z{j5 z!82$J{Nu-6InTG-4H_i>LaDGuw->jQkXw;^ir z_O<$U3*xQbzEa=rM0{xKa}_`f>Z@)3Mt!{n?N!*nSLI#{%B$XfslMGt5R11zsBd?F zqB^v4dlf(nsyi;VVGGg&mDt{7t77&l7$G6`TE(XY8G=fXFg+R|$+q6U3S?jxNN*Oa zoap8DD*5$dv7Y_>;u70Jqw!Vn$Hhnd;K%W+iy#=`-I`?!s_bu<8Ge{QioW0GCHZCq zF8*{G|KFD5kD&a0zTD;ICB=xElw)dto?yIsC5-(n5)1GX~|=0HdM zZX1w4Uk8iqE?)#A`W;YyhZpQ6@G5Bi?;nU@^7#(UoIx2&E7jfAYd`sS`ETqcvdFh= zbwMg`h7AgrZC@d@Pv5(``3C>;;v~Zn3?_~w$lHr84*xM zgy77GXGR>J5r3e+F(P0LXGIIA=H4^woLR?~b-Ee8Bo21S?tRG1e338nRfz!?D;nsi z!lzc@KyD6mT3@WQc?A+%&D5QLNSn;%ZX>@z`~POWd8BH}lT;vx6IUSX4z51Iigmip z>fg*WWV3?I3QjPs?aK8wx0)r}f>6RRY9<7Wsq+E2XM}zLJW9+dK}4)a5l17!402s|dD5eGVo*>V%?7A5=pH5tlA5ScxHzbP4rgyR|( z2xkX4juZz$CPf->#KE}oJT zb6hBK9A?REKBp9e9s!&UEmlv8@lehXtmZJMM#i*N4~dm}m`I_Ww8k(zMF)aEyCC%` zpZ!8oEj9*+;AbyNi$Z;WYC21uYY!@mPrON0#JZ}8BrLpWEK-5Mz{ffhx6)Tc|Kz_4 z^)v#NW0MZ&*i3ug6(H20vLaJyMQGxw+?I$KdF*%`lxs|l`1|GdGhVY5R<)nA#a?FO z&AQmFS4@opKy^8O2OM|_e@{N*G~TsPuj(Vft7}k)t|Ss90c9b7e(l6rch~JK(asX> zEYaFYG$&K4GX2vg5ojwWxWKgWM-PfuTZ9^gu?s+dqI(3K0)V#RdnUVRP7_TCJ_!PV z6#;}^2>_DMq$6{_Y5?t zOtm|&KQuX{EWCn$dCKTrN6s=^4U}3iSX84~jB5LhK6|HUTkdSj4ep&{K4-4ybGJA` zRxm(K4)8p3h~Pv?M4)96hcPzJUi(?npC$dX@Y*d+z~`?>*m*e^o)yVZio|xoUdX9( zqh_$pF0u;l5Q>r{uR;&%k~h*=yz3D=Ng%}iq6~V`1@ahwkn4gT$B4K(X)1OQ>1iiND+BBQgPO3wb&lf^@{io3}(mBKRMK&h9dLIh)-TY#7F z&!J)Dz|08pr$EC_^Li&BR}v5n(or#MXxZxJN=^?dnBS5Ok)w8J@q8A~XYqU%&pyR7 z6|U&Da!p2mAYulGx6p50rFYmMzAYl_{>67RsQ7kpM2;MIv=Z{3sv@PGH`IzZQ0t|I zyw~c}VRYpq)?`q9eu6?Z`P(WcYE%^eN##G0jrF$N%#557y~(F+=o^&mlzbktz1mDE+(F zzmXAtw9KtL&xOL5@Fwdyu3Vg{9OvhlWb+{YZ1n?!!1f^@Mh%C=v*3BjFed7xYx-3| z**f`3*+4oeHUJZaOZ03aO`4d^9;^&fb3WGwMMZj382yZU>|w>Wg! zVv6KM!v?(MHhV8mavgAnjh#H`^*+EEGWx$$3FbCoR#0FVVzhiBh4p5;9i{ z2T7fotGNUPDW>k5-?vO_h(N&T@YW4e)~lEYhco_9wa-oeooW1q=#KTjX&0-Kyq#Fm zjfrb9Y3RV8++a(FCSMjCu*)&_5lJwAP`=ktf~U-?Tp%86S{X>@Q`}Z3JGoAc4pVXp zhlx3tEEO<$7XDIl8h>fho4e#CUn`3_Lo{m|XpN9kJx8iB$Y@$KTh;!MD$67u9Skp_ z`=hG@puQ|sRK0Q+WmgAcE4uFMgoF4xW8tRC+XUr9CfJ`Gz}JDoS@m-i+p_0>mYP|Q zLx()>*nugx2bx?!&uasO11SO;oLK7~pGbF4 z8mvLcgWFK%O)Gy*L)h6OtXwt^{(9t#qsW~H9=wrAZg0>-i%J;lqz-%FT&SPvGq*S} z)gIMS;84!7K$|3shL}4Q4wYzsDHhBl@za+>&zyK|%fT`y{-apEb>(OtM6|T*a}e0b z79Bc&=wHiG?%0B56qH>9ZLxhf_U{qPm0zvb3#ZEvLcf5= zk0tJRoHkUf@A5BYK)xl-GD66=wACcT`Xte$_T}snf2@@mUii4HfXw7ugc6d(^YtD% z%MH`H$8O9T4IrMnrY+OCCo>!a*)8H>N?}Ip?exk(+)jLxaGIqni2Typ3XX5ab^9sl_ltZpe=co!!2zEp)ZY_ zmibry<cr=z$F4|>!BX*5RfXITb;008X);O z-q4JNINzXPAq5R=vNs;?L*v1rD@jcbib7mR;Usm3AgQ5XlbRy@?~oIlI1T*$n*5!y zYjmnfq#h?>og{RBoy63qLcqO8PoUf;Jt#MMdxo8lsB7~$pYAmoEb8Rx${#&w>Q!0O zplRm{3_i#Hl(iHDw7u`APb{FMtSc*Uzq&MYnDJRI)@qZCg3`A`WNeznYF^syU4w`##%TI9azNT`E!75>5Q|TJ}>` zr_9f;G`4qtG^*T0trm4GBSKE9@Y_mp+F?}1?)yX#inzaupzK|Ns>)uRQY00B^|N?t zMo+Dtjl85HDa!sk1(+6QVpy0&UKm-&wH|tve<^o(_!(|_Ar_Q=m{9ix)2}$;hoc?z z#3;0Eh*576gn-lPDZuxY-Jye%c{KqCwS(sUWNoj1rQPk}Xkt@^pjdfo4ap~pVc+aW zOB4)tACwJ0Qt~NCVJaxWzy&-g#>+d=yBECdQb2$LLi3H_Fj1`mN|tbXdQAkU{<7_1 z-%5a1Ea@gE8d-KSpmCGKuz8C_i5}mh(3p+wr7|G&U$3aIo2i;Sl+S;K{v&_7DyRz! z&S9Z{?dJJ&6ncpG@3APfxZuil_sN~^X9v!Y1J}ESZ!i;OE3xWh z!L8?s+*M<^3xxV9_yu~GAW}4jruv>vmVL`g#$Z(-OiIS;rxf`T$(E>AP1dJ(;pYU^ z5t9JuwW&(yKkEPKCIN_4lVG|2%pz;TmgO>kfZmy-t0y0JdnnoMLi$auI{}h4`#LML zv+{dN%CA*;T69-*RDS=Pug<&wly<*W0^Vr)^qF_1Z@kGm-Q!!&^VsC|o>PYz=Ny=R z9i*43dbJrHr)q4S?8#_6(ln=?)#w=w>nOPhPET0x2VU}W)j`}_TLcsKsR4WW>@+akB$3vPToy_Z@$6pd zd@MrUYM51yzHyFs;lYUEk7@T<+A@>hhHPwx(e-gf%KNE!(c2-rVw|EMm@#>60 zi~X1Y9*dTKEm6qsiko-YvQ>2lc{cxzJZ@EuX0Z=2i-%0M^QR?sw0>??-9EK0Mh1L`N#Jvon%{EkZ5WNngWNHpwDTSYZj!ot+ z`#!C{7FSMHQojp-kMx?4v;!bb?lnXTolKXutRzA_0Cw{7EBN0Q`C{JD%@?m(I{Io# z#99~E${>dznwZ(=gLKBYtvHQZF5bilW94rN7LK|q>L>W3Yz=qNlqRZ$E%<` zFb=d6Wr->ho9=xxh&s-Fiu9^~>fc(L!OipQY6fdkNfv8^wjn*A_5S~G*1L8EoS`Xc ztE1k18hTaOCRI%%5eodBw<1bOE22c{Ash2(AD zMx^)V0Br-7ZmlvUPOv$&v?K6{0K9)8hbV7x9iolT8kw@zz&cD}?jdM@PUuK+w_RRV zudwZ*Z`SQ$XpNY-yZO*r6-RG7PTX51s^X_Ak-@A+5i#nvNPn)h-T`0z}{ zIbdWstY!?UTGuwOG8~v?xHhz6Wksr@l^tJU#>Ga*cVtu!mFwr2-@R=63X-|&Eq(9m z<{SKr=PTj|4HWWNczh*)iJ7OHA-9VfibHQUQE1)xwj-7w=pX&jjN2)`iuC{HLiU`$JeWW#~0?v5Chg=IbHg) zAHkKmnRPnM@UUU{fo2~z3=fAHK57^~8fN(Tw0obNcKFF@NiRJu=}k{ddSHCo%?Brz zd!R}14YmGFl5eQ_H;KNX#&42+AQ=dOCh0d60#M!o+q8%ht)qR$ENizFSWqq@a)K4Q z)afX&B2lU14y#IkCcDE*m`=SHoyVrvi3Sd%?J)KA-p zt0&v6p-~0^emH>UBCKz+Q=!#LwLL&%_u={BgZk+t9zi}NovSQa_YrlMOerP^`yU%N zjeW!}@iBJTGv`44)Za8_M~a-Y5!xVO=I)A^gail zHV%Ho_w*uN#*L#7A=?^-8yG;kfkyEL29R%{QNV!#BphfIamPFkFQYdKIWT~f1C3%1 z3?S#Ayz)czn=s@d3eY9qzWZjmDIX79&_-&X_6wRHM>3OV#7XUwb?wJ8`z2pyn~%FC zvfRvR5XYc@eU!@Ke{w_IHe1av{av2<2~DAvrm7VzC}juYl$3gIoW5$^HNenI?_hmT z)o793Sv=CO0w2r$Sz2EN?wmLh=jg}&%G&g+#S#86PA(d6k?XIyikP3DyVE1Nb6_kt zo~gtHWQ}K1@t24;o=NHiffUmu5v7>f?$eh39jOd|$fFJQhes10H=qLIffeAS^3`|K zBTW<|FWu~vO3mG(Lgr8(9kqw;#80z0BPlyw^d^CHxM0jstynuGVpB?BI*RD!Ag*OJ zL@9O*y|hZ;rTcRCy&hVUAF7-#4zwf}jG0jVOu3bA11@+jSo;E{;Mu7xLtYHqpx+w= zl(u|-@6aWAK2msNmv{+jY2heI2008jp000jF8~|)=XK!C&b#!lM zWo|BPY*kbV00VkZOJ;jeOJ;R=3jhHG^#K3?1QY-O0PP)XZ{s%ddwzuw)VSoD%bL`~ z@)ieVyWQdzxGsu5zO=VkD7KOal^?a`?PiPq_v2e4McER6Ny*8b7iiwR*M(+t98EHzR2_Y)r)Ldq?=`uzu4@SMYc%)cD7yZ zHna4@U6!ZIWRaqG&s)BGes(r$`|S0P#U@+cpCjJ^w!1Z%FCj_`>O+#>@Jz5 zDiHL)Za|8EU%VdKLq@7KWlC7r8IRF6CwX?i^uXB- zI1CPdLIG}>-X}%&G4-|&*eVw;^ir_Lcf} z3*s%`zEt1tM0{xKa}_`f>Z@%2T7A6*?UmU7s>;0( zb}E1tRCicv!xp3mO0m68mf7s3H$p<{m5NUbG6ba{VS3aB+#(klxIeDbdUA zRr0GmU(J3#zreQ8Xng7YdG-N6_+k9=%=1Qgw`NIBmHo{k!4LCC(f6CQAm5C@*iTaIi^;gf-bCop!;!^&AZ^c-KLx3E!IFkU^@e04(f>CZanhm zD=$xO)7%@;?|||_~5dcJT5xI&C8L9-)&vHr9{ zxPFhtPnU7o3`ag5cDLN5$?PGy%~MXS(3V&+AL5zVa^X8>rvHeo^#5x{1e6gWI5Fah z5r=2QALwt42pGc|(ZaF0_ry9U)-h$BZiX+3gYC0>@6#g9(?z;0FyL%S107}f)F>Rt z&0$XK`6`*0AhFd<-HEu#T<$i1@@usJuUG3ws-_%C1%fzn1(NRIsuL_(r`xQ4VV)tI z6=YU$glTPCtTw69EZG+L5{5xDAs9@Z55PSm^aJ2gLQV-HVm%5t8UcPF>KhG0kdrz= zM$&4;s=GH^KMKksKPQa9Ln0b+pd*_t*4{QR*x#?nP$q&%@A*y1KqMT0*RVi1JHTwU9Z8wqQzJaWQu&=Sv)i zSu&Z=DaD{i0B1vk)std8lrsdYS_ll%s83C2sdMdrL1poYH>rxSt||fv3nvq3M|1i}m0=gPK&P+MU-Q z>KsxQUco%2^{xYdYniPEN(~q+sL(7%wf#n)ywj5{ce3RM_f9dNGuQLETO2+s7@#Hx zcpf=KaHJ$6sAUm{F*Z(K`$^KDB>l7S+6_&>=dVcEc{%8x6vk0A*CTe4KnVLq8T6tH`5pZ?VRO}$q*{l*{EcxrB zTCzKqzaN)cuI9~CEM)Z-Xr297a`vZ=EFPj&>`k7j6qW&dO1%sfA{f`X1vm-+>>EZ7 z%#0v^3N-9AuXh4+B>~YO9Tjs8EmOT*%IQG`^INhZa@6i5o=@WWB%V*=*`;`bjd;07i(2ts0-g|L}IjG z^-cDxzNw`8fKkR+r~BMwjDego?n5hSa>l@oJ-TOq7{xcy>n@#d;yYGu7HQ*SD7Uxx zkK{!qbi|EMRee1_LEX1x?OA&F<5XxQtA$fBJ|I~+HJzM_=jc@E)-S0$WY>a+!$A4cJ=p|Z?SK)#T3a& z4I7LptY9-~Tk8~9i6VkcT`Xd3f(kZ=1f$Qf3GM5H>fI1H4{&Uz2e1h^HjxcB#AhXc zZ6p`FTxbhYk2ZoD*GTQ30BQGzYK80;{vX$%9=rBdcaG02L z$x;E6XW=hJ$MKgYy}3(H^0l&<(?qkTUab*QT+fl#7-Tf9n5}AmNR?$GhYp65(EY(x z0kFO-WmLU%7iCumVk^4p>-dvV3KV~Ja}?XK=a!mT59JJyn;@=yASKeIfO==*(zR4u zNygGTLQRJ}?%07Tw+EVBK*wtXgaau88k|_G9-l~ePa3R2$b;KZ=1n7it%k6*MOeCQ z4*d1N6-SXf4;*+Sf!yAphZdDEtdlzIfpcN~OrO5Rfv)zbk^+Zvjs=<|S!#cX*;C|n!gf2#Pd;O zc+idiBYa@qortvhcHu<`er$iWEJ6EaVQHJ2SidZmH1$~Ee#db`#rih=RCwfD(k#P= zd`nwR(yvYuO=?%nF7U@nncy9&rmzC|b@NjzWekh9z{ojdHttk3}BsVmwtoqICF zF_76J?xz%HwBAfFHN9Gx=jHW8mf%@SFq_MiwOQHsl3FbPm4jG8u%oaE*va_H&c_H~dsfD0Yk zdZE65c2fOc>8E{HY4m?(f&gB$HFl_>-qM15gElx$y7p^|pr1g~eznz44?X*(isDu$ znw5q_ZjKW)VH>V*Xa`rC@Jd_3%PK}{aFr;;S$$P1}UL+BxO0R>T8pt zcn5vg#}W=lxw;jCBO49Ih5m|iI-0>ij|@1N!O^S*V7K|QQjJ}zH^;3_PIt%|r(%!g zkRH6su9cGO7|wsh-SF@J*kna|!IN}kvzSF1aW&?U)PK&7V`f8mz|8J3WlmmrwO*&o zxseT9$+L1PuA8d&x z?s^-$DPvRSXI6^ZI~rwc>PqeBSVn}L4B@wf;_Sc(iim%Fp9s=XG|m-}y(>^wwTn}M zq{6Ox_DxOosnx21lhhwY+5O3U-NH;X3lqr;BkQ=b_w5 z6({O&w1b||goX_$s!e$ia9XVd_`b3`Yj9q!BH&={V0TlZ$|_45T}iv!!%@JdiafFM z)Ebgc@WOw-*^ib4XzV^H8-Aq3Qjo$_P=baFcu^L2u_`3x5*OteJcT4AyhXx(a5rs0kxa#`^{S1v7uoc(8w175eSKhk z-E`I4zI@)wcOUtytAeVq;2h>lUXi-y=9hsHR9=54-EMk6MWKg?{~n4$iwmV}cc0v$ zesbX4IB>mN_!=`&wi3&}5!`y7$XzUkyRfI90$Wh;%CmmR$W(u&lV#s}@2~J*U|Eps zy%(;SyhO4kT00cjr+4Az#L@wiKvS5dblRi-U)>}Cfoc*gRv%NjFiXe)dPhxNJvpgv zlZrQL6pfY+Knedb;18?Td2 z_vTjfJSKU)=hV@~ItNz2e$mNPo!X3+Q`NRAc4RajXj0S8YIKZ-ag*` z5{CSlhatxf8`B?bK2-K4u2@`}`%e1bdk}xtS6%JT7pX>`i2IZs2YJ0Z2zzTopu;}a zU@xCl2AZ22;);>WLMbAi-7B4sMW|a1v&s=TM{(yv99MP|D3?!-Jl8Dza`UJB72)O6 zyE>t>9vRS0j|?dH$mr#yy{1P7>_KkAdcTQk!+UYCv8k~H5SE)PTaAM0HO%af^jm*; zY{h0b6NMILR#m6BcnYBLs)|92{g?nAixzqvzebRdok>HvNMb3cv&d*;j5DkKbppgWC z)!I)rJF9k60ZtOwP)aj9ZFMsilDA#24EJ}jX_78&1D1BJDJ4!YIkdDT@Q47sJC{S0 zH@FVb#Agk3S!-Y%rqK87(Zh=Du>ebv&`>aw0#B1+|`D@cX|B=|Kj*c_CW)MJQf~aN@9QJ>1N2yqK4wo zn@JS9ZhV^&%MbLA?r6sD6kkdDf48B1s)ZVlGMcLYvEE&H4y+9v6Pwxg$kaB(E>&%` zBXJ0Db5fU@WV-&&RKJ6+Rs#n3#r-bXlwqgJl?B6iDdoWhG$zv3siR4BG0m|h!4}t% z5lK@v^P<3J~G6BHCRp;uIxu}sc#+~4>LS$7=EDH`whdxVTKPHh7X1r zK0NN;N5>t0a$M4jk4t*fws}5`06gf0N`JYW_{4Z>aH`WFLqILZC_d z4TS)dcfd3)qD1RxpE1MQZ3PyTONgvs`8IVr3amg>>e$07lgWSfup+rNtre_^++)@X zR;={DvjR3%8rj)VYo*xQ0W{WR&kgm{Hsb2ZHe+a%0e~A0pt%U+o8weyl~Qd7(AfQR zZup>jI*CV+_etk6OV)kFx=W@M6Zrj)4V%V3V3)WU+iw~>?0@W_Y3u{q*u~gk)7X># z$BvrDK46Er7<+%xH1@RrvE!z(d0l#+gHIa=Kj3>hkuKxL(T9+2jlvBKAl*Qtcmo5- zH_#~HzyJ~sG>W)G9*2|B8-*MgK+1teF$V^ab5LISA^J^d@(>y55^vwWS*(l4Jr|;p z+NWJk^W#Wn@{BmCeKM~7SR}uti)8&_yFiwkJ`G|Sv=4t`Is8v%)#$5w6z4Z3h_mqtm*&V^7`qkTGxj#$mi?^*4N8%j)*j-s$ z{VH#SKMbR@##`I^Ypx>Z=jN{RK<*qE%8h4AF#%cQnes}ofHt0qssw=)(ih+}Ec1oq@HZPIc*GEU~VLNftEKWFAY=2Kv!+_Ha!ACalt6bB(aAwv!)S<7?C3jbmB35)!tdQD3c|7MwVLh3_HTk5R#u^SH%kKDp=PZV)x0CN2=dOQj_^BN-UgW zH2CnQSz3gi(n&4@dblFBGa0DN$e?mWUU_CW{ufY70RkQa6aWAK2msNmv{+jY2heI2 a0008;?333OC<1y=lK~bX2D23a0002Tl=zPT diff --git a/internal/runtime/z_print.go b/internal/runtime/z_print.go index 2bb01541..4d4ea802 100644 --- a/internal/runtime/z_print.go +++ b/internal/runtime/z_print.go @@ -23,19 +23,19 @@ func PrintBool(v bool) { } func PrintFloat(v float64) { - switch { // TODO(xsw): does c.Fprintf support these special cases? + switch { case v != v: c.Fprintf(c.Stderr, c.Str("NaN")) return - case v+v == v: + case v+v == v && v != 0: if v > 0 { c.Fprintf(c.Stderr, c.Str("+Inf")) - } else if v < 0 { + } else { c.Fprintf(c.Stderr, c.Str("-Inf")) } return } - c.Fprintf(c.Stderr, c.Str("%g"), v) + c.Fprintf(c.Stderr, c.Str("%e"), v) } // func PrintComplex(c complex128) {