From 95019e30b3d89a2310930d625e4d29facab98b96 Mon Sep 17 00:00:00 2001 From: Feist Josselin Date: Wed, 1 Dec 2021 18:28:22 +0100 Subject: [PATCH] Improve YUL parsing (#987) * Improve YUL parsing - Add support for YUL top level function (fix 899) - Add function_language in the function definition, to determine if the function is written in YUL or Solidity. This is now used when the function of the contract are propagated in the inheritance (fix 969) --- slither/core/declarations/contract.py | 10 +++--- slither/core/declarations/function.py | 9 +++++ slither/solc_parsing/yul/parse_yul.py | 31 ++++++++++++++---- .../ast-parsing/compile/yul-0.8.0-compact.zip | Bin 4696 -> 5472 bytes .../ast-parsing/compile/yul-0.8.1-compact.zip | Bin 4805 -> 5592 bytes .../compile/yul-0.8.10-compact.zip | Bin 4958 -> 5751 bytes .../ast-parsing/compile/yul-0.8.2-compact.zip | Bin 4879 -> 5687 bytes .../ast-parsing/compile/yul-0.8.3-compact.zip | Bin 4879 -> 5679 bytes .../ast-parsing/compile/yul-0.8.4-compact.zip | Bin 4929 -> 5755 bytes .../ast-parsing/compile/yul-0.8.5-compact.zip | Bin 4993 -> 5782 bytes .../ast-parsing/compile/yul-0.8.6-compact.zip | Bin 4992 -> 5797 bytes .../ast-parsing/compile/yul-0.8.7-compact.zip | Bin 4998 -> 5785 bytes .../ast-parsing/compile/yul-0.8.8-compact.zip | Bin 4961 -> 5740 bytes .../ast-parsing/compile/yul-0.8.9-compact.zip | Bin 4967 -> 5757 bytes tests/ast-parsing/yul-0.8.0.sol | 17 ++++++++++ 15 files changed, 56 insertions(+), 11 deletions(-) diff --git a/slither/core/declarations/contract.py b/slither/core/declarations/contract.py index 4fc274dea..73c7fbfc5 100644 --- a/slither/core/declarations/contract.py +++ b/slither/core/declarations/contract.py @@ -11,7 +11,7 @@ from slither.core.cfg.scope import Scope from slither.core.solidity_types.type import Type from slither.core.source_mapping.source_mapping import SourceMapping -from slither.core.declarations.function import Function, FunctionType +from slither.core.declarations.function import Function, FunctionType, FunctionLanguage from slither.utils.erc import ( ERC20_signatures, ERC165_signatures, @@ -540,7 +540,7 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods def available_elements_from_inheritances( self, elements: Dict[str, "Function"], - getter_available: Callable[["Contract"], List["Function"]], + getter_available: Callable[["Contract"], List["FunctionContract"]], ) -> Dict[str, "Function"]: """ @@ -551,14 +551,16 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods # keep track of the contracts visited # to prevent an ovveride due to multiple inheritance of the same contract # A is B, C, D is C, --> the second C was already seen - inherited_elements: Dict[str, "Function"] = {} + inherited_elements: Dict[str, "FunctionContract"] = {} accessible_elements = {} contracts_visited = [] for father in self.inheritance_reverse: - functions: Dict[str, "Function"] = { + functions: Dict[str, "FunctionContract"] = { v.full_name: v for v in getter_available(father) if v.contract not in contracts_visited + and v.function_language + != FunctionLanguage.Yul # Yul functions are not propagated in the inheritance } contracts_visited.append(father) inherited_elements.update(functions) diff --git a/slither/core/declarations/function.py b/slither/core/declarations/function.py index feb97ac91..60ce01290 100644 --- a/slither/core/declarations/function.py +++ b/slither/core/declarations/function.py @@ -104,6 +104,12 @@ def _filter_state_variables_written(expressions: List["Expression"]): return ret +class FunctionLanguage(Enum): + Solidity = 0 + Yul = 1 + Vyper = 2 + + class Function(SourceMapping, metaclass=ABCMeta): # pylint: disable=too-many-public-methods """ Function class @@ -207,6 +213,9 @@ class Function(SourceMapping, metaclass=ABCMeta): # pylint: disable=too-many-pu self.compilation_unit: "SlitherCompilationUnit" = compilation_unit + # Assume we are analyzing Solidty by default + self.function_language: FunctionLanguage = FunctionLanguage.Solidity + ################################################################################### ################################################################################### # region General properties diff --git a/slither/solc_parsing/yul/parse_yul.py b/slither/solc_parsing/yul/parse_yul.py index 624e666d3..783f03761 100644 --- a/slither/solc_parsing/yul/parse_yul.py +++ b/slither/solc_parsing/yul/parse_yul.py @@ -10,7 +10,9 @@ from slither.core.declarations import ( SolidityFunction, Contract, ) +from slither.core.declarations.function import FunctionLanguage from slither.core.declarations.function_contract import FunctionContract +from slither.core.declarations.function_top_level import FunctionTopLevel from slither.core.expressions import ( Literal, AssignmentOperation, @@ -353,7 +355,13 @@ def convert_yul_block( def convert_yul_function_definition( root: YulScope, parent: YulNode, ast: Dict, node_scope: Union[Function, Scope] ) -> YulNode: - func = FunctionContract(root.compilation_unit) + top_node_scope = node_scope + while not isinstance(top_node_scope, Function): + top_node_scope = top_node_scope.father + + assert isinstance(top_node_scope, (FunctionTopLevel, FunctionContract)) + func = type(top_node_scope)(root.compilation_unit) + func.function_language = FunctionLanguage.Yul yul_function = YulFunction(func, root, ast, node_scope) root.contract.add_function(func) @@ -707,6 +715,15 @@ def parse_yul_function_call(root: YulScope, node: YulNode, ast: Dict) -> Optiona raise SlitherException(f"unexpected function call target type {str(type(ident.value))}") +def _check_for_state_variable_name(root: YulScope, potential_name: str) -> Optional[Identifier]: + root_function = root.function + if isinstance(root_function, FunctionContract): + var = root_function.contract.get_state_variable_from_name(potential_name) + if var: + return Identifier(var) + return None + + def parse_yul_identifier(root: YulScope, _node: YulNode, ast: Dict) -> Optional[Expression]: name = ast["name"] @@ -739,17 +756,17 @@ def parse_yul_identifier(root: YulScope, _node: YulNode, ast: Dict) -> Optional[ # check for magic suffixes if name.endswith("_slot") or name.endswith(".slot"): potential_name = name[:-5] - var = root.function.contract.get_state_variable_from_name(potential_name) - if var: - return Identifier(var) + variable_found = _check_for_state_variable_name(root, potential_name) + if variable_found: + return variable_found var = root.function.get_local_variable_from_name(potential_name) if var and var.is_storage: return Identifier(var) if name.endswith("_offset") or name.endswith(".offset"): potential_name = name[:-7] - var = root.function.contract.get_state_variable_from_name(potential_name) - if var: - return Identifier(var) + variable_found = _check_for_state_variable_name(root, potential_name) + if variable_found: + return variable_found raise SlitherException(f"unresolved reference to identifier {name}") diff --git a/tests/ast-parsing/compile/yul-0.8.0-compact.zip b/tests/ast-parsing/compile/yul-0.8.0-compact.zip index 09eb4702cf086f1dcec5d83259d159fda174e975..9f9a054ae0033656c088c57272c5dc78b50a6af4 100644 GIT binary patch delta 5254 zcmV;16nX2|B;YC=P)h>@KL7#%4ggMtfl~{>RX@BG003iy001GA9ug#xKdXOjF-n%M z^;gcd=G-X8qk_rr?8z#60CBil7S4fy^-uRdzoWO@JKBq+sD_wj%4oRkC87rkucxxx z1Eyp+VZ$_Np&W|W&{mL^l2@rKve-x@r;Y_q$H*EwGoA}nnB0mu&MX8U!W=2IH>F13 zlvYfMo#)|?rx9aIeua3QLHK`^TyExj0#K1-qYHoo_xO zOBpwWv;GzQ6qGQi)WyT;^Z}+=kuDhT0j+y;>EkC2&!P+}2k$5hb4bG!*H!Oy3KzhPWg>`LdepF zZ6(D^p}ch}Fj~Zu7N0?4@3SOm?}>KO?}UnY311cIk8;c!WHQ^@BU4hiS%lc>K(SO$ z6}ckmQCFsx!yQ(}Sw5Sx)Y?U~+kuh+AM`vcQg+x zk=iq)%Gg?h$`sdu@YSsurcQ(w9Dd8XTalHjEaX8P5t3l69Jq!!ShDbDhFhY`MS z6Mw&3)xUn$`Euyo3J1`Y5OJ`4+91AbtA4>~_d2_aX+kx04x4}d4<8{fCE8|T29=## zs*DaQ2Jbr~I_YYwuU4BJfLk z{ED*b0;M#VK}d(mptlz7%~&&8OE5lS~4Aj_HtY7v|dwNm~H_#7jc2PS_@M$@(6JSDW=o4|HFiPR`8WFH2o#8Y#J= z?s5fuyX_zkQc_8xRmM?nT@?)b6WL$GW09DL{ZfA$Y-)8oXIdj(g#ZXs^y!9U;GAj_RUbV z$N|0>g|Sr&+T+jf|U^HyW)YPNuVHLC211fQpmovEUK`SY|4l*;;Gi z7_I4s8<(I(WfIG6GeivpW*sc!&@6vu9#B2GJP~VLNG7N+@Ad8;^5=CdQ?q=W+iH8U}s8U|vD^am-I{! zkP>E@b4qc8|g<3=F6@KYbK86hI9}6@v}e8d^~F%ZxQ{ve@q` zJqdB9fZC5{l0bSEw>a+pW=&e>OFxwa8=482m~I_(32 zq`yTjW>5qtIAS2nzCD7!iT^$UV+3E-o|WeJ@dAIg=b}!{Q8s)%_qco+#1lJVzFg0QKi7!ml}XfshPb1?0<|Id{Dlz}0%FBk7^F5? zG(DIT#oRzdg5^$)avNis@aU_E7Ao@v{s74tw>~IELFynK)ct?KA+Wc(eQC6Ogt64I zxJKy=SX*O7)}g`ymp;>xFTZTA*fekThPRBHM>U+Q)+iVA11ul^Qn-dGZz~3lZZkS4 zN%>YeHk+aBkHajijT^L5YJ`d0mzHQAYU`iEAdd*7;A=Rzi^gelKwZqfMI|DaM%=Jp z@_KBb3L9y)%yxfK!co6>^KZ&|4_MsyHeb;bYwmbLDQYO(&$Ni)#LmW)Z-8UH31}&; zf2+E(J0(Q7D&$3N{Jc+^)}2BT&2A8(f!}*G;0Zq`pybD1J3(In-7d98G_n+;k6sqz z4Ed6@bOqQ~Nf@Se;S5wd2&c8yhpC>#w7x+S{lZMmmqCAv!vc}#9W|@_`)E)o1RS}J zUt}Y$Z=XD9=o!`uXE6Mhf?3}=?Mx!K$E%RfO5?G%i5Sf@nA2{qf?@OhhH>+UV0}0l ze~=`ZWh=VtXoXY=`v6&KIhx4l+`tjBk_^B#7}K5bLN#DqkQA!$=$ihkb72kfMy1=` zn7S~lu+e`_VrJcO6xFF+6M_M%HV3z6CkPJn`IPPRgP2yx8!Ilt`Re{BxpLl$N87>> z!F;T>Fh;VrRT{g#r}{ORHE~1lSY=N?X2wwa2Lb?9yLBUU996pQ4tN}oHP;fHiNS-J z7!BAA{;WyIkS052WPULK`-<-O;_U9Gxzh-%t-gN{na(IUZB;s^7hE7zMeaLC+O#X( zU&I5dds8lGItInq*=YqHkbcr!hp~4Tn4=b|9P?oG#c|l%Vzfy$(GzeP#`+i4y!i6q z(C+W$f@Kmz;Uh2>535FglCE7KPKQ8aBS5}A0+k=VxB_SYXx4)f^`y03X`zoqIzmgT zZis*EF~H-H<^UG)T7HQnkjLB^c*O~r$3F`uJtw!7@?O3<%y|;Fp)XrJk^ORa+)$-b3^ zd5DpRs)HH?fZxiSzdBA*5jYmbn-K{ca|_$x$ubpa9okTFnMj6j-QLm;I6OX|Uddkh ztQDw8Vqhw~%ifSX0Yf^e?~rsbiZLmZ@qr=WAGXp6MkDhcC#$jn`(8%^2TIQ!_~(Dq zd!5xf(Ee2+C>lxqOKiyv(Fz~vrO*We*0wm;mQ`U$pvq@y92pQ{o?D@p0k;mIpliCNfQHv*IF~6H?nLp3F zzDl>3t(=&^Xq)YK7q8Y?3cO-z21tJkX9Vy_ZWWjD_XE-sOfV)71!Z$OGoM6R`Echh zf)SUov=iN7t2`I^-vjr>$PQ^6ZyFOsRNg3`vOkZ+N-%IL1+t0y_LLB#r?d%R{EU#T z3`EQnuPN06F0nOaWz-rU9K23dB(J`^h7^3E$+zl6U&p7?E|mkd*Gn^{s@Z?+!_x5h z%K)X5hdJLId1sOoY2to`oUVDLA8$M>Qud1C#9qtnR$`f8RzIo^rmheX3b-|#-!cT`Xh-4+A% zMm}iJ=nXwovYcD@8OWx(SUQX0w^?ySoJH;Ljp?cWt%vGSb6-_5FCV1FjUiI*`M)%x zqSTYx%8dPbE{6MqwjGOuHHl(RPT-{)gPX&6R06AhYQBhOh|k};$J2k7JJev7oh;Gr zSL+IF!#{wSAWt|9eq3x{PZV{=%5(%nV3ileXYh~WN50UzKI;)V_O@ZMnHL(~?vwJ#?#1o!W|34ceYiu-P4FAlp`86V-Rb zXK{`F2T6x(qKOI6VatCQT;{}C@s_H zz}qy0{JBf^9ajnht9j!z0J@!gMU)uwzA~}mp%9;KXGPX|z)(1H8}us7_{YC`VO z=OdHUe2B=1MM$Th^RN8Sd9f~6#S48MriM0|(wUCE49 z577U?5;$d>;3eTL9LOEzJSpU?&-K$cl7MU(h8?wXk?J%}EvhdfCFBY!ReI726*^!7 zQ;LTa^d*w>{5J=U9x|yUnR%VJRHy^pv$q)i+r^ih+J*|D!rifS<}1&8^fDTuOicRu zhwHe$7zKZ;^++~)k3!xWrxa%_HOQNcYl2Rec_`~BKYUpR+|oc5y)>0Cia&xQb1gKq zJm0|EFuMF>Y1AXeJ38q^McWt*JN39D#2ZC+S zF~BX~9qW;j83TkS)E8SnN9oB~N=A-?qAZe$Y8uwDxZ}N&)52&9#6|T|7#MX1G8b8~ zG7uwuF&;UgS_6^zSMaRJ^|oUC?_{T35?g<7bxh3-{!i_5JE#Nq#HrSxQUyFLK335f z^nsQ}E=2)5nrX^JmcoP1o+5UXTIs1Ksro3PCFB_$mPe)L-yP#It0&L}1QQQ^fF`s9 z$S0)ybclRE#&WR9ohIx8BpBRZG0ykCYXw^u>Ty+;5)ybUr-+yzPIYe$9N$xlJ7s^@ zAG6gWfp*AL;_((&+SMxcm4gfDM>>{-L7DR> z4uj8q10y++mJvv|WnO$y%Sxp`j81=zQr(GY&Fzv+eKRF4q%K+d5RIB_vb~~8P4&*U z8sfYbe&ywuxr-C`*cM>Tyw6>uXui49iHijXKEveF!o`p>_G3b$orMG^v9sk(k;@d*NP%-&i5soQ!|jo(LTD z%cj4sMgHQw2Z?Il!+M?#A!1N>xgWH$lN+E>cQh0oT0*BCkKEBdpdh7hp!6Gzgw?(h zs5;uuF^0Cu>eMSDg%O}Vo?2RvDoRE;iK6Ai;;L5v+kgMK1-6PZM=FfrgiHrRsb^Ph zmvtY$St^kOp|_L%<1V1=k5y9|Qb|@z9>WsRO`a#n%Tt>$9H^qU!kk%Ads{}obHXG- zsV{z5>nEnr#yU2xD#{km-n>ef{pz7gP)h*@KL7#%4ghp>ep6Lp+}E@b004bzkr>i{W$w3#?(mW~4duXc zz=naZyF5`5tHm#aNh5V;BpuV$&OBb02<@AUO+b}*_5Q7%+ir;F;!j{Q?XS;_9?(vu z|MiVh128M*!O}iaP9TVa9a)d6nBJ6dIkCjn>dOD2`U9p+d#sH_*!yT9x^h(f0M_ySvSN>*NqLki!1Or+OscY3J zz-6A@YS4Mnn_);cLr#3CRwXT ztkKhm{?Fr3D-ef~rr7J%;@U_G`ByiOp6Ixsod+UFkfKe0F$DP_oG+*^0hLj9n9$Iv z@r3N7s?jRczg92S;$9O+-i~1`22DXsDU)n<7#jYa7PM2nCYvs5)F{_%^KO*v(`(e} zh?7^^#qPxPG>X+Hq>ss8%jaxV5mAu*GDvLeK7N^SEM5Xuu`MH`TYWMo72TiT?Y0Tl z$rr4fnOHx6&%KmPN~x5tGYESmf_)*-JGhE5ar1CSlXOJeE`_4Nh?f;yCcG)%dBU6k zE?%}x&6?&IT-MBW#1b^Hx-$GKALzqUbneVMGBofhb2)P zG4gpNpU^ye!$BTjX{m-pKZK>uk?HY0A5KcV(aw~Aj#Kzi+K|Q|1s5VKVybe7(B|UH zl&TgXvgD*M|JHr0AiA9*A52^Zw*vAStY(5Dt^cInU4a`w^4k;uyAN|6XdraW@=aDnDb-D%ZcEB>-=7)5QZ6Ok&vA0 z&+nSY_q+xTOj1D1i)+MYSEzz$O(PjZ@Rf<)JFuk|L!?*fT8kcq zg7Xdyf2VTNpF!Jl&kn4hrf`l2R!F{NcYwoxL(vCgGp}kILv+27wXBfFYYaA&k&h2X zsL<-3Anh*aGMA03wC=S?emYn`uu$^_waFAfxIY&xFz?{CNLalkRM5KmB`*;8H*?4U z1(=!WBf|)d6VNvwhWbxx&JeO^N68SLY{1pn`+LQFFD2Ti&y=U(JKgRRvE$TC@X$r53|&|<1V7p?7ou~nVSe?*a{5^+N>g>vEu=hTD09ey=`6GJsf z=&R?K?h>3B`^I?ec+g2qn~Lk-BJEL>yRY9QTK(G_rbyWGprr<>9h!h22&>b|o>}a& z3d@$Fea93#6DM8*B3<-u=~0yFBf1s#BcWvzuLAjM%=+a}x7;(uH$>4B2;P%_^Z6}! z8D;xq2((gltcMm$djOx@5c+X*E~%CB_$m;Ie+76h3&x8mKF~Xa>7DoSQb$wxt@J|< zR9_er0Hyu)+wkokmG6O&xB7AZ&bHM&uF6I;Xz-tY)IJ+dr;mYd=Sm?${OdSRAX(8F z#I@&3Vu*8VH1vq3q`=b~g^$F4o`+{db#CbboWnB6BrAE&V>_$NM_adDbGe&pz1Xh2 zDIL&H+gx8+Ho$XP_6U-@gNBtCL~#Ro^Unx4R`EX*TUk1kkldE>Vu3+T3Pwec>c>q_vx^BxtsWUWNLwtW1kF>kkZ#xS7PEf-a@Po$J7@~Rw zZr7sYqVWj!a!cS&rYyAv#O@Ofb6rkxq0Ko!S6`tGd8 zLeyAb(5TEU)rJAyF_?*ev$sQtAPtY-wkM?4NH&3i%8tH}%548Cee04^m?$fub8$_l5ARE>cy<`q+ak|uk2|9Y&A@sz#yL}1u?U9C;9#=dd>s|5 zN{_X0ILp;^cqvBHP2gx7!poCg{~Zg6vwK8Y5&>_Bs$K2Wnd>UJxmQAqRs-~ZOPeLg zU+sx+=jiZQyplQZ)wUsD^5EYA5!hL9mNw6O5{Oy43c|(^S?cNU8Y5nlpQe;uF|9JE!uUMTvl&?y|$>~``jTO#QSiuxxlF61dA#D@_zZ<%to z$OnU+Da&_+5WisKf(5D!dZj=b!bB(tew9Z;De0?V1kTKVlhKZVnQPz~@2>zJ=AsEB zt(w|N#aD|b@W>Q@vVfp$WtLx@6VCOs)|dg0M+_+wwz=SdL%~Vs=8{a)FA>A-AM>Kg zTC08+5=BPT{)dK(A4xcGHlFvIu4af2yCD4q+JGLf@u zL$iUXPEu1kgtFm*u? zB#*Grq>3816dt2*pWU8%BR9ID-$){~hwuO)EYC9!sG!^XXoL<}jMd9L%zJ-FKaePY zQX5l$Gfs8ka388_7I&H*1*WUPo6AKvH z?HD=wz#RhziobZQrF8z6RS-D*wC1WyAlcd+aVXnV_=D&i+sh>uQidm2|frlEgDk)LyvqK~q zLMKBSW>VbHI$Y(#wWIQayJ7%7o zBY1?lQv}QYfw_b|ez<`16P2gU0g~%~z8x&gPAa_BuDME@ojU@HGC6!Y2pd~0Y1FiT z#0cORi6s_y2WpIxMsXXP#Y!mCMgynHCjqO9i32dxjhSzvg=PCMphvgcX+L)6!5W8e zOiLA1WXU`JJ4T+w8^=6oIIHU1%z;t#eb1#lukLNJk>^5aMKh4jo~=7Cz;^aOAd_Q* z^m*$iu%h$umo%nANzKMg0Tn`5h(2Y1se;hEC@@r6WqTj`8Akd1fuXnAIt7g9->bDy zWpt&)seY>7*Y1{rcg5oEDtg@jR!Dp^TWKCi3eDKQXXSS=16EAL;Yo+clsF9X04Ums z7xcvG`yA5kG9>OS&}bS^jTIkDYLq&|o|}pf$Bg-R;yj9+tRJ{5(%%{;t$*@=W{@+h z8H^m8lO!gg!3#JeR3gyDrqjI6QgdipL}Hm?m9#sM2Y#p*jhxXCMOpg)svx3Gq^m`z zZI{U#C2w$mt%x;wZ$o}#lkb(USMbqum#*5=)(f@#G|xUEdk)mq0_&ajCTYd%w*Fa% zlmGr^kKy)LNiOLCG_x*)*L1gk!y$dD`|WZaPuq;-B8N_$VNI(~!>Ev>;S@J6<( zZRrP6sbvR(&ofNHe;abg+WH;>q&NNuW3 zml1}za~}6BJ7oB3tbGc9qdq4=ap~6nk0x`P6RWpcdrVvRB!#^F-T^`3V?R7uu~F7@ zXK>3^0W6D+Uc^+br!$I>Qzs}Hr?UH2SmR_hgcy`jDpLR`_S!#ob!X+(AM%KqLz}C@ zJ|-8~a=DVMM2QT$U>;p zyowkB`P+dWsO(ox7%M`K=iPj*)rLgm#gSib-5ceNKi-`JGadm>jLX6L$tTBNecB4g z&HD+4KC9u}%!SH6&x#m}zITuWcn=Wh^};v417hH5UGd~wvIF>B#CfFUv(NnOgz|G6 zJy+j_K@C3o$$U(I;C}xF9v$3;W3V5aiU4-#vv`P3HRMR`j^5wh1Q84cI&`iPhTz1Z zvKAcoqZDPM2+NXdpg(4skQClpc~F>=(tprv8Sv6JoPQSu&<$f3rgym}^V(c%DLB}t ziW6?4Bxt6^Z)=`Sd1X{7Yt6D)2;jQfi2n=~M(wey329@0glY8}p^VsK%8|$AUZyC! zd zeW}%|!it%8u72k!Ys8+-Aw&dbcb%B0TBHShm^kz+g&h82`{?+I4g+6h*@&m5ZV(QH z%!v6BX@KmCcq&)=|@8Is{u>p%uy52JoK6vAyFjJ7g< zE5^}eL?Eag7%J@@@H$HOD5@tR=v;Xk-YP$XTU$bQ= zF%&BM^V;=3)PWqA(u1e(@E)%?ogX^_CH6Q-j-}Fnd4-Hh*Z;@8?tFyUHeVY$b@5p4 z>2)yGbhWPYe=!UkIq#maRF%UvEk>ZTN~C$$8xl@UB))2k^{Wt&)*B??`D~PkqA>1U+Z2NVDrIo` zL;L$NLOQZQMi==5C==W=L2}LtYF_U-)RQ9CJEoCYGUPPki*5_uZlSFJ6rNNeWo(E` z9~zCf19;$DvpH!BjG3OrkseMf@QANPAZ|uo<@m26l5fnwCH^M@PHpANVR|XyM22)2 zmz@|gdQ~)3him`2HMRgyO928u13v%)01g0jbAD4*VcgfW5dZ*vYLgWeMF#T`00000 DHzcA5 diff --git a/tests/ast-parsing/compile/yul-0.8.1-compact.zip b/tests/ast-parsing/compile/yul-0.8.1-compact.zip index a30c6593ec9b76c2ba6473dceb2bea08275d5ed5..2d3c0785195eba24056ba47f34b98b71c823b644 100644 GIT binary patch delta 5367 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 VCo~lR03C&sdJ;tja}@vp004f>R|5b5 delta 4581 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 N#1cgY(iH#z005UUiM#*+ delta 4658 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 diff --git a/tests/ast-parsing/compile/yul-0.8.3-compact.zip b/tests/ast-parsing/compile/yul-0.8.3-compact.zip index a0bee49498407c6ba4ab232febae927b9dd111a9..2699b20dcfd089889249082c1473decb094b7c64 100644 GIT binary patch delta 5455 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 F001#1!^{8x delta 4651 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 diff --git a/tests/ast-parsing/compile/yul-0.8.4-compact.zip b/tests/ast-parsing/compile/yul-0.8.4-compact.zip index 1ddb1c8edd3e4356116119d2ac0d5e83f077f1fd..c61f44a07d79c9b93cfcd3c17c86f7af2c4f74d6 100644 GIT binary patch delta 5547 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 delta 4706 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 diff --git a/tests/ast-parsing/compile/yul-0.8.5-compact.zip b/tests/ast-parsing/compile/yul-0.8.5-compact.zip index 5b6b1b03b59ca39b45af9a8ad48dac6fdd900ab1..54fa8ca25497711c6a83f1ef270572301293c622 100644 GIT binary patch delta 5559 zcmV;o6-erVCzdT3P)h>@KL7#%4ggMtfm1$N5UTPO006Lvkr>l|GijEe7Ovdtl4!9^ zfp}xVcJU~72|E@#}bb5#l%?XH3X|Em6XjGhP zQgH1{Tjk(`yo%{@}x zynz%~i-{azCrIvpqyOQ#+rai{P_%*0Va`q`?M3YQuAiWCj?D_cTf8uo+zfnz)=Bl_ zudewudY5C%>#v8rK&U-1ameAv->{cKZ>ly|z>Zd@iuI%`Jl~m+<QD=t8})vd1qpxr3S*U=k`YLs zcmOv0IuOAGXt=%n?1WR_UJDWVBIi_86o`XdXh~R1KAdhuJpDb%0R6ke#kH1j*7va- zsH>)CxdX&EiG1zO4-M* zR%eHQCQc>v-!cL?5r11#gUgrf0n=nfH~&-fiza`HA*&WFlfS1$fHv_BaAd_J6;?i5 z*hbi@W(2!4`Et+51I5gSr*FvMyyM$Q3o?a>#d_reE?G_>F0gvzV_Td+4IV+4{lU$*H zE!4Gj^}1WuqV|jS{-kkAKDuTEB53P~!#J|Q?FV9jzV|}HnS()1*zTxEp@jJrFf z4;QPuq0V#_{AtINXA2ImK^gAAm^Zk8!ts^Yfiwv#gHp{AlK4by;btR@=kL3n{vhdI z43CjeU~MD!#2qWtRW_H!V_c*VcfRjLXj*Oy8uMiznUhrxGN1@z*)ESYo)9W#YTa zMtXhQFviD-`7@Xthn-Mgob9>BcAqm=&~i}qt%OV1Uk6X81R9=%CefNf;EHSVPGjii zy`}}O*IukiCsB2@^k*Qc1#VpU{93b`&oKfgmt?l`WHp&c+VK3Y#dh>JJhB_4xjI{` z$Du(z&pl%lx0yRn%N+>xgTkSIj^h4!h1Z92a!g3y)T{&x`jRu7$5D;g{}Na@iAqX6 z@&&S*+9^j|<{y@=j!Iq(V2EIv-U!6d(z!&_x?!>5WLr{@rki4tragU+WeT!XMCId- zm*38|cgb5ZE6{0ZAmM_Wjm>~v&vaD^fV5P;V`d!$%hgXM&{!nOudvBspPQB!h$&~>*`~2sc8((=A z!0*LOOdPFz#2vI`P&7Y(n1S?)(c33JXy67&Sx%dC7Y^0Bw2?lbHj*ui5Lr_Ll$oh) z@8cnGq&Wd4IN!qib$@{#@UD{NPFePo=dM_H1imC=wXWJzjNI}{ zyc({qUajH6d*%*a-wBHgrz07pmA2I8SQ%#(k~p_1NW}2NkAl+jpzb%Ij)-Zm@bcLa zSkBRxrPp(H331CW7PN8&w<(%j7>I|6N4&#;qtcX>^NH?yDiNw0pP_q4AZ`JVNsl1va1m?Yk5Kin~X(Zj9PXSh-Z_ zkt$FB1K!D$3Zh+g%*LV*92jvLJe&C;&Wqxo997(z@ABt=_yxc6%U*kNu3Zl_uNux~ zWUK5jv$Gm=X7ExtuV-M@j%Y5uoGx;vKmFw;Ji&e!6{++`1{_ho0YxQ+^;Mp7kGX%O zW=xnKw4Ty=EPpNp4-iPbVIoWH+hJtf#5ZQ%mX-8Lv+aqMvEUNhA~Vg*J$`p2%!vE# zQ1n|{Ci47$@TrM;&p1A-Pj(FJnF3cg7dw-JZVAqbO^Oa1bT1MV*lVznGwh(JT80hj z!y#fyiHO-j5{lhu3DU>Dd_b1icyqqWe8`ZHzIoj8BAbAQ;1zims;49m47v&8&9jxS zhA`b_$g7xMbMn>{wtz0pCZTWz__uC0#m)|?fV*OUZkfQjjdX48=d+amD&<>I`2wB|c4EZcExI+ml{3hT8^J{;ANc zbF71tPdTtPqdV9sa++0xZvNN)nNJ0YFP#rzs(i%g#d7iv5GjE1_vU-}Eel`iM8%Z$ zc@r%18F^o)u{^o`is*&|Zy+^lLyN*S`wHiO$sKJfMWteiiwf@3R8=jrL0U4cRFMu& zFtgKCioRk}K3B)MVH?%I4*xtqZBy>oPb}CV8Qy150^0f8_M)Ga*8jL7ufCo;zt|=v z(<-M;$*l@e#Wspx7}`O3;!NW0@|l#`j}8uHPT&+Oi_`SxFsOjdfht_7=Do80sEtv7 z5X$axF9Di&UKgS8`E5AMWOOT$R6T`(1<$kg+Mw3OMJga(OfHG6Pr@5%CPKS>{6ekN zNPW$iXW2P17kI3gJm=;jHjyU}+f%69z$I=?L9X!TZ%OLG98zT87Z><)e+7!Y%_&G7 z0(6{aA7S45l>5UR9;&nDz58_NH2f8R`UM*G$_XpR8RBZkb_pWeMHS0U6Wv@#A2xzc zSgr^PBleu9@pOpD6`x`M@#=n%NU&xcAB@J9<4=r3%6X(vODzgGz<-m=q+6HO!Pp51 z?`5+>IpAL8F?kriFe!YMG2WlEUYvIo6c0vpBWc<+v^BX&r5q*2rTj!{9jSYNfiUm^ zr#VZ#_lRDq8F>bKoWRKwjkaR^rQd&6A`YU48ysY%eg+sOx;s@*b|q`#sEvOZaIdOR z>h?0jH#ByPj5r^H94W)7OOdQ20Q!(pfK%)KW2eqT4f7W!2mv<|yobylwzK=)4B6XA zxiHMdc_J8W^q12XFcBb5aOUNI5bGyVq(V&HQZPPMb(RAj^1sbE5NDI$oa^c(JHc6` z{$p19Sn`8`;>=)2@ zl1YHeu5uW1Ggq5!(Ny%Z?=IZaON4wOuaPi zJA@xj9dm4e)f>uV&lqWcUE#<+Mqml)mtU}E8E%uD@7*u7 zG{lp^o)SSC`gOK=;_UHPqL|MjN6d=f7flZ39_M{w?Ln`X@!Z^hfw8THRa6p7};Emy3x$=EI~MqmCD8U zrE~9zRVl(0VK){rFu|x^@(1EMsli&cS}Kh1n6evWsU^UFwX)Uwjn1`E}uu-p3OBltJ1NFn zzN(d9t+6-F^vd4X+<4})BLb@Z^z*^MN|I2gp?C~T z7v~#%C>qp2){?!HZ@dl^QL(EcXlfr^gm2}F=7@P{TE^6LH0re;kb!QVl&vgGM4f$1 zaX(;x_+98+^r>PuAxa{mYJ**e@CwHc$+d`^!Da~W)IsTJ{chZ0Z$6|7^T7vYAn>8R zRn>W1jRxjKV&_Lw>yN~b9m;L3!kkUSRn^4Je@d-^x2wO&)5cpqtvR)--4XpZnAf@T zO{00!HGp6i?Z008G9eQ`b{7wdn7S|L_JTp$-p0zBXa9vIMiO+#ZAExARgh`Y@f2F zvL3)P4fvBqj0sH*om{ps%MOYfn7Vp_X&AVi>Kh2j zp2~3RnU&(w8r06R@bDH9RUfIzj(i4(cf*@%=WJ3*JZApjNY11kH=xmDjV|ipAYaZa zhcnObVp4IB(qmkYEdb-~v^_34;~f1DqcJXdnah^L>pu9V z-5s)@JHp$hnR5Te!lLUtzFe$-fm9g>j;zTGO(&W7tafp}T~W|Nyho>jpj$=AnXvn~ zglSs$HV)By;g|m|v^d;yPj~XzsdtRCqu_CW>={W~%e3^!Q#)`9L5O50*YbOm70T2M zwzDcxNNCY|D%i-IO^-&P0hsDexnuYOs15Rs2xXTulMU+S7cxKIGH<(o8q=>RB?=EZ zxSHZYudQn$Bgpi$pHMWDxTcv&wf5DV%gwa!;zwZ>JfG{o54jCiJ4~K-WPEsrwK6gPNC`Wcg{(^! z@cc~@;3EiHokicba$Al}?C4+w++ioaK{J6QU_f*~goI^O6&_oEn#KlY2wUd{N(R%p zvl_7f5L-tgg=d75>)7W3}RZScKa`eXjNKLT9uinJSdsMFIYe zV4_fdt1nW|#sAGSE<>U4l8z|MGzSaNUyn!zl6^#hGC|w0w7|rs;S<8@ns^{qMwgrD zA4IIq?`^K zTzSG#-2u5Ah?LK72wB@D3s(3EuDc!4)?*SaBd`;^eSOM;>ZZ^=FeL42mKP46m>B-j<0&Y1vf!!K*;O}$YSI8*{$OR4xZbvo+ zlhy0a!Oj$a_P}+(1~bkrAKS=(%C^xl1{~V31c}E*WZzj2{G_SBB9@e6IlkJKKYDN; z#`oSv6EGWa(1M%PoaBsZCCPw|&@Y3+wS&@Oi=+d)5f=SN9da<>VCDE0EkHZi80I-OYHWNh#F%|#- F008K#>8k($ delta 4786 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 B4aNWf diff --git a/tests/ast-parsing/compile/yul-0.8.9-compact.zip b/tests/ast-parsing/compile/yul-0.8.9-compact.zip index 6dfecbadac61066b7b3516a4d26f817eeb83db31..799eb8fa6973177e08426b05b9d0f503e2915f4c 100644 GIT binary patch delta 5532 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 H00000eAy*4 diff --git a/tests/ast-parsing/yul-0.8.0.sol b/tests/ast-parsing/yul-0.8.0.sol index 090b6d405..38f7a7e09 100644 --- a/tests/ast-parsing/yul-0.8.0.sol +++ b/tests/ast-parsing/yul-0.8.0.sol @@ -50,3 +50,20 @@ contract C { } } + +// function from https://docs.soliditylang.org/en/v0.8.0/assembly.html +function at(address _addr) view returns (bytes memory o_code) { + assembly { + // retrieve the size of the code, this needs assembly + let size := extcodesize(_addr) + // allocate output byte array - this could also be done without assembly + // by using o_code = new bytes(size) + o_code := mload(0x40) + // new "memory end" including padding + mstore(0x40, add(o_code, and(add(add(size, 0x20), 0x1f), not(0x1f)))) + // store length in memory + mstore(o_code, size) + // actually retrieve the code, this needs assembly + extcodecopy(_addr, add(o_code, 0x20), 0, size) + } +}