From 141d9286c1e7f98b669018cab469db1842b408d9 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Thu, 13 May 2021 11:24:27 -0500 Subject: [PATCH] small bugfix with deferred statements with fallthrough --- bin/onyx | Bin 362648 -> 362648 bytes docs/bugs | 2 + src/onyx.c | 4 +- src/onyxchecker.c | 4 ++ src/onyxwasm.c | 6 ++- tests/bugs/fallthrough_defer_interaction | 12 +++++ tests/bugs/fallthrough_defer_interaction.onyx | 44 ++++++++++++++++++ 7 files changed, 69 insertions(+), 3 deletions(-) create mode 100644 tests/bugs/fallthrough_defer_interaction create mode 100644 tests/bugs/fallthrough_defer_interaction.onyx diff --git a/bin/onyx b/bin/onyx index 8a4a22b5baa9e29efa78a617d8852f076d8da238..1d0686ecadee73de6a8551e4c62e2e1f711ea6b4 100755 GIT binary patch delta 46641 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

=!DrhPzi9ato@Eta{hWmlRcqx(Zd;wHLF# z67fcHh)A3n+(Iqa@T&Dr;MNB0NN}2P{{Ms1bx0F4bC4q}EeB~s>}SE2T#0^O!>6+h zsrZ|r#nJ{%1E5of8Z%rk@^{Fx%Y=N&wItEAg;mOA;Q7WCcs zyuH_Z%=M59q;U@Uv#{R%tdsfzHd9xZ(n-^XGfj9HKfWTD^a5|)^x<2NEu5`%g?F$76g5% zWZJ^}wmAk2QS~7DI;0VU)%&g4xd)=4fP-SpuGrlb)L^-9rGn)L z(HBvEI(cp7p*5m#m+9+ujB%=W2n3hsuxbSF3oSTc-=5sz7;13Hqf1| zysqaXRGT4oZ4ond-=s{`upLx+8?WjTgeyUUvkTOF8?RUM+s)8xEWspyV2PEmHJP{s zU9cZxg!vaZhGFVtvN10Izzo;nAqUYf+b|a|Nl&)%YRjVeFISOWAG&4>#0bDBTdC9a3`PUQ3FENH522|PVVL7F%;J*`oA$*o4z$c3C6cF znP0?Pt0mLjoxGy&u*E{CIf_toAk=CnhbTfFPGxq1{Oq`BmR9h8lEmqw-n+O@N$U~8 zY1DK)RNweLnRoFxpIeU==VtGRo;6uw@|G4Y^mrFyoWta{8v|q?YO?dRjX@YRobwddxTzp2(8OPhvNXp6qF%*Z2-brOk9x5NKv)C z67&!HuvVyHVS2cmHz~XOrqThwJh>;<49s`sgfQmtN8*R>2K`E~KIdJf4{ zlw>iD_!%)pFWUJtkMQ+CBQttoMGf{`94-}Xw#7X;`Cnptkt%><_wv9n*ZH6bC5i{8<08rF?kv3LM`w*AyP}CTa_9Vz6R#xV8ontytxVQrpMnlqhxvIN8b8=gX zm5?FmJNPdwr-tz0pmbdr6IXun43-M>Ab1ebEsQ^0ZUxVxkc{#c{k6be40AW zi9;>JY1V#>bKV*WhwIdFPS7|#+0R>frP=d})W$hMTT87E@Rpu!RN5bTBbFf5r`-p5 zoaZY!FWY~$-62B;#F(FL%rqc_f5+dIB`&dtYpWV`JcR|+hKHxta{U#5{Qdiof_)TxEq#zhRYC#GXe2P_I;wErC~pG>t* z@CxPJ{|0BO8@aa^nkP0I3Z6r1OH)r^-VmC8^#t$9d^ZX^TvAlA!|i(%UA>V8UEN5{ zPx1KDbhB-?hO^m7IYXh24163}dv{RVnyvm|KPVs7GPh=r!JrnL$InI2P ziwU^g7h^V7tQ^s+U<5~jtDNTbs(2N|5*83l{inEMW+;C~tG~)Hl@_1IyhoyQr(q{o z=+kLl#;t$BG=Ed2EN*nGQ4qU}dS>yU4gshtL#(N498AaBg}oV6=(WMEu`}*CS&=OR z_Li5Rr%0gg^@^LPXo_5EGpg3mglnv3T}?w`~h&a!}oWTD`%Dz2xaKUtuh#F5MC@Ji$cGcT&g8w!^9WMzT+ zoUhr}iI$Y7{TJb*no*rg{9*kw2)e|yE&rU&I-DF+R$&GR`&Bt;v7$gp*X&nCL6}Ql z#v<(%T6vj&BR2T1@bLCka8q?|6BcJVvIRn5=kHn)qTe3O=3!9wq0%Dlp>7n+V_@(Ox$ zg>MSKY{P1R&~@2aSgM1)J6K*M-(IHU7PI`^{UGJqBk@Nrntu5zw{bRy23^O}!gE@1 z9X*R%1J`*Nf4huaZlH(HQvDkUq03VD8@xZ(kdNNrvl+IeZ}MoDcR#~aVAUbCc$ef( z-`(UZSX-)p3rpKi=(}6!{#Eqq7G&a2eQ#sM`VZQ0o1b98H1H2);cCGjd;*`an=)^3 zoF?8NIaAd?d9jf83$hE`F6xg1lQ190ZU33i{FTDMqFh$PB2#GSpYYF(Xw{$CCf`k8 z{^ZR)F5u>}vaRypg49^*c83q)89S-_J!t8jJA4lJ)_|FJaoi`By4~Y`T=?J z65qN*P5k^Gug$w^K*Re0Tr^;z01o`9CcAr|mke5E)`@+0LA#nlB_ALv=!|6I4wb8R zhw3+>N{#e+T|`G!rM?fiXJaotv9AaY9rW0WqM*lfbxdp&QH+reJmBZ~hix?bFD$DZ zpp$>`k-Wt=>N7&BMt%O~uFQ=_{*B8rd+EmC*sp0rQUCDK6&7rO=--QDlh&~6-zuVy z$3w0#GCSAWD%YMU7;&Mi|KP+ImdzgW-+f;ooXc}|6Bj92-Xb)Y6KL8a9_j5FA!0kR zi)?KctVjUI{p2LN@CfTJA=Fal7WO^$v_m0rBft*j2~;8IkR8UhQar*74HHV=gMuFO zzWmch3b6Bt!hr&pv5{tS$%_`e=Y`VmJ?8F=!C0PP)`=4Y|MJE>cLOE;iwiq2r+<0h zpyAVX^5Wu@?th~;!jGrW|Le5rDNYQ0OHZC6Z(FMR43I00eufjTuOeynGhPQ9tuvqV z2y%VSi@+m#KgU9kH#L3EBVE6&)$GOMZ=_3C;k6Gv=gxfpTER*feSXdje9T%p_Af6_ zp)YtqxpB)N#Mx@NX~iuTsQes!4Mk4vr$r00AB}l|(+Zd9#}^P4_MTqwSQisKw`!L! zhe{!;kc!aQm;4=W8Vq~IS2J9Lc+F#Z=qg(Hn%6B71ChnzN-7o)7QBXH?51B{a}y3f zc)mfZaw}=go3B&dr`2zeY9rlx1FzqiD!j$|;#HdT7Dw=|FBklKQG%;fl+L{66LF{` z<{kI!S_j973wV83alax^k2Q%y3`O)<2eHTU25MHIgf#RKu59f@@paDVi6>wN@ESt* z^7PPQrXs>=vmn9`-4Vv%*vmVJtqL`G&%-f((n~ItA$re$;L*$IehL&wX-Dr5+&!w) z*n-tR*^chGo}|oxrXzg&1+@*rMpwpMaXsA{))XY9I5Zx$HK3gzFqe8r-9Pg7Vo>}D zxtf=#^?7{4I>AGtPyD`+;%D61+CdjTdV zW@Y0F2~N;tBTYZ@%R!oo;!)QTTjKxH;vD`DZXHa>g}NVKAnNj`8@cf5jg}UbMsmjm z)TR$m>;IG-m#&n$vK33;NJd=b@@3LHoZ5Bc(kPy75q9*A&@3)p;78_(Vgl)&Bz=#a z*i=U;o^LmcBxUIC9;pz0aFhZ?5l&JluW1&Ey{J!DsKQ7mX*6Fu_bUu5B>C~o0d&8W zZ=MgS0Fi;L6=J{*s- zRH_J2)z$aWc<0xX)l$v~V1@>iDGH#H28KxbzZ8?g`9uw)fOo{HJMZ?w4-J-B|-nB>*^Rz&ZhJ zovJ2#CxCVu(6S_e&r?*&_X7A{13m)~x1`*qPW;_uHNjSQsUIJ$0A6(QrQ}F$YD?bK zz(cCb3u|eXd!UeAlhh2)J*4KiE)?l0mBPM5M^7n+Kb)wN4tOHnLJe^90uZhNg9UJZ zf|~4z0Oo0cr#FCF8ZZKY=yY$j)4fHf`v8Sb7w@C-&aaPCOF1Ke85&T=7eFNq7%za! ziE6T61u#VejHS@2H^!=ztWr`qo3_jk!ld0M3n8 zll?A$u^LddG%C25pi+J-4W$^T0hI%gEIj*rrSkSYLtG+>SZj$xBnxVJk37^VSXRV9CBNpDwGy2CJJhE|6k{LouTSbQs1 z$L&LZ!FXnI`q+T>R)@hY>aBVZ=Nj-J;c7w}TmvQE@1+)hL;&+Nz%v9uEe#j}K-f-* zYC9p2TB%T=U_0V{G~W639%?CP1TaGb%G3lLybE=R8{RJ6+ZMxCm35&(Q#%FaRMMFiHS7yQs-d3t*N8l&%AyiUuSK;A&?z z+4(xKtxyg4rY>yjS|^oqwl0z-X+U5&fM5-nAb?99)npe0Fj)i2M*t|N0aF2BKXP}3 z6v1)szGa}~LynQ~Y;`-RwlyqLs)5zgmywX_y(fM64VKn+L|z}Y5hvTFhuqXE_80QhM@iU3Z=s>yBxU?a(`IRxhw zORNFhv8B0GlOJuYCb-ueZHZKXuiG-N1=@14k(%bW7ASF&22_X#P*ww`3E+H;n(V3o z5;dSoOO*ROT2Q_&H?t+mO;ylARH_v+RM&vf0=V8#E$U1w$(v{UiC}FI4{NBZ`iRyT zM(#IIQygiHrm zTSraBx?teNb%HKZckWzAmDq|dQZ*dq$m#-zkr*cCt92;4tK`gUhp9pI(5})%oY8&I zRf^@EYOBGvshf0ykFG_RKJ#)E(p?&Yg99tNOHKG%*lLR8OFzxV(h2J!l`65JOu_Bg z4OF#<6qQuYP;lyEuZeGqh?O%vJ`&%H`D)htq_{5Mp6?3K&+F-fwiKXmSLsQZUTUix z)7BM8V9^(Fczpr-a6Nt4>H_o@divmk)AlL~-49D{c?^_XQ=ovNG^?l7OZdK?QXM!Q zpI%as_^?4QDGZ}}LNCd)Md4yPAvF6Q)6SQ!I_wZJ8NIE?eg?nzvPN*6HOYkAN*8-! zUSz?7K`+VOx1DyC0F%V-{-WQs?;GKELT@Rc(8AYWa^*;B-&-2V4$-mRk`)%yx{tIF zXJ7AP;#Of0RtB-vsjNYJ4!NfQ+P)_ipA%jKVJ&u$g8E8+g=AmMLM_y&uk@NXt4h23 zNp&1?z6PB1lNyNOxt|otzpX-j2Vz|7T!k(TlIj)~%L1~m0@UZXD=SF4)n9Vu%QT?O z003<(tJ%CX$R*J`x;>AHycp-%;%#R02Q8@Lbpo)n)LMeW*6vbaxAj@FsC3mPG7PUg? zry-IHKUJQBMo8g>gG9pFEnb+#eMgi34OO$8b;$n3*E800) z6wq43VVgZ4SHvg^jo`nPQwk|AxI}s;($7Pr(vJ&DEN{dEFg~Vk28ucCl zS*$9n)0jp&Y2mXsiQde_nC{cbHv45X0>l6R7uDBv9Ny~09#&z)Q|Z#}jUrZIAy9_znW2&9%CUE?&caKmH3VPQS7H}pk* z`9as##w&omt;bFlGCZZn78WwxsmFd2GF+j@`ak>u=wv;*)Jb4RQs7u{*jZ0(FJu^_ z$GT$(l&k2mdxQ)<_1I2AhPm%`ZLBF|XxC%?M`QqfMUPGwVmeG01&5pU#0^5D7wfS% zmjXLQkM%hN>_9#CBR<_Ix7K6Z-T*d2kM*A_Y@(bVop>48Vl*QW9KL_2YwNNaih0hL!Z#(zS&xyX($pK!|nqMDJ@L2I;X) zRsvg8kKKD7*tdw^3b^4P_5gcVkF6!-a#oKm$+K%AJ@M5-5MR8~u^lYB^Ohca zS=jwaJ=WcvYP3oV2ry`{%W!quPD zV~c1kp!jOb^~7l5A!g~ZRlWrlcY-EMp4~d>i7iC%6RpQS7lvF}kG&wm5Dz`Jq!=S| zUeKb+l1DZ9g|2NT(YDKa?1=@y9->QNsp}>^@h{<|7X2S=7O<1`*g?Wm4$xx@2_dzj zhEpJt^)+TJxm1ZJK*LTl#jd(4_k$ZY%gCvu%8mFqjr1!fYV z?o#jgq?m~v5BZ1RVJ6YfbSy6tmQY!by|xHg4?T9TFo7H#1e+#$@Tsn(I>IAg)?=UJ z3wxpmr->fa6CasDT%^a!A~Kk)$2PM8J3x;;EYuP`I9>Fho_I;bDrNQ9VZvU}gUHhL z-M_jL62Q6WYmCK&%g*1tS8WP^`X8rWo!s)sNPi>KmIfd-z(xtXulbGPg1%?r{k#Fs&$bv`Kd;RV>^j6Mp*bDscqo-j4$Gt&6uMk8v3fLlxm3#a z29}exGuTnIemU0nJ!$`P=@id>LrE*7Mjq!c6=dMa2HBZ@Um>+F8~YfA_II3VVrTGa zR_#1#Ei5f-)Y1&$;J5Ji&Tq})Yu@tvX zvWRc2tdj<^M(Op|OA^B!)rK1+qqm)bS3}0VT889)IFzVf6qm2ijv0wA?F{N&l;>C&5jVQeyHTquao%H0ij`RBk)#<#Rz6O2xmAY-$(^G^I zF9lY)v6H9%*RawiuH%k?Cl+Vng0&0d6!?QwDXQoLbhmaC+jd#$ZnvxGZp#jYisSJI zDzWoE(ri$}$x&(=@zX`Ps5tuvsTDKP?>|UQS%321ByGX*mQ$Os-z3qeO;RB5_lR0; zmugY#%~G=>+hGPF-%6V(}FRmn~8=93E`DMe-BJF1JWsYtJr%&%L$z zAb!nY3SLbXYbKOC^tSjqT1qd0>EHE(y`y-+5%w>m|d_E z)72PDXM74Qs?u!-Tv~er{9o!wTl#EM$>LaI@#c#(% z{F_)(t1g~Bwls2#i#R?0qWJ6t&TXfB5t;y52yrRD>0rKOI`+UZd8(V!3s*x*9kTx@ zmF6&G^t`dDD^kUp$2i;VLc8<6$8WOC5sitrZdTibVz)wemM-e&mn;b{Vy%tY0UwbD z7v-u^!VZiIz3Ipfsa#+^<-(R{eLV8IE#CU0Q7I6={ndlmPm+7BGZn?>nI;69#7`;U zHxOh@^5ZO>aS#5PxPlY$EH_uV=BmQt{_Q4e_LEczdjO-6-(yG#Wy1;|ZFqnWLBu7W zWb!y#{*xrWC4T-VDGirYlXgPyuhZ$BQoR7bW~eSXX^4X%<%L*shk){%hOf}<&Xl~I zgc;%#*e+BCC)K=?vvbG8~q?{OUofpt$6cq^3njINl0Sf{#;=eR`IfWOv+FeK2=?b(uhX_8 zh~$2`Mvsq3ZTZ>46m?YcsebgJxF`LyaR!t?FjJ$HU_R>1J}fCHI7`?`yo(d-vTY9~ zAC(sHy&ja5%6(j5DDgng`kiWLN^Pqq6@rPuS)d%@VdPPO#n0OW!$z*V3mb{WwLjrf zCV2=0DaGwq1#=;kohg+lxd}0jn#4K{pDqY{IEVs|N#*=wFp!B)I|!F2PR`>4vN$;} zeu6Fi0QEj5c^i%_5pBTN_+oIIH)biN9>Xbv1@58_U)XcJFpz8Qe|=ZWx--~ia&v0d+2nT`kX*1hRd}1 zgw&XyyF~wQ;XWgPkuo!FZ<19D7L?cd05pKPUs;ZziySJNK=06wd(n%?_TDlk@ zQKR^X&qP&d_|kBooKZ&P>L7%5*^oK|_9@d2s&NVu8-9^moI*ENxk#2%sQKw{boP`~ z&ux8)ujRY8xLVQd-zelXqN(WL#OT(L_MVn}`NIoz@wC*U^c38XgJQPq|2J-2HnWca z_@DhyNS0*eJ_hQPB?XuF0ZoqBUeG|5n?XwGf!>jeUZ9OxQf$&iv?<0C;}dbrF#9Cl ztqCmRrD677<&}%qZOW@8Uf1C@ITM%ZIvD%Jm}7kG&E9@xB*H>1QN|r&D^znA)-X3H zW!w?S8Ak)16@3^YANxu4f7B2@+Osb7c@b7p^~l&l0_jMGA;*B zUYjk-7&k;2BkE62G~%MKgF}7%irI8DzW!80YPX{Fc%Kx+=M|x1=~CIsVaTDRHXTJu zg`EQVBDH*8MX77L^@OEYkL zq4<8BEyy@eix0qF;`d{3KS=|y(O<|FTj{aqRS!0Vb{~ zrDI=sF!dQKxj5lU#)&hchT8a0c^7AS?io={ect>G%|D1qWzjQq{vf83Sy^N_Bz55< zvuNlcDMre8pF=wiNq*tcP6%SfK?PI)%W+nZ#g;LS;`55)v!s?rJ`tx4v)`im$(i`X z`XS>Pq%$}2kq5ueS$0_R4!?r&^M7RCjT~C$P5)*7pk?+^GqmyY_BF9ju!3;2VDo>q2GhU>-8!0tQ5^ZpQN#8 zaU^3q?Kvyebe(%r^qHER7Jmbsay}-VC4=aotONA z9wTVLmkca_3HeNxO_nhTRAV@PP(^Wkxc{4dUJ5H-`&Di(RLR;oH`ZF)4fj-~+SNXy zTPzbDt(}>o3uKlE@25?WtE|&W?djL8 zbC8Sb>HeUHUamjIu;lo$2i#r`!P8fuxJmdGC_eIzq^bC>0zMD`wJ;sTpCktZT&jH) zxKLnx0uq;EFQ&EC*6P}S0xhsK|DarTmJNDpcf^)zF!E*%q6LhnAqDIx@(Iek z2~q)UZ#%Fj^07(E8I^1HaKyIqj(oI+U5QvuCOvkBD0rqGdk_Y##vT8!w{wB3s@NX? zIqZE9%@7|bpcWbxm?;z}Bp4(rC@H3<-X20|Wm;0w4ZG^WAO(>G)5g-eR92SWF5E0M zNwK`y!>;&B@`;MM@rj0}CTIV@v-dsxdJe6|^uGS)&lM`^2c5`#;Z$CpFmqUs2p7qmwE^{!+b~#!NWK)1~BYHgY)!cbZp@!jNhxY#4If%2fXQ^v0jlm|7ArQWH8C__Fs@{3g3n1KlSg5A!w zQeoc~!*RFv+FEhPex<({w2LKQj7Zs~gz{-q(JnUmeiWN`DU&^(S|i3BQ0`YcuQ7Fb zRF{cE2N>+$E;9{FD-(|%Bpy^IQg-kG+uDOl2l3Hvr46tCdRHl3MXz$jN8}&iUqH3e zK{=-_D1+{>2ekY%2Y6Q`akW4DuAgjwRwpOhZG-s31L`8cw6V8*#w+I!!^ z>uxL^*8D$}?&q1}81y?cwAJ!}1;UaNX-U32~bx}-+@ zrJ~&)<#x~P(_DVAUfjD!S;5U##9w zMSUWU?^h=C<@|#Olwr!nznk^Mr?k}v7#(Mco2eanN!URqNUY%9m2?Yd3x!oTub+Sw*;(XAA5#46W5wu0)Wyu|#&xk()`KF5An7e6qAs|~>G?lrfz zGOt;kgf*>`{NM4L*2(1N{CV`rMxBX=4lCZCBY&o{UJ+9dD7;)%5UyG#l$1Z1Ip2lu82bp zejy00f>eEkO%0dOk0{BUgqvKW_;(sGw^<=8=#k`g2{pnZ0max3NjZ523=gMX0nWVfaoLG=|l$SetAElcaB*q+7y2b>5NR61= zRUBl=u_=p!DzV=>akG`=`WWSLbE~g$Pl{4h@GgWjXHTT$z2uDT$C; zBBjP6wbq#3ev6o-DYvqFyg*a>-1>q1X(c}udh79iDqlv!}EM#b~dlc z+gPg13e>KMu;a=D9{$V4)DwK#@xgIEU5*o5j`JNeAEcjP=!FS@_lS)LV@OgXU&51OalYDi`jC2~uP+>H4YCXCrvQ)=(7mOHQ}w+wDxMWTIE?Nqr& zk+;$&akD*MDv;l%=SRE(l9O|;SIhp=&Z12lHIw9dn^{ZsMa&aUEBCe-z+^um|5Z`CnIDawKds!{+K)RcNEgS+zcWSgX{GON1G9{r27%(` z=3DC^t=$Z1;)5J3dywONp~Y z=s5-xc^5!%Qb9b|G3Q4_$#35CeeVG!$=_d$8*UT4G&{YB9CF7}QeQ(RqN7CeoZ+Lw zuTHtyZ*-a^A`g1@i~Cyjlq$4G#qc_23h`o69lOq_L`farX}m9v)hTzkdya!&67w?{ zuBk$PVbJ14&$IjrlO$5lVr&O7{VW4o%`&rX?LEt!A;*gJJE!)l%EjDCY8K1YT@E5dj2O~w9KUZ zfq}KRFrSb+v%h6F>w)Dkp&e~Ry}?-9?vNexR&fA>JbZJ+rE_e4KOlzwqLgO(j279%hg6|UF)brC)p}6t9@+QXy ztUS+XT`mrt=bK)3;4kp2-Xo&;f^uK~<8&aO*BHMeMFh;24{uDXmr&I1;VZ1P6Y|%| z?v0HO^X%I4<+5&K9P*qa?q$vtfxj|P$BU?6(ceo<{Z$zp+z}bmarulLa-Ve5BAnNT zxvsSmkI&;|c}n`Ll4Bnt(k?39Ij&&NMSd^yoF-OWRJu+&_S_ZDL}7Nuq4r!WJ(gMX z)nWU4cuiIhRZWNOl?I>f4tB$g)FBMp+T!M^qNKYyX6cd=;G6*Smo~GwtlH?FtaRsD zL}`i5)5Xc!%N~axxSaD9oYzHe?i57Km}NLGQSPK=nCuwI?rO3hG1>hkd$h^^aX#z> z*iMr7H~B*)zYlzK-7Alg8<~*z8}}di$m^gS+Pn;z^E$ahqj@hi!kP?w7~#JpXtnQ4 zBBz#B8-aC3v)IXUiBz&nf2ejd5vwN5W9r19%Sw>%KQiQVxGE?MA-My|p0e-z!g*N< z=<{yj73&PGf{4@t*&dE*PG+p;qP8F+(V|U;X6#E#ft$qE%lwW#M*MtPxy9#I?9Lw* z6wOAsJSeP#@c&Ke8@6mAc2UoAo|6`-#h5}Vme6{#m0Y6voKBza;DxN&zbSscBdug@ zK1-J;k0oYr_TrMVkAG7-wym0Gs`KZWCXam2P!rNJxjX!V_K>O2ZTLPh;))V~dkZTY%hFtu%l0alww#%G zCO+@Wq`ZG=&x-OZO6TGKqzzGacd-UtU${5qxHg~ll_nmc5R(yNRg-A(dqiIso)7lTuHZgOU zI7mJ|MNO&gI9EjJ-1c#cYUO^cz{uVE-B+&V-l9Of;8KE|Bcw$XKOuo0I+oHIQzUKP zd^w-IutClTwEgK#TF0ZwcCsfEMhQqy_{}pym*`1-o9e-Q8mo@;|Rm832FQY&+w`J z*%XboM1PeEX{7uz=7N;>opuyTo6opEfT*@a+Ltzi8?ExggS2~^X0uMFMQ9}b2ZR30 zlbN|lVUDg04@xSC+4!iidD3`JKRsr4`wP`QQ! zS0a2p2TrpTN(b(qLu+IpF_pGaJOe>|uyZ7RLRotG4I8e+5Pr%r3PG?nAPT!$LSDO(>o)Z0TlBUn3DzGP<3 zb?MjEOfns1SrH}m{>93kBVs+(_FZ$EinNp>#>+Zn%?nvlWNcHBpIF1LpJ{2CFH)sQ za8r>Fr3j;~QBHQ8q{zi5o7gg4iZBuzB0a@MPqnj8g(>20MJ#_j)myqX$ThQ7t*Puj zCZrkHxA01iTnz?t`9Ww4HELwGQ5V1K1Ix3?M|ObHm*bH!JH64eobH-PxJvFXm2khk ztZ2S+EpMUv`)q!qNmV9@qb<}s+RkrEy)j30^HKxardnjHWgX5oJMFim-BuYqvc(K9 z)z3Lrmg{PNM6Tx3QS_40yO^DJ&Erj+Hc=KP-71Wqkv{vPjLOk8iP6+7oQvG72lHK1 zL5kG^f>2=f=N)Ou7qlEJ1Iu2AX|Hpml(X!;6@zN;VxKsP*Px=q(0oA)Yiid&q|F5! zBwriK6jYm*C_5JGfL?m7wBK0zKA4#IW8CP(yz_CR;^cX&1$T~uJTfVy!8nw2_#krJ z*q~(G9JaSj*>^3~KAs}W*U_%b!$*B_wDZWC2EG5<23_LjFme4gn)kYEVJY_&aO(30 zy#kmCG*A0~8F&6+LYest%K#q?3~FS6j7vx+V+k>q0maZhAk7=)4SFD93DS@y{2bH* z_`Oliro>OlWIiXpZsDNSKZ4cpRwJ`W;zrPgV=L>4FaO$1D|u4KC@X$leNId0x=eT~ ziC2G%QecyXW%$1Z&VQ$1Kli@xWy$Sq)W&H%dn(D0xh{R1W2 z(V$-emH}!dKizTTT{x$B=WIuKD{kD?pw|H5@MPSL<9RP>6EF&%J6#UpW#axP)g#Vj z`y2GgJq>#0z6L#IFHHtqLOhVL7dRQ54)y_@oTQv|05zPQypweC2OIPZ;`@Lugu{Uj zgipeIf}@~qhiO(d4SF!gK34&m#5JH2J$}R^4>vgVDk8fO-UrMFmH{=uDquB`1C(2M z3)r7S(`|r8xDN0lEU}M8lXMAz#A|_iU<;rg!#E%a2$uk@{Ab#>4D18$1#*F4AOXm< z@RJrz(j|-qmZ4xdunJfWlmlCUeLx0~W8wMWHQdBlR@(9GC&D2I?j4SBydadXNh}m^(6`1ge1CvkiLjc|7$C z^7UZif#;~wObAtgOt1uqzd)&gAV7u}0W*LJz-knXvT!)~%S#RVVPHQ{1#Abl0AB;| z0wosy6zss*85gNq((NQ1O&ILdmsv!~kdQ+>?Kc_;xDdz!Du5E87+6E%Y75taM{z06 z6(Aar;Tm8Iuo~zBEVpnxc!`HgUjtOz&2XiM)1{|F7zPXUsEcwm`@ zAGT>@y$L~V6}zsF8kY`)%Kpw!-HIUtHJ!#46Gph zzlBlg*#IP?tEv%};foe%Uu&^iMOugcn(v zWPp=^4j8xyemVR`c{%kA2sN1&WV!TxD9o8n>3A3K*iuTo!le&bKtJ_&Iy|mtIr=uG z&Z95+hf6=mvNQBO((=Pa-A68c!a|pR<}H`LE0@f+xb!)n;<=5af77KO`5M}XE`9bo z+F6lHU-~VLzLffpTJO@cg-bvFl}q3Gu1kMq4KAMN(trJqUt2$M>5DhG^nP!+^g;i` zweKUhmX4~xrQiDvC0pgv_m|V@y-K<-UHZ^smwuST*1yB;627jYGyEK5x4QI8@OtlZ z>6b}UkFIBU#q}rWk1k!TcIoeZPiACNu-&EK^8prDxb)LxvYQK73d<q^!zXALGj8|42Z_yga2~rZ~m1>lJsw_ z#HdX!y&Xn7UqV4YN|{J$3tmSM1qX2HF}$*HzDv)-fN)B59|kO5=F(^EaOpo&CDpj~ zPlb4l5@naT^rFqU{WZdsbXs_^H(uF8HO(f&I6M$Tb-aTIa?$@T9(WTEbXvsoe=7=O z@jyKFu@DdR!Bt0a^GVz;@W2lEQFx#j1K+>{d&uAf^>`F_k1s+VkL8xqUNB&faOtmO z=pA?<91k3vM_WPuC{=n6{e$qp2@DyG2jcL+x`j>>8(`&e}4;~msRm{Z$g?OMJ z9=Hd^`)Npdl(;`0sGzan7Rjw*#5)xb$woRv;S>%>SCc0)7wD z)nmY3s`e07+#8*foUgj{SEsmGHT&>zo4 z;Gu<|xb#wt=!+*}@JK$@)DsWP!Syq#f;|`(h6i5ZiOHpHEP2bN-?-4FKeE`Rdjf?# zUCx4hl)ggU0++pY1L`dNvxVJs-!>-S9dC|r_&5CK^2D82GnGs`3Os#GxMGFRHKIvg zH;eCq|Z_D30Zz{qgR(3+0azaQVhd=seak=;!!!~g$)`gdoR z{J$`u@)ljM1CoQNlG{w3wqRY)1^Nusbz47Oe==0pLx7at(80-1=z47IBpO@V@1b}C z`#jJmPSo|k5MJ|?DU2Gei2;w25XkV(ErN%Ho;~q1}A|--(!gh4*ZD4RHDsRv69sw zxTK7Q)ez$ASXB;1&jwbJLwV1%`YRMeNN2aA5?l?g0f&A~M&J~1ha?nkZqQ@Fh2TuE z?HkrT;B>GCj{Uwt?|DBN{EKBKI7KePc@sUIMfZGgHEZcAaHw2#^IlgaIC?l6ouRBl zb0DN>ETF&@;4R=-)}VpOSPl*cSAY}1)!>K0b>MVxD9h6va0++{I19WATnw%NSAutf z>%bb=hvn%Na0=MRIf4WPg20vFNN^oE2^`A$HU(S)&Hz_~bHO&&xW(Wsa3wg9HLUFc zGGyJF4o+vuS`MzWGrJl|K|GiYfo&=iByb_PM8+L-c1+pE;JNn9N5PdH8EwHS zeysY&l3y2w@k|26H?j7Vgg^`#hv03@55Tdvqxes_tS2)ja7q|UO>hag1YCDF2FiFi zbH|4;C;|h(6@3__z_v)%yWr4!7|0$5$1vvvXMwB0B{2-+^^!4wb?ze=GLVT1ICd}- z6>vo&^F)5yDIUT+5*(O>XTX)<8gSMF%ooPPAA@Vb6@PN+mEe?zp{HQbWawbqCG@Al zzf1wZl?~_z2Rd)m^`OUKFo-<~4sEOJ%faaZ^b6p?c<5`zV$d_B1KXzRdJZ^wmabPkPCj6-C!q7!0Vu0~O$M={A~;Eh&nEh`361fjvuXt5gT@ey;B}^#l6^@x?av7G9(|B!9e%7U#FA z{p^(@Y`dE6(R!r#Y`gjvA7_u=q4wrAmX~*^OA+n1Q=Q7YlSMn#q4o}C`z7M?g^(Z7 znj@Z;h~u6?F{!gi~jd8y<6 z-Rd3oDlvVx+LxE7N+sgda6Ta`M%v-PY7eVQVMy{mQ+bE?$aNc*=c zbt~`P%=}3m?AS*)nkq^UtL??UpH!|Rc$Jq~)nUH2#SQvvXp(>NK-K`8ZN7MZk2;v| z(7)KD-p!R3XZPTolftoA9U0p&|nsHKD2Z(d#~C)W=1pCYFL@j z`ZW^&2HJ9H-5b&NL8}nkP~qGHt8*ik%AimMEwmBM4_ZC6u8n9tq1l!;=3G}3D6qn@g%fS&=@DYuL{n9SjgMC6l)p0#zj~T>l{_v8 zE8hYwS!~>=cH+g_pZ3wLR*07SL4G1?Kg}vwe7Ij7>ba^IRo8X#I6Qo}g?De91Vudm5HD`UkXu15Xd zUN3Gus@~y<{DI+(dktxk$w$?2NBK7VEsEBdaff*GbG4ONc~lMYE&q`RgiPgMG*Hjz zc~R6J#jcB0?Asa)`dDxRL9*2PA8#>mM2gbB%VG2aTG5?syncv=p;Qx z7qLqsP57Sz)r&_YN)~UQLUoSVe@Y$d$YcfizPR(W8XKPJ?X7tX@#c;p?~6c|GSa)+ zLz&#M8Fe^R>62BAbS2{L)96|*_Dh8AXRx74Op<7gSbGK!&97$>rilJ4=|DQx(ShWM zm^us&6>rz!jf}D{>PSj~FP){NC1r8v)Us9{7h9HHzM{GUjX+n&1r^TO?vC5-ZI87w zy?R!$**th6l0`_6qqn`HY+R6Iv+7~HNpuf!^uoO(LLi5V*&&Wj{>c#@MyjP&f7pwb zE)&x_VcS#0w;_(f_BzqFhhqb2w)KEmB5Hd;Ocr5xpr}%$N>p4{bcdsb-9M0vY~`Q3 zk(6SUR9G!adpZXD`)oAXI}9OSXT8B>lf#{;4izDHqAW#>1Novj z*uyA0E(jw{Y*}KM!)XtwYpEJ}S!J{pU{X7zZSRP~cR6}_*cO$wyW7#nPP)W!3Q{PF z!X4xB;Ms5*L5e7i00oL?`+(|1SYO8rIOfB?hU8gd{*`ZU|W(E~vb|i{? z#Gy!|2$zWYhh8>qzu$7qSM=M`8ZwA7gttW*xfb0+NkYZOdmJy^<&$h?;2ys zrKO)@j!qtox=;0YJPPyM{-h5r8+WhcW;?!_9xI#4^JZ=V zmNmfyWXY<<##qN0q)Ow+t+MRfI366b+jbw(lCs+S9K-F@Y*f7C0~~uO9%`t#6i@Df zB4nUrx4$jZRO}u>lWsB{ySj-wq~ig}5{rg<0b51fu}< zL@Z7(D@v44ZTf?z#%Y#gzU*ddEEJ_fNE<2+4Z(`SvP(l8!cLb`lq7Ae7KiSqy7{WY zC}E71cv6s=*hf4&jI2`1whfbBNf&2_J30kaEHtxPYI&vbR#VzGRCG_Ke@YP}k{!FT zGh_sbeMH^}!~5GtU_hOymBb2>_<-S!=?_qbLeX-hV}pP7eWu=?%zEzz|%1-JAO(^4HVQe~|WsHA1HQkcFt53LCo#wdL wBQ#2!PjfthZo|%~@X)KFyQ0b#OmKt*a#`Wp97pd~7pinclude; if (include->kind == Ast_Kind_Load_File) { - char* filename = lookup_included_file(include->name); + char* filename = lookup_included_file(include->name, NULL); char* formatted_name = bh_strdup(global_heap_allocator, filename); process_source_file(formatted_name, include->token->pos); diff --git a/src/onyxchecker.c b/src/onyxchecker.c index 404e2a77..6cab4d82 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -62,7 +62,9 @@ static inline void fill_in_array_count(AstType* type_node) { if (type_node->kind == Ast_Kind_Array_Type) { if (((AstArrayType *) type_node)->count_expr) { + // CLEANUP: The return value is not checked on this call. check_expression(&((AstArrayType *) type_node)->count_expr); + resolve_expression_type(((AstArrayType *) type_node)->count_expr); } } @@ -76,7 +78,9 @@ static inline void fill_in_poly_call_args(AstType* type_node) { bh_arr_each(AstNode *, param, pctype->params) { if (!node_is_type(*param)) { + // CLEANUP: The return value is not checked on this call. check_expression((AstTyped **) param); + resolve_expression_type((AstTyped *) *param); fill_in_type((AstTyped *) *param); } diff --git a/src/onyxwasm.c b/src/onyxwasm.c index 143d0e19..c0cf3758 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -338,6 +338,8 @@ EMIT_FUNC_NO_ARGS(leave_structured_block) { EMIT_FUNC(structured_jump, AstJump* jump) { bh_arr(WasmInstruction) code = *pcode; + // :CLEANUP These numbers should become constants because they are shared with + // enter_structured_block's definitions. static const u8 wants[Jump_Type_Count] = { 1, 2, 3 }; u64 labelidx = 0; @@ -359,7 +361,9 @@ EMIT_FUNC(structured_jump, AstJump* jump) { if (bh_arr_length(mod->deferred_stmts) != 0) { i32 i = bh_arr_length(mod->deferred_stmts) - 1; - while (i >= 0 && mod->deferred_stmts[i].depth >= labelidx) { + i32 d = bh_arr_length(mod->structured_jump_target) - (labelidx + 1); + + while (i >= 0 && mod->deferred_stmts[i].depth > d) { emit_deferred_stmt(mod, &code, mod->deferred_stmts[i]); i--; } diff --git a/tests/bugs/fallthrough_defer_interaction b/tests/bugs/fallthrough_defer_interaction new file mode 100644 index 00000000..8823e0dc --- /dev/null +++ b/tests/bugs/fallthrough_defer_interaction @@ -0,0 +1,12 @@ +1234 +World +1234 +World +1234 +World +1234 +World +1234 +World +Closing the iterator +Default case diff --git a/tests/bugs/fallthrough_defer_interaction.onyx b/tests/bugs/fallthrough_defer_interaction.onyx new file mode 100644 index 00000000..f57c9a78 --- /dev/null +++ b/tests/bugs/fallthrough_defer_interaction.onyx @@ -0,0 +1,44 @@ +#load "core/std" + +use package core + +custom_iterator :: () -> Iterator(i32) { + + next :: (data: rawptr) -> (i32, bool) { + return 1234, true; + } + + close :: (data: rawptr) { + println("Closing the iterator"); + } + + return .{ + data = null, + next = next, + close = close, + }; +} + +main :: (args: [] cstr) { + + switch 10 { + case 5 do println("Never"); + + case 10 { + count := 5; + for i: custom_iterator() { + println(i); + defer println("World"); + + count -= 1; + + // :FIXEDBUG This was were it was breaking; the iterator close didn't run here. + if count == 0 do fallthrough; + } + } + + case #default { + println("Default case"); + } + } +} \ No newline at end of file -- 2.25.1