From b1a4a16ea2f2f06678ff2e487efc2bdc337aed0f Mon Sep 17 00:00:00 2001 From: Ryan Scott Date: Sat, 26 Aug 2023 22:13:03 -0400 Subject: [PATCH] Draft: mir_unsafe_assume_spec This implements supports for overrides in the SAW MIR backend, largely inspired by the existing implementation in the LLVM backend. I've added a `test_mir_unsafe_assume_spec` integration test to kick the tires and ensure the basics work as expected. Checks off one box in #1859. Still TODO: * Resolve the TODOs in the `test_mir_unsafe_assume_spec` test case (and the related code in `executeCond`) involving mutable allocations/statics in the postconditions of overrides. * Add a SAW remote API test case --- doc/manual/manual.md | 12 +- doc/manual/manual.pdf | Bin 557032 -> 557007 bytes intTests/test_mir_unsafe_assume_spec/Makefile | 13 + .../test.linked-mir.json | 1 + intTests/test_mir_unsafe_assume_spec/test.rs | 35 ++ intTests/test_mir_unsafe_assume_spec/test.saw | 158 ++++++ intTests/test_mir_unsafe_assume_spec/test.sh | 3 + saw-remote-api/CHANGELOG.md | 2 + saw-remote-api/python/CHANGELOG.md | 3 +- saw-remote-api/src/SAWServer/MIRVerify.hs | 4 +- src/SAWScript/Crucible/Common/Override.hs | 2 +- src/SAWScript/Crucible/MIR/Builtins.hs | 144 ++--- src/SAWScript/Crucible/MIR/Override.hs | 523 +++++++++++++++++- .../Crucible/MIR/ResolveSetupValue.hs | 80 ++- src/SAWScript/Interpreter.hs | 8 + 15 files changed, 882 insertions(+), 106 deletions(-) create mode 100644 intTests/test_mir_unsafe_assume_spec/Makefile create mode 100644 intTests/test_mir_unsafe_assume_spec/test.linked-mir.json create mode 100644 intTests/test_mir_unsafe_assume_spec/test.rs create mode 100644 intTests/test_mir_unsafe_assume_spec/test.saw create mode 100755 intTests/test_mir_unsafe_assume_spec/test.sh diff --git a/doc/manual/manual.md b/doc/manual/manual.md index 1d0de3c9da..9b67b98f3e 100644 --- a/doc/manual/manual.md +++ b/doc/manual/manual.md @@ -2122,8 +2122,6 @@ some parts of `mir_verify` are not currently implemented, so it is possible that using `mir_verify` on some programs will fail. Features that are not yet implemented include the following: -* MIR specifications that use overrides (i.e., the `[MIRSpec]` argument to - `mir_verify` must always be the empty list at present) * The ability to construct MIR `enum` values in specifications * The ability to specify the layout of slice values @@ -2995,18 +2993,18 @@ the target code. However, in some cases, it can be useful to use a `MethodSpec` to specify some code that either doesn't exist or is hard to prove. The previously-mentioned [`assume_unsat` tactic](#miscellaneous-tactics) omits proof but does not prevent -simulation of the function. To skip simulation altogether, one can use: +simulation of the function. To skip simulation altogether, one can use +one of the following commands: ~~~ llvm_unsafe_assume_spec : LLVMModule -> String -> LLVMSetup () -> TopLevel CrucibleMethodSpec -~~~ - -Or, in the experimental JVM implementation: -~~~ jvm_unsafe_assume_spec : JavaClass -> String -> JVMSetup () -> TopLevel JVMMethodSpec + +mir_unsafe_assume_spec : + MIRModule -> String -> MIRSetup () -> TopLevel MIRSpec ~~~ ## A Heap-Based Example diff --git a/doc/manual/manual.pdf b/doc/manual/manual.pdf index de9ccf68b8fab6af5d8bbdfa107c261edb8ecd19..73891254fba6af77051203bd5494272107819735 100644 GIT binary patch delta 96778 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 LC8dO-B;5Z4ZcLf7 delta 96799 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�Y@?t%~(yVu6jWM=HtGz!AC~R0Rs)i)^-8J#T{yM236?TowHE zNicl$&+2qDv}>-UK#xI7f=!u#i7^}E+mQKgUO!>&y_y|lcx~@ZH$;*ho5rUvSJF@V9lBsq@SXu_pFPZ5T`|?#S81jdU(&Ry?o0JoEEJ%nQRtmfs~8#!l4y1q9%%` zUK=)3J`_igUcDYY{y*KG z*K2~RTQS+1X5r}~gIfCvi3pihegisb926;q2pXd~3i{707TNvP?xbQkABm3I0LYy>McGIS)wn2`D#zHHL9fOTv zFxzxj3)15ul`XfbYknA;ip()!$u~j)f>KMc?zU0PB^Jy5$k3~sSvEe5jYPtjXvwj| zT@-P9P(Ki)r+fhPTa@@}kmya^tXE?j4sUI`VuO|4K-oH? z#m$Zbzhm?|VlXg*aUF$+yJG3`@>%+ro=Vt5iP&XI|6V4*njC-jz%TYNO)8+35@knVcN#NE*qIx!1p2_hB-(`_?K-F zcTmDKQsioxW^AC4Bb9GFjb%>+;~?*?Int-{2phYKTR5gnU4KYX7Af6YOP|_7CnGa_ z%K+xBfLa4fV}}7=5fThiFSa(8WK1GsI26Ed02z^LKt4?Y$~>l~Sx};@z=s1)3c#of z_CwXE<6mlk$&q-460>MK*UK9rUR5L!y9;02O#pk&{}L8PJU#AHGJj_3 z_%f}_Nml@(rv)!4OspAxpGc?~o{KMxilck>5vZe}(m={FO=?1&mcKt=ilqxDdTtk) zY+K;_6>z{K8S|B~7z$8UGaOE7s@5(LmcEbp*1Zu)HvCA|QYGMW z=bh834%?wd%Y4IFW&Q%Kh&A_?CIO-z{Jn$fW<$KaSNL6nv22-O_GQW6VX!wqxt z?07%K^&F0EL<&6-yccKb5&|~#lgtvITK7_LQ0b*L28?{VZHYxiIPI2ny z1!GMF?r{f9zxe4-M~p`V?swK*>fdyVO;p2)A*z;1-0!gO6uwt=(8%zbe#>_B@l2>( z)_jKP+@V#6{<#I}+?DXBST~(kgv-tEG<9s>O405&S_24u*GiJIPE?{E9S|KzJ6vg6 zy6=v@zERyP&-`UJQz6nj0Ovuah~~yTZTd_8k9Z%=756taw~OIMkjc3?qe2$XjJCT_ zOGcLK%F^Cikws4J1gXgCW+0JDQSSVaJUXc%dJR>oiv_SCH|i^^P|NsGjf76{uv=CH zV=D2T&snbB@ht~N>qj5msE1Zy1q}u_t%QJfL|0;tInJZ7L)6=Y<1%7;Pz`uba)mE! zc+xMY^P6Rwj5(i!+}pC_ktBP3cU$o*Lj&2oB)RcR9N#_guAi~%kK&r><#dzrUIM!1 z5zP1aAQ@=)l2{ZL&L5FYwEolwAt}$drj5njrEBSy`_*WsCfc1gyq~3=h|x9G<)rzu zU`bH6P7(|o54KOt?*Yl4rgjhL?vHV(sia#s_+g?~+sWEU>XJx7Rge#4amDxW)ZW)R zt1#^g;7%@BqdqRoV+WD0QoTB5BlQcQ6`^~v9;BX}vH@v-^O~Jpz$@krp~dIFgD?p} z?ydYVLz+P3BNUnc1W zqb_vv7#+tfSAry;idVDVK=+53Z`cg7mWE=I7}_Bnpl1YTbyI%4{iW5aRsKZt*~3x> zFI8h)DeqkjwL3HQeo+F61D&&^UDns{Fz)jRQEA+EO7v;Y1krG1LHbRgGSvE)O&{7S zGLMQcLG{38ImZ!vFNtO5=B2Om06Ac-KT*BKM}kP4+@TRN#i_QU0d*9n^^btiFdXoX zI_DvKaYQ{e8-S*0h6&37VXcOjS_jX*S3URLPXOrMSAR0*)U$V%Ayxy9C{$8!L}%!dNWnh&L2|;#0&PzOk!<2R6X1!@R3bqJjPI&mh@;}{Ij@w z#<@~U26;Y`ZutW@NqNzojf?ndy^$Ac7wB}tQQY~gbg^d~M(Qc9gnA#Cw+wGiMkMtk zztX~f_`SG+IEI-Wq z@Uv~IfYAxI-qrn~nIfgL&C^w^NFlOXUZy%R@EF^f#TSZBP=*NF1Z-kU4u!kfV{CJb z-Pz;peTFWw1Sl1JkmizGGh}t}X z+dpTqx=J1x)?CG^*28<`y#URbQo3nUz2!N^f(e27O$ZDM9&3^2JN0Ei)bxD`Q9Na z$M4yVvF4e4Bk{CKXNn2RRN;jUDl`uX#&n1=YK?oz(;G^-)6a-_)5}Yq=dtaw@7|%* z&b)mCtc{}#+aESHDG&!fg8gCHLhYBHJCIk8vvgp{1QskLElU?*DMWT1-jRt^Qf$>} zel22p6((ET!5uN69c$^#h!ys6D9+NFz21mY-CU4!Iiijjj#+V*cp!3bI^uG1g||AH zBjG+O@9F~=IIx)nn~3CQe3BlC1Lp?9=-=!BHPqOiM32gS`oRSTzvW3Bghfko9x-OQ zEILjZC~0-Nw=~pl!|@p27`T~PmAZHZRR^5Tzk|V*sG@hvBSR_44GJ@?#EM@AMY#tZ zwB1#NC&qrV@%D#XxpzpnpEar)KK+HqoZ)iE<>cLdZ2ah0!@MGAJwH-?zgN>);Y6Aa zFMqT8G2vMwdtw+&ma*S0)dJNd?4 zYoP;E-g@%IO>2S7t>V@uOtVgaGSBrz7*c`d&oKC5UM|DD!2UdU?!=O@nKCC$YX(9) zW}JEHCF4<-TeL+XG9>*nbXRdvO#)ozFsWAR)hWJG&H&BGQUfQJZT031u8yTh^y~Yg(dO8V;wE zcuC}wN#|vAlIB&Zp+EN6!S|8+Jqqb)vUuR<6tu%Ka4$SUO zCk|(EQL%2(pa9@Kd$G`5ahMXVKka+4U;ic*t4Y;KQ<8K~9wBr-vM{a}eI}_LQwv7i zjDC+%lpmC*sE6>5*T`XVrBWi$z6*TXFZ5q`mInb3ei=J@DEQOJI)n|5{_^ptDWQo7{cSBEet~%9F9>qU!;cxfn-zu`jn; z5el`BESu*C!=*k)$2_=*r>Es>_{c32TN4V3lzH5}rQJY3kMlI7W5Z|A%2Rg-40^LC zR^)XSE=#l`*@biijPb31(zC5^8`@u~iA=+jwD|%%J3le$_SQ7)?FzN5jXc%@?70*5o z*p7msqj+LF#&ny_fl_Sf|70(Ri|(=XGQVGq95v2jzu&qN#OX}waL*8{e@zx6(=AS1 z3tMK(qV}H7{Yd-NGzPNUeU$2)| zvCz93uRO(gJ+!p4J&f<0Ql7s)|2~+t-pm|UlOT#w7h8XYHuAjD|Hs+n%LF+i(O?Mj z8>4V&+6P!uaR~|XXMT4^!Z+ce;-q?q!tvI{#`RAw?|&s_s0>AUWx1pv{-%H&7eG#q zOF))KfRBq`T7VZIAi&4TD<~&U_5UoADdU192>hX6Mz>--eA#(-*r0YVCN_QT_r74i zOANDl-@m}+{uEl4@|}jg0y6e@kDfy*8SE|gw2()tA`1(XcQlcV_Q)JNn$+9_pVzJGNEUj21lI^GD|L#Q9tbINV(#_B z=mC*Fm~pX&7T2O>^rPq@SDNvC2|WlV{}PQ}i_PErR7>2{qqBstVvcwcVO&dk*8`f% z{q2BuFL`vkH~8ITY4IFAO2k}52Jwm9IqIG|2eI>;T4#CruM@b5kherVcoPx&7Zl3< zCv%2(HlpT^7{j*vJ*!+f%b%9B8i)LOr@%mBOi^P~C?zvd@A4mLhCh9}7YhqQn6i)? z%pi@pHy2qA$#ug#>$miSQ5zmv4{!Vwu8gR!{A4Z&Bfm)$2sOM3mlvVwMl#i-FNnCm z2@{A!xQSyF#o~rv-Rs=~EwD+j8YSXJc-9-_2ZgzbEgHpefmhJ$`3uRUN9h-lNiWdR z57u>35TqjWV0PsE>{ygTaoIjGgt3JDeHGnylO`T<-F4Ehomd=hc0K3rj$JfDo|EEm zU>#WxZrn`hO9)>r0e_!;3-b1I7GtMDL1+VKL1U~7ou6kj@=$-)r3AeoxLqOmGRjb*vP7{|Rf%7VGc;PT zdIOyohRH^oY9?l9Rh69?klBUXsV7ImqF@Pc|Ai_6|8rd!?E_rdfYjF8^MB5I#GLA zjG1z+yko^0>z$!XlE_vT|cxS5|>K!CK6eslep9+ejO=1q*%$oFoP6g|>@a7mlUqLH>2Wa2dIt=e3v9Gd5tFU$xp zTpeMH7YH(+t{gHYJ&>q?H0qOx5~1?|J-8FyVC>3YvT5Op7|cxNI$=m!m73@6JeHCt zx+l76+K!qvU8EdH(sXF)oLYVAv66H!=}1~M|64ib6H?awto5XM?)XZOKNNusDXQHe zOT=tm76HPEQgo`sr9w<6)ACRsm7@Dc0sf_(=o;y4%Wf8S5pS^kUHzYvA=mj+7GD>N zdROWw=vZK@p-=t44*adm%Tx8tD`ABy!ZBl)$$Sc^+^2YRP-N0!&&A*$HP2s7pX|HuX5X7}tcE=^kqhA!3PK@nVv$81yfBi5WBwG( z3rTfDQSB#oPgQZ7%Vi9hq_ zR4X>vQwil-o~c+2dHp+06T`~3avpzZ!q)kGv#d5W?7t_>x-Gf_^Tzgz&5c#=yT@#E z$bRL(`)zH92BLIMtEbHnUC13%9zX*TH1zVOd)_N!z^1_VzX0a{8%sV*K2Pr~W0k{Z z9huTO8+Ixl!sP58>*@!d5*`Ph^t{%L=@?f_MT+8^=#3Z*qYc~Y^M;nL%Z1whi||OK65> zEKcE==JH3BFFRH~ee6r<5R*I!e|Cey=%W@ylm7{^MxqUOL1@Tu(enJ`_|EZMND!0o zC%=*M^Yyg_QRYv`6M>aKqnyvZTY%8MYXgHuYj2-L3iHmzS}-wxQj3PQxCX+gZ4!${ zC;f!)h)CMR?}!rU@hX4%cvz3=A~g=N#y6S&&h@)jhG4cwp7!0aIUpatN}JMsV=-E~ zk{MIWB-`3vhKr|CETb;;elh9#JEF1M9{$VSjRa0 z{blZa@Y@o{^8W>x@J{Iu0y}h~whXm<~;Lbfh`7#gk!~ z;`|Q)|NFqk?Ymc{R|~s*;`1Tzmxg076HGpm7tOa=NrwMRDV-8oKArQI5Byhb5y6&i zmTk134D%nm-wlSuoJWAb?f;7ARz4OaXbo-a-vD{M*EZ)~e{cT6C=vO02G^PH60Z}l z+4E3!eX$SD{>H*G3X=DqII9cFslDaB1^U{f<^4+hH_oas0?fes#+3AC2ut_=0)P20 zz@K7SQOlf&dwrs{nm1Fb-$g`Z&k6n+9uadT&UGq=aLZrw<+(CuITxOXP2=`R^iYq@ z#GFDBYLP8O9C@5Vt7_4k`XSCpdr!%1`# zH+0Oc;_K$?Zu~Xp&}IXnq^XJ0a5$KClwRjo59(vF$=JUq?MbDvsvl|KbV9 zIB%ZT!us^NFXhu?yjY_JVxB|>)ly>gND0FI?NhiRs(y||mB8zi0b)Srt3O|js8PrV zH)QsH{1%kOpTd9qSyY#m9t?cn*@3lq(2v2*bZF z*G@jjAeu!w_*C>1p2Mv*poifoS6Z(@HlNlAkc`9RwSUAu{>%~}J>Uff+_kPNxzmm95b4vd03<8TQ+p)U=d12}K_C-i~()L8S%*k5fHflY@Wh1-5D=+z9BQDe-QLta@Uc&?W>vK-_ys zfSI>Xy#X;J!{sg!F&#ogeiovTM2AzTUz^ne!U~m7!MflN z=*x>`JWQad6UhMj1dBYyXLO62?4(eJ`EWmi)AETPjCskO=pA&7&=E}MHO$125zK4~ zGT0PKaZfKYnP5f&Sc&vMDR(atNJ=`qf$FMXK5;611QXunf;#5+MJQN_>Pq^M%m_M# za^2Gl9a3s6oD@<@B+&&@r#Tkzy34!+h(&(jb$}cGi=UQAj)RN0pZq8oYkzY!>N4GZ zhTg)CH9U*Dfj|Co&?{#P6pCqa_CPc=8o_uK<(|>W>-owt6mH%YtqNpBlwKwp>Oh)Q zPmbDiU^JIzB92>ECyS;Lj?cGSCLi+DB&Hm~DF1{BAH=vVO-vbguig>;QH;zK82^00 zG02%w68joRCOOCmVk{%T)!=z9h414Hzdoi~Z{s|Q)t z+i=Q8Nq7oW zlEq}kng;8lg-BewfrWgX!m%0NaRY{29dGWP#+R|1cnhgL4?IV%eXw4XwIv=)En0%b zWqPB=m-Z`xI6B=Mxw;>UYm5X2p`?Q(ERJA3lR+mumdc0(3l02gjW4AhK)$$Qth)QI z7BMG0i4v_v1VQ|);x2w%F1mKW*iM#0__?FPhV@3n4$(cL65 ziY9f#b?J3(f%V;_SdB)!z@q52{4*Q;s~aL2C{FO|BXKG8{|DXwFV#Hk@?PKW52Zer cbKJd9o(NbSWtISusE`GCQRwJo)#OnA7xWzXT>t<8 diff --git a/intTests/test_mir_unsafe_assume_spec/Makefile b/intTests/test_mir_unsafe_assume_spec/Makefile new file mode 100644 index 0000000000..bc6297ae15 --- /dev/null +++ b/intTests/test_mir_unsafe_assume_spec/Makefile @@ -0,0 +1,13 @@ +all: test.linked-mir.json + +test.linked-mir.json: test.rs + saw-rustc $< + $(MAKE) remove-unused-build-artifacts + +.PHONY: remove-unused-build-artifacts +remove-unused-build-artifacts: + rm -f test libtest.mir libtest.rlib + +.PHONY: clean +clean: remove-unused-build-artifacts + rm -f test.linked-mir.json diff --git a/intTests/test_mir_unsafe_assume_spec/test.linked-mir.json b/intTests/test_mir_unsafe_assume_spec/test.linked-mir.json new file mode 100644 index 0000000000..a5d29a520d --- /dev/null +++ b/intTests/test_mir_unsafe_assume_spec/test.linked-mir.json @@ -0,0 +1 @@ +{"fns":[{"abi":{"kind":"Rust"},"args":[{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::u32"}],"body":{"blocks":[{"block":{"data":[{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::u32"}},"pos":"test.rs:6:7: 6:8","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::u32"}},"kind":"Copy"}}}],"terminator":{"args":[{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::u32"}},"kind":"Move"}],"cleanup":null,"destination":[{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_2","ty":"ty::u32"}},"bb1"],"from_hir_call":true,"func":{"data":{"rendered":{"kind":"zst"},"ty":"ty::FnDef::95d37a33656fd654"},"kind":"Constant"},"kind":"Call","pos":"test.rs:6:5: 6:9"}},"blockid":"bb0"},{"block":{"data":[],"terminator":{"args":[{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_2","ty":"ty::u32"}},"kind":"Move"},{"data":{"rendered":{"kind":"uint","size":4,"val":"1"},"ty":"ty::u32"},"kind":"Constant"}],"cleanup":null,"destination":[{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::u32"}},"bb2"],"from_hir_call":true,"func":{"data":{"rendered":{"kind":"zst"},"ty":"ty::FnDef::f55acdef755f1aaa"},"kind":"Constant"},"kind":"Call","pos":"test.rs:6:5: 6:25"}},"blockid":"bb1"},{"block":{"data":[],"terminator":{"kind":"Return","pos":"test.rs:7:2: 7:2"}},"blockid":"bb2"}],"vars":[{"is_zst":false,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::u32"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_2","ty":"ty::u32"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::u32"}]},"name":"test/ca04d5a3::g","return_ty":"ty::u32","spread_arg":null},{"abi":{"kind":"Rust"},"args":[{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::u32"}],"body":{"blocks":[{"block":{"data":[{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_2","ty":"ty::u32"}},"pos":"test.rs:10:5: 10:6","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::u32"}},"kind":"Copy"}}}],"terminator":{"args":[{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_2","ty":"ty::u32"}},"kind":"Move"},{"data":{"rendered":{"kind":"uint","size":4,"val":"1"},"ty":"ty::u32"},"kind":"Constant"}],"cleanup":null,"destination":[{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::u32"}},"bb1"],"from_hir_call":true,"func":{"data":{"rendered":{"kind":"zst"},"ty":"ty::FnDef::f55acdef755f1aaa"},"kind":"Constant"},"kind":"Call","pos":"test.rs:10:5: 10:22"}},"blockid":"bb0"},{"block":{"data":[],"terminator":{"kind":"Return","pos":"test.rs:11:2: 11:2"}},"blockid":"bb1"}],"vars":[{"is_zst":false,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::u32"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_2","ty":"ty::u32"}]},"name":"test/ca04d5a3::h","return_ty":"ty::u32","spread_arg":null},{"abi":{"kind":"Rust"},"args":[{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::Ref::e028c0f25e8b6323"},{"is_zst":false,"mut":{"kind":"Not"},"name":"_2","ty":"ty::Ref::e028c0f25e8b6323"}],"body":{"blocks":[{"block":{"data":[{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::Ref::e028c0f25e8b6323"}},"pos":"test.rs:22:7: 22:8","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::Ref::e028c0f25e8b6323"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_4","ty":"ty::Ref::e028c0f25e8b6323"}},"pos":"test.rs:22:10: 22:11","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_2","ty":"ty::Ref::e028c0f25e8b6323"}},"kind":"Copy"}}}],"terminator":{"args":[{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::Ref::e028c0f25e8b6323"}},"kind":"Move"},{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_4","ty":"ty::Ref::e028c0f25e8b6323"}},"kind":"Move"}],"cleanup":null,"destination":[{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::u32"}},"bb1"],"from_hir_call":true,"func":{"data":{"rendered":{"kind":"zst"},"ty":"ty::FnDef::d8f5e5d50376e8aa"},"kind":"Constant"},"kind":"Call","pos":"test.rs:22:5: 22:12"}},"blockid":"bb0"},{"block":{"data":[],"terminator":{"kind":"Return","pos":"test.rs:23:2: 23:2"}},"blockid":"bb1"}],"vars":[{"is_zst":false,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::u32"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::Ref::e028c0f25e8b6323"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_4","ty":"ty::Ref::e028c0f25e8b6323"}]},"name":"test/ca04d5a3::q","return_ty":"ty::u32","spread_arg":null},{"abi":{"kind":"Rust"},"args":[{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::u32"}],"body":{"blocks":[{"block":{"data":[{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_2","ty":"ty::u32"}},"pos":"test.rs:32:22: 32:23","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::u32"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_5","ty":"ty::Ref::953fce25114368d0"}},"pos":"test.rs:33:17: 33:23","rhs":{"borrowkind":"Mut","kind":"Ref","refvar":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_2","ty":"ty::u32"}},"region":"unimplement"}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_4","ty":"ty::Ref::953fce25114368d0"}},"pos":"test.rs:33:17: 33:23","rhs":{"borrowkind":"Mut","kind":"Ref","refvar":{"data":[{"kind":"Deref"}],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_5","ty":"ty::Ref::953fce25114368d0"}},"region":"unimplement"}}],"terminator":{"args":[{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_4","ty":"ty::Ref::953fce25114368d0"}},"kind":"Move"}],"cleanup":null,"destination":[{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_3","ty":"ty::u32"}},"bb1"],"from_hir_call":true,"func":{"data":{"rendered":{"kind":"zst"},"ty":"ty::FnDef::b153432b719d377c"},"kind":"Constant"},"kind":"Call","pos":"test.rs:33:5: 33:24"}},"blockid":"bb0"},{"block":{"data":[{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_7","ty":"ty::Ref::953fce25114368d0"}},"pos":"test.rs:34:17: 34:23","rhs":{"borrowkind":"Mut","kind":"Ref","refvar":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_2","ty":"ty::u32"}},"region":"unimplement"}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_6","ty":"ty::Ref::953fce25114368d0"}},"pos":"test.rs:34:17: 34:23","rhs":{"borrowkind":"Mut","kind":"Ref","refvar":{"data":[{"kind":"Deref"}],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_7","ty":"ty::Ref::953fce25114368d0"}},"region":"unimplement"}}],"terminator":{"args":[{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_6","ty":"ty::Ref::953fce25114368d0"}},"kind":"Move"}],"cleanup":null,"destination":[{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::u32"}},"bb2"],"from_hir_call":true,"func":{"data":{"rendered":{"kind":"zst"},"ty":"ty::FnDef::b153432b719d377c"},"kind":"Constant"},"kind":"Call","pos":"test.rs:34:5: 34:24"}},"blockid":"bb1"},{"block":{"data":[],"terminator":{"kind":"Return","pos":"test.rs:35:2: 35:2"}},"blockid":"bb2"}],"vars":[{"is_zst":false,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::u32"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_2","ty":"ty::u32"},{"is_zst":false,"mut":{"kind":"Not"},"name":"_3","ty":"ty::u32"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_4","ty":"ty::Ref::953fce25114368d0"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_5","ty":"ty::Ref::953fce25114368d0"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_6","ty":"ty::Ref::953fce25114368d0"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_7","ty":"ty::Ref::953fce25114368d0"}]},"name":"test/ca04d5a3::foo","return_ty":"ty::u32","spread_arg":null},{"abi":{"kind":"Rust"},"args":[],"body":{"blocks":[{"block":{"data":[],"terminator":{"args":[{"data":{"rendered":{"kind":"uint","size":4,"val":"2"},"ty":"ty::u32"},"kind":"Constant"}],"cleanup":null,"destination":[{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_1","ty":"ty::u32"}},"bb1"],"from_hir_call":true,"func":{"data":{"rendered":{"kind":"zst"},"ty":"ty::FnDef::95d37a33656fd654"},"kind":"Constant"},"kind":"Call","pos":"test.rs:14:5: 14:9"}},"blockid":"bb0"},{"block":{"data":[],"terminator":{"args":[{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_1","ty":"ty::u32"}},"kind":"Move"},{"data":{"rendered":{"kind":"uint","size":4,"val":"1"},"ty":"ty::u32"},"kind":"Constant"}],"cleanup":null,"destination":[{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::u32"}},"bb2"],"from_hir_call":true,"func":{"data":{"rendered":{"kind":"zst"},"ty":"ty::FnDef::f55acdef755f1aaa"},"kind":"Constant"},"kind":"Call","pos":"test.rs:14:5: 14:25"}},"blockid":"bb1"},{"block":{"data":[],"terminator":{"kind":"Return","pos":"test.rs:15:2: 15:2"}},"blockid":"bb2"}],"vars":[{"is_zst":false,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::u32"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_1","ty":"ty::u32"}]},"name":"test/ca04d5a3::g2","return_ty":"ty::u32","spread_arg":null},{"abi":{"kind":"Rust"},"args":[{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::Ref::e028c0f25e8b6323"},{"is_zst":false,"mut":{"kind":"Not"},"name":"_2","ty":"ty::Ref::e028c0f25e8b6323"}],"body":{"blocks":[{"block":{"data":[{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_24","ty":"ty::Ref::c2a5dcbb98af2a61"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/macros/mod.rs:709:24: 709:45 !test.rs:18:5: 18:44","rhs":{"kind":"Use","usevar":{"data":{"rendered":{"def_id":"test/ca04d5a3286a7930::{{alloc}}[0]","kind":"static_ref"},"ty":"ty::Ref::c2a5dcbb98af2a61"},"kind":"Constant"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_7","ty":"ty::Ref::c2a5dcbb98af2a61"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/macros/mod.rs:709:24: 709:45 !test.rs:18:5: 18:44","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_24","ty":"ty::Ref::c2a5dcbb98af2a61"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_6","ty":"ty::Ref::c2a5dcbb98af2a61"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/macros/mod.rs:709:24: 709:45 !test.rs:18:5: 18:44","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_7","ty":"ty::Ref::c2a5dcbb98af2a61"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_5","ty":"ty::Ref::675b2a8049aad652"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/macros/mod.rs:709:24: 709:45 !test.rs:18:5: 18:44","rhs":{"kind":"Cast","op":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_6","ty":"ty::Ref::c2a5dcbb98af2a61"}},"kind":"Move"},"ty":"ty::Ref::675b2a8049aad652","type":{"kind":"Pointer(Unsize)"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_23","ty":"ty::Ref::c2a5dcbb98af2a61"}},"pos":"test.rs:18:20: 18:43","rhs":{"kind":"Use","usevar":{"data":{"rendered":{"def_id":"test/ca04d5a3286a7930::{{alloc}}[1]","kind":"static_ref"},"ty":"ty::Ref::c2a5dcbb98af2a61"},"kind":"Constant"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_18","ty":"ty::Ref::c2a5dcbb98af2a61"}},"pos":"test.rs:18:20: 18:43","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_23","ty":"ty::Ref::c2a5dcbb98af2a61"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_17","ty":"ty::Ref::c2a5dcbb98af2a61"}},"pos":"test.rs:18:20: 18:43","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_18","ty":"ty::Ref::c2a5dcbb98af2a61"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_16","ty":"ty::Ref::675b2a8049aad652"}},"pos":"test.rs:18:20: 18:43","rhs":{"kind":"Cast","op":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_17","ty":"ty::Ref::c2a5dcbb98af2a61"}},"kind":"Move"},"ty":"ty::Ref::675b2a8049aad652","type":{"kind":"Pointer(Unsize)"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_22","ty":"ty::Ref::d0bd7bf253977b90"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/macros/mod.rs:709:47: 709:77 !test.rs:18:5: 18:44","rhs":{"kind":"Use","usevar":{"data":{"rendered":{"def_id":"test/ca04d5a3286a7930::{{alloc}}[2]","kind":"static_ref"},"ty":"ty::Ref::d0bd7bf253977b90"},"kind":"Constant"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_21","ty":"ty::Ref::d0bd7bf253977b90"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/macros/mod.rs:709:47: 709:77 !test.rs:18:5: 18:44","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_22","ty":"ty::Ref::d0bd7bf253977b90"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_20","ty":"ty::Ref::d0bd7bf253977b90"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/macros/mod.rs:709:47: 709:77 !test.rs:18:5: 18:44","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_21","ty":"ty::Ref::d0bd7bf253977b90"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_19","ty":"ty::Ref::913e2ff5487f7787"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/macros/mod.rs:709:47: 709:77 !test.rs:18:5: 18:44","rhs":{"kind":"Cast","op":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_20","ty":"ty::Ref::d0bd7bf253977b90"}},"kind":"Move"},"ty":"ty::Ref::913e2ff5487f7787","type":{"kind":"Pointer(Unsize)"}}}],"terminator":{"args":[{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_16","ty":"ty::Ref::675b2a8049aad652"}},"kind":"Move"},{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_19","ty":"ty::Ref::913e2ff5487f7787"}},"kind":"Move"}],"cleanup":null,"destination":[{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_15","ty":"ty::Adt::ba5184b53bc36a4d"}},"bb1"],"from_hir_call":true,"func":{"data":{"rendered":{"kind":"zst"},"ty":"ty::FnDef::76afb566734aff77"},"kind":"Constant"},"kind":"Call","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/macros/mod.rs:709:47: 709:77 !test.rs:18:5: 18:44"}},"blockid":"bb0"},{"block":{"data":[{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_14","ty":"ty::Ref::bf4d6d337c623aee"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/macros/mod.rs:709:47: 709:77 !test.rs:18:5: 18:44","rhs":{"borrowkind":"Shared","kind":"Ref","refvar":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_15","ty":"ty::Adt::ba5184b53bc36a4d"}},"region":"unimplement"}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_13","ty":"ty::Ref::bf4d6d337c623aee"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/macros/mod.rs:709:47: 709:77 !test.rs:18:5: 18:44","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_14","ty":"ty::Ref::bf4d6d337c623aee"}},"kind":"Copy"}}}],"terminator":{"args":[{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_13","ty":"ty::Ref::bf4d6d337c623aee"}},"kind":"Move"}],"cleanup":null,"destination":[{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_12","ty":"ty::Adt::613f1953a8669d14"}},"bb2"],"from_hir_call":true,"func":{"data":{"rendered":{"kind":"zst"},"ty":"ty::FnDef::72bf0f6662028c6a"},"kind":"Constant"},"kind":"Call","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/macros/mod.rs:709:47: 709:77 !test.rs:18:5: 18:44"}},"blockid":"bb1"},{"block":{"data":[{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_11","ty":"ty::Array::6167cd8fdeb01e06"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/panic.rs:57:38: 57:72 !test.rs:18:5: 18:44","rhs":{"akind":{"kind":"Array","ty":"ty::Adt::613f1953a8669d14"},"kind":"Aggregate","ops":[{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_12","ty":"ty::Adt::613f1953a8669d14"}},"kind":"Move"}]}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_10","ty":"ty::Ref::41f3f8f95d02c3e9"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/panic.rs:57:38: 57:72 !test.rs:18:5: 18:44","rhs":{"borrowkind":"Shared","kind":"Ref","refvar":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_11","ty":"ty::Array::6167cd8fdeb01e06"}},"region":"unimplement"}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_9","ty":"ty::Ref::41f3f8f95d02c3e9"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/panic.rs:57:38: 57:72 !test.rs:18:5: 18:44","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_10","ty":"ty::Ref::41f3f8f95d02c3e9"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_8","ty":"ty::Ref::913e2ff5487f7787"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/panic.rs:57:38: 57:72 !test.rs:18:5: 18:44","rhs":{"kind":"Cast","op":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_9","ty":"ty::Ref::41f3f8f95d02c3e9"}},"kind":"Move"},"ty":"ty::Ref::913e2ff5487f7787","type":{"kind":"Pointer(Unsize)"}}}],"terminator":{"args":[{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_5","ty":"ty::Ref::675b2a8049aad652"}},"kind":"Move"},{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_8","ty":"ty::Ref::913e2ff5487f7787"}},"kind":"Move"}],"cleanup":null,"destination":[{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_4","ty":"ty::Adt::ba5184b53bc36a4d"}},"bb3"],"from_hir_call":true,"func":{"data":{"rendered":{"kind":"zst"},"ty":"ty::FnDef::76afb566734aff77"},"kind":"Constant"},"kind":"Call","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/panic.rs:57:38: 57:72 !test.rs:18:5: 18:44"}},"blockid":"bb2"},{"block":{"data":[],"terminator":{"args":[{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_4","ty":"ty::Adt::ba5184b53bc36a4d"}},"kind":"Move"}],"cleanup":null,"destination":null,"from_hir_call":true,"func":{"data":{"rendered":{"kind":"zst"},"ty":"ty::FnDef::906e67453a1bbab9"},"kind":"Constant"},"kind":"Call","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/panic.rs:57:9: 57:73 !test.rs:18:5: 18:44"}},"blockid":"bb3"}],"vars":[{"is_zst":false,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::u32"},{"is_zst":true,"mut":{"kind":"Not"},"name":"_3","ty":"ty::Never::7199a9b06188843c"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_4","ty":"ty::Adt::ba5184b53bc36a4d"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_5","ty":"ty::Ref::675b2a8049aad652"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_6","ty":"ty::Ref::c2a5dcbb98af2a61"},{"is_zst":false,"mut":{"kind":"Not"},"name":"_7","ty":"ty::Ref::c2a5dcbb98af2a61"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_8","ty":"ty::Ref::913e2ff5487f7787"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_9","ty":"ty::Ref::41f3f8f95d02c3e9"},{"is_zst":false,"mut":{"kind":"Not"},"name":"_10","ty":"ty::Ref::41f3f8f95d02c3e9"},{"is_zst":false,"mut":{"kind":"Not"},"name":"_11","ty":"ty::Array::6167cd8fdeb01e06"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_12","ty":"ty::Adt::613f1953a8669d14"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_13","ty":"ty::Ref::bf4d6d337c623aee"},{"is_zst":false,"mut":{"kind":"Not"},"name":"_14","ty":"ty::Ref::bf4d6d337c623aee"},{"is_zst":false,"mut":{"kind":"Not"},"name":"_15","ty":"ty::Adt::ba5184b53bc36a4d"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_16","ty":"ty::Ref::675b2a8049aad652"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_17","ty":"ty::Ref::c2a5dcbb98af2a61"},{"is_zst":false,"mut":{"kind":"Not"},"name":"_18","ty":"ty::Ref::c2a5dcbb98af2a61"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_19","ty":"ty::Ref::913e2ff5487f7787"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_20","ty":"ty::Ref::d0bd7bf253977b90"},{"is_zst":false,"mut":{"kind":"Not"},"name":"_21","ty":"ty::Ref::d0bd7bf253977b90"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_22","ty":"ty::Ref::d0bd7bf253977b90"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_23","ty":"ty::Ref::c2a5dcbb98af2a61"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_24","ty":"ty::Ref::c2a5dcbb98af2a61"}]},"name":"test/ca04d5a3::p","return_ty":"ty::u32","spread_arg":null},{"abi":{"kind":"Rust"},"args":[{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::u32"}],"body":{"blocks":[{"block":{"data":[{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_23","ty":"ty::Ref::c2a5dcbb98af2a61"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/macros/mod.rs:709:24: 709:45 !test.rs:2:5: 2:45","rhs":{"kind":"Use","usevar":{"data":{"rendered":{"def_id":"test/ca04d5a3286a7930::{{alloc}}[3]","kind":"static_ref"},"ty":"ty::Ref::c2a5dcbb98af2a61"},"kind":"Constant"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_6","ty":"ty::Ref::c2a5dcbb98af2a61"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/macros/mod.rs:709:24: 709:45 !test.rs:2:5: 2:45","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_23","ty":"ty::Ref::c2a5dcbb98af2a61"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_5","ty":"ty::Ref::c2a5dcbb98af2a61"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/macros/mod.rs:709:24: 709:45 !test.rs:2:5: 2:45","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_6","ty":"ty::Ref::c2a5dcbb98af2a61"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_4","ty":"ty::Ref::675b2a8049aad652"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/macros/mod.rs:709:24: 709:45 !test.rs:2:5: 2:45","rhs":{"kind":"Cast","op":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_5","ty":"ty::Ref::c2a5dcbb98af2a61"}},"kind":"Move"},"ty":"ty::Ref::675b2a8049aad652","type":{"kind":"Pointer(Unsize)"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_22","ty":"ty::Ref::c2a5dcbb98af2a61"}},"pos":"test.rs:2:20: 2:44","rhs":{"kind":"Use","usevar":{"data":{"rendered":{"def_id":"test/ca04d5a3286a7930::{{alloc}}[4]","kind":"static_ref"},"ty":"ty::Ref::c2a5dcbb98af2a61"},"kind":"Constant"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_17","ty":"ty::Ref::c2a5dcbb98af2a61"}},"pos":"test.rs:2:20: 2:44","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_22","ty":"ty::Ref::c2a5dcbb98af2a61"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_16","ty":"ty::Ref::c2a5dcbb98af2a61"}},"pos":"test.rs:2:20: 2:44","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_17","ty":"ty::Ref::c2a5dcbb98af2a61"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_15","ty":"ty::Ref::675b2a8049aad652"}},"pos":"test.rs:2:20: 2:44","rhs":{"kind":"Cast","op":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_16","ty":"ty::Ref::c2a5dcbb98af2a61"}},"kind":"Move"},"ty":"ty::Ref::675b2a8049aad652","type":{"kind":"Pointer(Unsize)"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_21","ty":"ty::Ref::d0bd7bf253977b90"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/macros/mod.rs:709:47: 709:77 !test.rs:2:5: 2:45","rhs":{"kind":"Use","usevar":{"data":{"rendered":{"def_id":"test/ca04d5a3286a7930::{{alloc}}[2]","kind":"static_ref"},"ty":"ty::Ref::d0bd7bf253977b90"},"kind":"Constant"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_20","ty":"ty::Ref::d0bd7bf253977b90"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/macros/mod.rs:709:47: 709:77 !test.rs:2:5: 2:45","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_21","ty":"ty::Ref::d0bd7bf253977b90"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_19","ty":"ty::Ref::d0bd7bf253977b90"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/macros/mod.rs:709:47: 709:77 !test.rs:2:5: 2:45","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_20","ty":"ty::Ref::d0bd7bf253977b90"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_18","ty":"ty::Ref::913e2ff5487f7787"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/macros/mod.rs:709:47: 709:77 !test.rs:2:5: 2:45","rhs":{"kind":"Cast","op":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_19","ty":"ty::Ref::d0bd7bf253977b90"}},"kind":"Move"},"ty":"ty::Ref::913e2ff5487f7787","type":{"kind":"Pointer(Unsize)"}}}],"terminator":{"args":[{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_15","ty":"ty::Ref::675b2a8049aad652"}},"kind":"Move"},{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_18","ty":"ty::Ref::913e2ff5487f7787"}},"kind":"Move"}],"cleanup":null,"destination":[{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_14","ty":"ty::Adt::ba5184b53bc36a4d"}},"bb1"],"from_hir_call":true,"func":{"data":{"rendered":{"kind":"zst"},"ty":"ty::FnDef::76afb566734aff77"},"kind":"Constant"},"kind":"Call","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/macros/mod.rs:709:47: 709:77 !test.rs:2:5: 2:45"}},"blockid":"bb0"},{"block":{"data":[{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_13","ty":"ty::Ref::bf4d6d337c623aee"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/macros/mod.rs:709:47: 709:77 !test.rs:2:5: 2:45","rhs":{"borrowkind":"Shared","kind":"Ref","refvar":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_14","ty":"ty::Adt::ba5184b53bc36a4d"}},"region":"unimplement"}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_12","ty":"ty::Ref::bf4d6d337c623aee"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/macros/mod.rs:709:47: 709:77 !test.rs:2:5: 2:45","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_13","ty":"ty::Ref::bf4d6d337c623aee"}},"kind":"Copy"}}}],"terminator":{"args":[{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_12","ty":"ty::Ref::bf4d6d337c623aee"}},"kind":"Move"}],"cleanup":null,"destination":[{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_11","ty":"ty::Adt::613f1953a8669d14"}},"bb2"],"from_hir_call":true,"func":{"data":{"rendered":{"kind":"zst"},"ty":"ty::FnDef::72bf0f6662028c6a"},"kind":"Constant"},"kind":"Call","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/macros/mod.rs:709:47: 709:77 !test.rs:2:5: 2:45"}},"blockid":"bb1"},{"block":{"data":[{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_10","ty":"ty::Array::6167cd8fdeb01e06"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/panic.rs:57:38: 57:72 !test.rs:2:5: 2:45","rhs":{"akind":{"kind":"Array","ty":"ty::Adt::613f1953a8669d14"},"kind":"Aggregate","ops":[{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_11","ty":"ty::Adt::613f1953a8669d14"}},"kind":"Move"}]}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_9","ty":"ty::Ref::41f3f8f95d02c3e9"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/panic.rs:57:38: 57:72 !test.rs:2:5: 2:45","rhs":{"borrowkind":"Shared","kind":"Ref","refvar":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_10","ty":"ty::Array::6167cd8fdeb01e06"}},"region":"unimplement"}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_8","ty":"ty::Ref::41f3f8f95d02c3e9"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/panic.rs:57:38: 57:72 !test.rs:2:5: 2:45","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_9","ty":"ty::Ref::41f3f8f95d02c3e9"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_7","ty":"ty::Ref::913e2ff5487f7787"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/panic.rs:57:38: 57:72 !test.rs:2:5: 2:45","rhs":{"kind":"Cast","op":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_8","ty":"ty::Ref::41f3f8f95d02c3e9"}},"kind":"Move"},"ty":"ty::Ref::913e2ff5487f7787","type":{"kind":"Pointer(Unsize)"}}}],"terminator":{"args":[{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_4","ty":"ty::Ref::675b2a8049aad652"}},"kind":"Move"},{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_7","ty":"ty::Ref::913e2ff5487f7787"}},"kind":"Move"}],"cleanup":null,"destination":[{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::Adt::ba5184b53bc36a4d"}},"bb3"],"from_hir_call":true,"func":{"data":{"rendered":{"kind":"zst"},"ty":"ty::FnDef::76afb566734aff77"},"kind":"Constant"},"kind":"Call","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/panic.rs:57:38: 57:72 !test.rs:2:5: 2:45"}},"blockid":"bb2"},{"block":{"data":[],"terminator":{"args":[{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::Adt::ba5184b53bc36a4d"}},"kind":"Move"}],"cleanup":null,"destination":null,"from_hir_call":true,"func":{"data":{"rendered":{"kind":"zst"},"ty":"ty::FnDef::906e67453a1bbab9"},"kind":"Constant"},"kind":"Call","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/panic.rs:57:9: 57:73 !test.rs:2:5: 2:45"}},"blockid":"bb3"}],"vars":[{"is_zst":false,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::u32"},{"is_zst":true,"mut":{"kind":"Not"},"name":"_2","ty":"ty::Never::7199a9b06188843c"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::Adt::ba5184b53bc36a4d"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_4","ty":"ty::Ref::675b2a8049aad652"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_5","ty":"ty::Ref::c2a5dcbb98af2a61"},{"is_zst":false,"mut":{"kind":"Not"},"name":"_6","ty":"ty::Ref::c2a5dcbb98af2a61"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_7","ty":"ty::Ref::913e2ff5487f7787"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_8","ty":"ty::Ref::41f3f8f95d02c3e9"},{"is_zst":false,"mut":{"kind":"Not"},"name":"_9","ty":"ty::Ref::41f3f8f95d02c3e9"},{"is_zst":false,"mut":{"kind":"Not"},"name":"_10","ty":"ty::Array::6167cd8fdeb01e06"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_11","ty":"ty::Adt::613f1953a8669d14"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_12","ty":"ty::Ref::bf4d6d337c623aee"},{"is_zst":false,"mut":{"kind":"Not"},"name":"_13","ty":"ty::Ref::bf4d6d337c623aee"},{"is_zst":false,"mut":{"kind":"Not"},"name":"_14","ty":"ty::Adt::ba5184b53bc36a4d"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_15","ty":"ty::Ref::675b2a8049aad652"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_16","ty":"ty::Ref::c2a5dcbb98af2a61"},{"is_zst":false,"mut":{"kind":"Not"},"name":"_17","ty":"ty::Ref::c2a5dcbb98af2a61"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_18","ty":"ty::Ref::913e2ff5487f7787"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_19","ty":"ty::Ref::d0bd7bf253977b90"},{"is_zst":false,"mut":{"kind":"Not"},"name":"_20","ty":"ty::Ref::d0bd7bf253977b90"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_21","ty":"ty::Ref::d0bd7bf253977b90"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_22","ty":"ty::Ref::c2a5dcbb98af2a61"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_23","ty":"ty::Ref::c2a5dcbb98af2a61"}]},"name":"test/ca04d5a3::f","return_ty":"ty::u32","spread_arg":null},{"abi":{"kind":"Rust"},"args":[{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::Ref::953fce25114368d0"}],"body":{"blocks":[{"block":{"data":[{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::u32"}},"pos":"test.rs:26:18: 26:20","rhs":{"kind":"Use","usevar":{"data":{"data":[{"kind":"Deref"}],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::Ref::953fce25114368d0"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[{"kind":"Deref"}],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::Ref::953fce25114368d0"}},"pos":"test.rs:27:5: 27:11","rhs":{"kind":"Use","usevar":{"data":{"rendered":{"kind":"uint","size":4,"val":"0"},"ty":"ty::u32"},"kind":"Constant"}}}],"terminator":{"kind":"Return","pos":"test.rs:29:2: 29:2"}},"blockid":"bb0"}],"vars":[{"is_zst":false,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::u32"}]},"name":"test/ca04d5a3::side_effect","return_ty":"ty::u32","spread_arg":null},{"abi":{"kind":"Rust"},"args":[{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::Ref::bf4d6d337c623aee"}],"body":{"blocks":[{"block":{"data":[{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:328:23: 328:24 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:350:5: 350:35","slvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_2","ty":"ty::Ref::bf4d6d337c623aee"}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_2","ty":"ty::Ref::bf4d6d337c623aee"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:328:23: 328:24 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:350:5: 350:35","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::Ref::bf4d6d337c623aee"}},"kind":"Copy"}}},{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:328:26: 328:33 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:350:5: 350:35","slvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::FnPtr::07cd89921cc84271"}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::FnPtr::07cd89921cc84271"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:328:26: 328:33 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:350:5: 350:35","rhs":{"kind":"Cast","op":{"data":{"rendered":{"kind":"zst"},"ty":"ty::FnDef::b30b83d63051810b"},"kind":"Constant"},"ty":"ty::FnPtr::07cd89921cc84271","type":{"kind":"Pointer(ReifyFnPointer)"}}},{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:347:42: 347:59 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:350:5: 350:35","slvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_4","ty":"ty::FnPtr::bd6bee7b1f95b7bf"}},{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:347:57: 347:58 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:350:5: 350:35","slvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_5","ty":"ty::FnPtr::07cd89921cc84271"}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_5","ty":"ty::FnPtr::07cd89921cc84271"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:347:57: 347:58 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:350:5: 350:35","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::FnPtr::07cd89921cc84271"}},"kind":"Copy"}}}],"terminator":{"args":[{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_5","ty":"ty::FnPtr::07cd89921cc84271"}},"kind":"Move"}],"cleanup":null,"destination":[{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_4","ty":"ty::FnPtr::bd6bee7b1f95b7bf"}},"bb1"],"from_hir_call":true,"func":{"data":{"rendered":{"kind":"zst"},"ty":"ty::FnDef::788a983faed72be6"},"kind":"Constant"},"kind":"Call","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:347:42: 347:59 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:350:5: 350:35"}},"blockid":"bb0"},{"block":{"data":[{"kind":"StorageDead","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:347:58: 347:59 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:350:5: 350:35","sdvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_5","ty":"ty::FnPtr::07cd89921cc84271"}},{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:347:68: 347:85 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:350:5: 350:35","slvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_6","ty":"ty::Ref::4e8e6a61a1ceb622"}},{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:347:83: 347:84 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:350:5: 350:35","slvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_7","ty":"ty::Ref::bf4d6d337c623aee"}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_7","ty":"ty::Ref::bf4d6d337c623aee"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:347:83: 347:84 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:350:5: 350:35","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_2","ty":"ty::Ref::bf4d6d337c623aee"}},"kind":"Copy"}}}],"terminator":{"args":[{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_7","ty":"ty::Ref::bf4d6d337c623aee"}},"kind":"Move"}],"cleanup":null,"destination":[{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_6","ty":"ty::Ref::4e8e6a61a1ceb622"}},"bb2"],"from_hir_call":true,"func":{"data":{"rendered":{"kind":"zst"},"ty":"ty::FnDef::f532a620418c4246"},"kind":"Constant"},"kind":"Call","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:347:68: 347:85 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:350:5: 350:35"}},"blockid":"bb1"},{"block":{"data":[{"kind":"StorageDead","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:347:84: 347:85 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:350:5: 350:35","sdvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_7","ty":"ty::Ref::bf4d6d337c623aee"}},{"kind":"Deinit","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:347:18: 347:87 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:350:5: 350:35"},{"kind":"Assign","lhs":{"data":[{"field":0,"kind":"Field","ty":"ty::Ref::4e8e6a61a1ceb622"}],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::Adt::613f1953a8669d14"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:347:18: 347:87 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:350:5: 350:35","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_6","ty":"ty::Ref::4e8e6a61a1ceb622"}},"kind":"Move"}}},{"kind":"Assign","lhs":{"data":[{"field":1,"kind":"Field","ty":"ty::FnPtr::bd6bee7b1f95b7bf"}],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::Adt::613f1953a8669d14"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:347:18: 347:87 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:350:5: 350:35","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_4","ty":"ty::FnPtr::bd6bee7b1f95b7bf"}},"kind":"Move"}}},{"kind":"StorageDead","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:347:86: 347:87 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:350:5: 350:35","sdvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_6","ty":"ty::Ref::4e8e6a61a1ceb622"}},{"kind":"StorageDead","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:347:86: 347:87 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:350:5: 350:35","sdvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_4","ty":"ty::FnPtr::bd6bee7b1f95b7bf"}},{"kind":"StorageDead","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:328:33: 328:34 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:350:5: 350:35","sdvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::FnPtr::07cd89921cc84271"}},{"kind":"StorageDead","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:328:33: 328:34 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:350:5: 350:35","sdvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_2","ty":"ty::Ref::bf4d6d337c623aee"}}],"terminator":{"kind":"Return","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:329:10: 329:10 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:350:5: 350:35"}},"blockid":"bb2"}],"vars":[{"is_zst":false,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::Adt::613f1953a8669d14"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_2","ty":"ty::Ref::bf4d6d337c623aee"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::FnPtr::07cd89921cc84271"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_4","ty":"ty::FnPtr::bd6bee7b1f95b7bf"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_5","ty":"ty::FnPtr::07cd89921cc84271"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_6","ty":"ty::Ref::4e8e6a61a1ceb622"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_7","ty":"ty::Ref::bf4d6d337c623aee"}]},"name":"core/73237d41::fmt::{impl#3}::new_display::_inst47ac314b85a79c82[0]","return_ty":"ty::Adt::613f1953a8669d14","spread_arg":null},{"abi":{"kind":"Rust"},"args":[{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::u32"},{"is_zst":false,"mut":{"kind":"Not"},"name":"_2","ty":"ty::u32"}],"body":{"blocks":[{"block":{"data":[{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/num/uint_macros.rs:1162:38: 1162:42 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/num/mod.rs:921:5: 922:101","slvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::u32"}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::u32"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/num/uint_macros.rs:1162:38: 1162:42 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/num/mod.rs:921:5: 922:101","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::u32"}},"kind":"Copy"}}},{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/num/uint_macros.rs:1162:44: 1162:47 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/num/mod.rs:921:5: 922:101","slvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_4","ty":"ty::u32"}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_4","ty":"ty::u32"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/num/uint_macros.rs:1162:44: 1162:47 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/num/mod.rs:921:5: 922:101","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_2","ty":"ty::u32"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::u32"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/num/uint_macros.rs:1162:13: 1162:48 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/num/mod.rs:921:5: 922:101","rhs":{"L":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::u32"}},"kind":"Move"},"R":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_4","ty":"ty::u32"}},"kind":"Move"},"kind":"BinaryOp","op":{"kind":"Add"}}},{"kind":"StorageDead","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/num/uint_macros.rs:1162:47: 1162:48 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/num/mod.rs:921:5: 922:101","sdvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_4","ty":"ty::u32"}},{"kind":"StorageDead","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/num/uint_macros.rs:1162:47: 1162:48 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/num/mod.rs:921:5: 922:101","sdvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::u32"}}],"terminator":{"kind":"Return","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/num/uint_macros.rs:1163:10: 1163:10 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/num/mod.rs:921:5: 922:101"}},"blockid":"bb0"}],"vars":[{"is_zst":false,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::u32"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::u32"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_4","ty":"ty::u32"}]},"name":"core/73237d41::num::{impl#9}::wrapping_add","return_ty":"ty::u32","spread_arg":null},{"abi":{"kind":"Rust"},"args":[{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::Ref::675b2a8049aad652"},{"is_zst":false,"mut":{"kind":"Not"},"name":"_2","ty":"ty::Ref::913e2ff5487f7787"}],"body":{"blocks":[{"block":{"data":[{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:12: 400:70 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:12: 400:70","slvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::bool"}},{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:12: 400:37","slvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_4","ty":"ty::bool"}},{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:12: 400:24","slvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_5","ty":"ty::usize"}},{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:12: 400:24","slvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_6","ty":"ty::Ref::675b2a8049aad652"}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_6","ty":"ty::Ref::675b2a8049aad652"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:12: 400:24","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::Ref::675b2a8049aad652"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_5","ty":"ty::usize"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:12: 400:24","rhs":{"kind":"Len","lv":{"data":[{"kind":"Deref"}],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_6","ty":"ty::Ref::675b2a8049aad652"}}}},{"kind":"StorageDead","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:23: 400:24","sdvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_6","ty":"ty::Ref::675b2a8049aad652"}},{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:27: 400:37","slvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_7","ty":"ty::usize"}},{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:27: 400:37","slvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_8","ty":"ty::Ref::913e2ff5487f7787"}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_8","ty":"ty::Ref::913e2ff5487f7787"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:27: 400:37","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_2","ty":"ty::Ref::913e2ff5487f7787"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_7","ty":"ty::usize"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:27: 400:37","rhs":{"kind":"Len","lv":{"data":[{"kind":"Deref"}],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_8","ty":"ty::Ref::913e2ff5487f7787"}}}},{"kind":"StorageDead","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:36: 400:37","sdvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_8","ty":"ty::Ref::913e2ff5487f7787"}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_4","ty":"ty::bool"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:12: 400:37","rhs":{"L":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_5","ty":"ty::usize"}},"kind":"Move"},"R":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_7","ty":"ty::usize"}},"kind":"Move"},"kind":"BinaryOp","op":{"kind":"Lt"}}},{"kind":"StorageDead","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:36: 400:37","sdvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_7","ty":"ty::usize"}},{"kind":"StorageDead","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:36: 400:37","sdvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_5","ty":"ty::usize"}}],"terminator":{"discr":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_4","ty":"ty::bool"}},"kind":"Move"},"discr_span":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:12: 400:37","kind":"SwitchInt","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:12: 400:70","switch_ty":"ty::bool","targets":["bb2","bb1"],"values":["0"]}},"blockid":"bb0"},{"block":{"data":[{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::bool"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:12: 400:70","rhs":{"kind":"Use","usevar":{"data":{"rendered":{"kind":"bool","size":1,"val":"1"},"ty":"ty::bool"},"kind":"Constant"}}}],"terminator":{"kind":"Goto","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:12: 400:70","target":"bb3"}},"blockid":"bb1"},{"block":{"data":[{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:41: 400:70","slvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_9","ty":"ty::bool"}},{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:41: 400:53","slvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_10","ty":"ty::usize"}},{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:41: 400:53","slvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_11","ty":"ty::Ref::675b2a8049aad652"}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_11","ty":"ty::Ref::675b2a8049aad652"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:41: 400:53","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::Ref::675b2a8049aad652"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_10","ty":"ty::usize"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:41: 400:53","rhs":{"kind":"Len","lv":{"data":[{"kind":"Deref"}],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_11","ty":"ty::Ref::675b2a8049aad652"}}}},{"kind":"StorageDead","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:52: 400:53","sdvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_11","ty":"ty::Ref::675b2a8049aad652"}},{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:56: 400:70","slvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_12","ty":"ty::usize"}},{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:56: 400:66","slvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_13","ty":"ty::usize"}},{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:56: 400:66","slvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_14","ty":"ty::Ref::913e2ff5487f7787"}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_14","ty":"ty::Ref::913e2ff5487f7787"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:56: 400:66","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_2","ty":"ty::Ref::913e2ff5487f7787"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_13","ty":"ty::usize"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:56: 400:66","rhs":{"kind":"Len","lv":{"data":[{"kind":"Deref"}],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_14","ty":"ty::Ref::913e2ff5487f7787"}}}},{"kind":"StorageDead","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:65: 400:66","sdvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_14","ty":"ty::Ref::913e2ff5487f7787"}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_12","ty":"ty::usize"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:56: 400:70","rhs":{"L":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_13","ty":"ty::usize"}},"kind":"Move"},"R":{"data":{"rendered":{"kind":"usize","size":8,"val":"1"},"ty":"ty::usize"},"kind":"Constant"},"kind":"BinaryOp","op":{"kind":"Add"}}},{"kind":"StorageDead","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:69: 400:70","sdvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_13","ty":"ty::usize"}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_9","ty":"ty::bool"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:41: 400:70","rhs":{"L":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_10","ty":"ty::usize"}},"kind":"Move"},"R":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_12","ty":"ty::usize"}},"kind":"Move"},"kind":"BinaryOp","op":{"kind":"Gt"}}},{"kind":"StorageDead","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:69: 400:70","sdvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_12","ty":"ty::usize"}},{"kind":"StorageDead","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:69: 400:70","sdvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_10","ty":"ty::usize"}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::bool"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:12: 400:70","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_9","ty":"ty::bool"}},"kind":"Move"}}}],"terminator":{"kind":"Goto","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:12: 400:70","target":"bb3"}},"blockid":"bb2"},{"block":{"data":[{"kind":"StorageDead","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:69: 400:70","sdvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_9","ty":"ty::bool"}},{"kind":"StorageDead","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:69: 400:70","sdvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_4","ty":"ty::bool"}}],"terminator":{"discr":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::bool"}},"kind":"Move"},"discr_span":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:12: 400:70 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:12: 400:70","kind":"SwitchInt","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:12: 400:70 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:400:12: 400:70","switch_ty":"ty::bool","targets":["bb6","bb4"],"values":["0"]}},"blockid":"bb3"},{"block":{"data":[{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/panic.rs:57:9: 57:73 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:401:13: 401:35","slvar":{"is_zst":true,"mut":{"kind":"Not"},"name":"_15","ty":"ty::Never::7199a9b06188843c"}},{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/panic.rs:57:38: 57:72 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:401:13: 401:35","slvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_16","ty":"ty::Adt::ba5184b53bc36a4d"}},{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:401:20: 401:34","slvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_17","ty":"ty::Ref::675b2a8049aad652"}},{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:401:20: 401:34","slvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_18","ty":"ty::Ref::c2a5dcbb98af2a61"}},{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:401:20: 401:34","slvar":{"is_zst":false,"mut":{"kind":"Not"},"name":"_19","ty":"ty::Ref::c2a5dcbb98af2a61"}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_27","ty":"ty::Ref::c2a5dcbb98af2a61"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:401:20: 401:34","rhs":{"kind":"Use","usevar":{"data":{"rendered":{"def_id":"test/ca04d5a3286a7930::{{alloc}}[5]","kind":"static_ref"},"ty":"ty::Ref::c2a5dcbb98af2a61"},"kind":"Constant"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_19","ty":"ty::Ref::c2a5dcbb98af2a61"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:401:20: 401:34","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_27","ty":"ty::Ref::c2a5dcbb98af2a61"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_18","ty":"ty::Ref::c2a5dcbb98af2a61"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:401:20: 401:34","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_19","ty":"ty::Ref::c2a5dcbb98af2a61"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_17","ty":"ty::Ref::675b2a8049aad652"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:401:20: 401:34","rhs":{"kind":"Cast","op":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_18","ty":"ty::Ref::c2a5dcbb98af2a61"}},"kind":"Move"},"ty":"ty::Ref::675b2a8049aad652","type":{"kind":"Pointer(Unsize)"}}},{"kind":"StorageDead","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:401:33: 401:34","sdvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_18","ty":"ty::Ref::c2a5dcbb98af2a61"}},{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/panic.rs:57:38: 57:72 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:401:13: 401:35","slvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_20","ty":"ty::Ref::913e2ff5487f7787"}},{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/panic.rs:57:38: 57:72 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:401:13: 401:35","slvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_21","ty":"ty::Ref::d0bd7bf253977b90"}},{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/panic.rs:57:38: 57:72 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:401:13: 401:35","slvar":{"is_zst":false,"mut":{"kind":"Not"},"name":"_22","ty":"ty::Ref::d0bd7bf253977b90"}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_26","ty":"ty::Ref::d0bd7bf253977b90"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/panic.rs:57:38: 57:72 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:401:13: 401:35","rhs":{"kind":"Use","usevar":{"data":{"rendered":{"def_id":"test/ca04d5a3286a7930::{{alloc}}[2]","kind":"static_ref"},"ty":"ty::Ref::d0bd7bf253977b90"},"kind":"Constant"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_22","ty":"ty::Ref::d0bd7bf253977b90"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/panic.rs:57:38: 57:72 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:401:13: 401:35","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_26","ty":"ty::Ref::d0bd7bf253977b90"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_21","ty":"ty::Ref::d0bd7bf253977b90"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/panic.rs:57:38: 57:72 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:401:13: 401:35","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_22","ty":"ty::Ref::d0bd7bf253977b90"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_20","ty":"ty::Ref::913e2ff5487f7787"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/panic.rs:57:38: 57:72 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:401:13: 401:35","rhs":{"kind":"Cast","op":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_21","ty":"ty::Ref::d0bd7bf253977b90"}},"kind":"Move"},"ty":"ty::Ref::913e2ff5487f7787","type":{"kind":"Pointer(Unsize)"}}},{"kind":"StorageDead","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/panic.rs:57:71: 57:72 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:401:13: 401:35","sdvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_21","ty":"ty::Ref::d0bd7bf253977b90"}}],"terminator":{"args":[{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_17","ty":"ty::Ref::675b2a8049aad652"}},"kind":"Move"},{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_20","ty":"ty::Ref::913e2ff5487f7787"}},"kind":"Move"}],"cleanup":null,"destination":[{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_16","ty":"ty::Adt::ba5184b53bc36a4d"}},"bb5"],"from_hir_call":true,"func":{"data":{"rendered":{"kind":"zst"},"ty":"ty::FnDef::76afb566734aff77"},"kind":"Constant"},"kind":"Call","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/panic.rs:57:38: 57:72 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:401:13: 401:35"}},"blockid":"bb4"},{"block":{"data":[{"kind":"StorageDead","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/panic.rs:57:71: 57:72 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:401:13: 401:35","sdvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_20","ty":"ty::Ref::913e2ff5487f7787"}},{"kind":"StorageDead","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/panic.rs:57:71: 57:72 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:401:13: 401:35","sdvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_17","ty":"ty::Ref::675b2a8049aad652"}}],"terminator":{"args":[{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_16","ty":"ty::Adt::ba5184b53bc36a4d"}},"kind":"Move"}],"cleanup":null,"destination":null,"from_hir_call":true,"func":{"data":{"rendered":{"kind":"zst"},"ty":"ty::FnDef::906e67453a1bbab9"},"kind":"Constant"},"kind":"Call","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/panic.rs:57:9: 57:73 !/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:401:13: 401:35"}},"blockid":"bb5"},{"block":{"data":[{"kind":"StorageDead","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:402:9: 402:10","sdvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::bool"}},{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:403:21: 403:27","slvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_23","ty":"ty::Ref::675b2a8049aad652"}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_23","ty":"ty::Ref::675b2a8049aad652"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:403:21: 403:27","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::Ref::675b2a8049aad652"}},"kind":"Copy"}}},{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:403:34: 403:38","slvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_24","ty":"ty::Adt::45883e75bd5c5ca5"}},{"kind":"Deinit","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:403:34: 403:38"},{"kind":"SetDiscriminant","lvalue":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_24","ty":"ty::Adt::45883e75bd5c5ca5"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:403:34: 403:38","variant_index":0},{"kind":"StorageLive","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:403:40: 403:44","slvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_25","ty":"ty::Ref::913e2ff5487f7787"}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_25","ty":"ty::Ref::913e2ff5487f7787"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:403:40: 403:44","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_2","ty":"ty::Ref::913e2ff5487f7787"}},"kind":"Copy"}}},{"kind":"Deinit","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:403:9: 403:46"},{"kind":"Assign","lhs":{"data":[{"field":0,"kind":"Field","ty":"ty::Ref::675b2a8049aad652"}],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::Adt::ba5184b53bc36a4d"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:403:9: 403:46","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_23","ty":"ty::Ref::675b2a8049aad652"}},"kind":"Move"}}},{"kind":"Assign","lhs":{"data":[{"field":1,"kind":"Field","ty":"ty::Adt::45883e75bd5c5ca5"}],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::Adt::ba5184b53bc36a4d"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:403:9: 403:46","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_24","ty":"ty::Adt::45883e75bd5c5ca5"}},"kind":"Move"}}},{"kind":"Assign","lhs":{"data":[{"field":2,"kind":"Field","ty":"ty::Ref::913e2ff5487f7787"}],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::Adt::ba5184b53bc36a4d"}},"pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:403:9: 403:46","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_25","ty":"ty::Ref::913e2ff5487f7787"}},"kind":"Move"}}},{"kind":"StorageDead","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:403:45: 403:46","sdvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_25","ty":"ty::Ref::913e2ff5487f7787"}},{"kind":"StorageDead","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:403:45: 403:46","sdvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_24","ty":"ty::Adt::45883e75bd5c5ca5"}},{"kind":"StorageDead","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:403:45: 403:46","sdvar":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_23","ty":"ty::Ref::675b2a8049aad652"}}],"terminator":{"kind":"Return","pos":"/rustc/5e37043d63bfe2f3be8fa5a05b07d6c0dad5775d/library/core/src/fmt/mod.rs:404:6: 404:6"}},"blockid":"bb6"}],"vars":[{"is_zst":false,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::Adt::ba5184b53bc36a4d"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::bool"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_4","ty":"ty::bool"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_5","ty":"ty::usize"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_6","ty":"ty::Ref::675b2a8049aad652"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_7","ty":"ty::usize"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_8","ty":"ty::Ref::913e2ff5487f7787"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_9","ty":"ty::bool"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_10","ty":"ty::usize"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_11","ty":"ty::Ref::675b2a8049aad652"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_12","ty":"ty::usize"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_13","ty":"ty::usize"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_14","ty":"ty::Ref::913e2ff5487f7787"},{"is_zst":true,"mut":{"kind":"Not"},"name":"_15","ty":"ty::Never::7199a9b06188843c"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_16","ty":"ty::Adt::ba5184b53bc36a4d"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_17","ty":"ty::Ref::675b2a8049aad652"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_18","ty":"ty::Ref::c2a5dcbb98af2a61"},{"is_zst":false,"mut":{"kind":"Not"},"name":"_19","ty":"ty::Ref::c2a5dcbb98af2a61"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_20","ty":"ty::Ref::913e2ff5487f7787"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_21","ty":"ty::Ref::d0bd7bf253977b90"},{"is_zst":false,"mut":{"kind":"Not"},"name":"_22","ty":"ty::Ref::d0bd7bf253977b90"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_23","ty":"ty::Ref::675b2a8049aad652"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_24","ty":"ty::Adt::45883e75bd5c5ca5"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_25","ty":"ty::Ref::913e2ff5487f7787"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_26","ty":"ty::Ref::d0bd7bf253977b90"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_27","ty":"ty::Ref::c2a5dcbb98af2a61"}]},"name":"core/73237d41::fmt::{impl#4}::new_v1::_instbd21306cbe4f0b9b[0]","return_ty":"ty::Adt::ba5184b53bc36a4d","spread_arg":null}],"adts":[{"kind":{"kind":"Struct"},"name":"core/73237d41::fmt::Arguments::_adtbd21306cbe4f0b9b[0]","orig_def_id":"core/73237d41::fmt::Arguments","orig_substs":["nonty::Lifetime"],"repr_transparent":false,"size":48,"variants":[{"ctor_kind":null,"discr":{"index":0,"kind":"Relative"},"discr_value":null,"fields":[{"name":"core/73237d41::fmt::Arguments::pieces","ty":"ty::Ref::675b2a8049aad652"},{"name":"core/73237d41::fmt::Arguments::fmt","ty":"ty::Adt::45883e75bd5c5ca5"},{"name":"core/73237d41::fmt::Arguments::args","ty":"ty::Ref::913e2ff5487f7787"}],"inhabited":true,"name":"core/73237d41::fmt::Arguments"}]},{"kind":{"kind":"Struct"},"name":"core/73237d41::fmt::ArgumentV1::_adtbd21306cbe4f0b9b[0]","orig_def_id":"core/73237d41::fmt::ArgumentV1","orig_substs":["nonty::Lifetime"],"repr_transparent":false,"size":16,"variants":[{"ctor_kind":null,"discr":{"index":0,"kind":"Relative"},"discr_value":null,"fields":[{"name":"core/73237d41::fmt::ArgumentV1::value","ty":"ty::Ref::4e8e6a61a1ceb622"},{"name":"core/73237d41::fmt::ArgumentV1::formatter","ty":"ty::FnPtr::bd6bee7b1f95b7bf"}],"inhabited":true,"name":"core/73237d41::fmt::ArgumentV1"}]},{"kind":{"kind":"Struct"},"name":"core/73237d41::fmt::rt::v1::Argument::_adtb7803c2264daf0ec[0]","orig_def_id":"core/73237d41::fmt::rt::v1::Argument","orig_substs":[],"repr_transparent":false,"size":56,"variants":[{"ctor_kind":null,"discr":{"index":0,"kind":"Relative"},"discr_value":null,"fields":[{"name":"core/73237d41::fmt::rt::v1::Argument::position","ty":"ty::usize"},{"name":"core/73237d41::fmt::rt::v1::Argument::format","ty":"ty::Adt::ed8948c5d0b3a39f"}],"inhabited":true,"name":"core/73237d41::fmt::rt::v1::Argument"}]},{"kind":{"kind":"Struct"},"name":"core/73237d41::fmt::Formatter::_adtbd21306cbe4f0b9b[0]","orig_def_id":"core/73237d41::fmt::Formatter","orig_substs":["nonty::Lifetime"],"repr_transparent":false,"size":64,"variants":[{"ctor_kind":null,"discr":{"index":0,"kind":"Relative"},"discr_value":null,"fields":[{"name":"core/73237d41::fmt::Formatter::flags","ty":"ty::u32"},{"name":"core/73237d41::fmt::Formatter::fill","ty":"ty::char"},{"name":"core/73237d41::fmt::Formatter::align","ty":"ty::Adt::c4745d1cf6b33a46"},{"name":"core/73237d41::fmt::Formatter::width","ty":"ty::Adt::ba42a94c73933868"},{"name":"core/73237d41::fmt::Formatter::precision","ty":"ty::Adt::ba42a94c73933868"},{"name":"core/73237d41::fmt::Formatter::buf","ty":"ty::Ref::0cd866b4eb1c792b"}],"inhabited":true,"name":"core/73237d41::fmt::Formatter"}]},{"kind":{"discr_ty":"ty::isize","kind":"Enum"},"name":"core/73237d41::option::Option::_adta9d03177c2d4a99f[0]","orig_def_id":"core/73237d41::option::Option","orig_substs":["ty::Ref::5f3877d5405402c5"],"repr_transparent":false,"size":16,"variants":[{"ctor_kind":{"kind":"Const"},"discr":{"index":0,"kind":"Relative"},"discr_value":"0","fields":[],"inhabited":true,"name":"core/73237d41::option::Option::None"},{"ctor_kind":{"kind":"Fn"},"discr":{"index":1,"kind":"Relative"},"discr_value":"1","fields":[{"name":"core/73237d41::option::Option::Some::0","ty":"ty::Ref::5f3877d5405402c5"}],"inhabited":true,"name":"core/73237d41::option::Option::Some"}]},{"kind":{"discr_ty":"ty::isize","kind":"Enum"},"name":"core/73237d41::result::Result::_adt0f6d5765b4e92fb6[0]","orig_def_id":"core/73237d41::result::Result","orig_substs":["ty::Tuple::e93222e871854c41","ty::Adt::8d47b311e48cbf8f"],"repr_transparent":false,"size":1,"variants":[{"ctor_kind":{"kind":"Fn"},"discr":{"index":0,"kind":"Relative"},"discr_value":"0","fields":[{"name":"core/73237d41::result::Result::Ok::0","ty":"ty::Tuple::e93222e871854c41"}],"inhabited":true,"name":"core/73237d41::result::Result::Ok"},{"ctor_kind":{"kind":"Fn"},"discr":{"index":1,"kind":"Relative"},"discr_value":"1","fields":[{"name":"core/73237d41::result::Result::Err::0","ty":"ty::Adt::8d47b311e48cbf8f"}],"inhabited":true,"name":"core/73237d41::result::Result::Err"}]},{"kind":{"kind":"Struct"},"name":"core/73237d41::fmt::Error::_adtb7803c2264daf0ec[0]","orig_def_id":"core/73237d41::fmt::Error","orig_substs":[],"repr_transparent":false,"size":0,"variants":[{"ctor_kind":{"kind":"Const"},"discr":{"index":0,"kind":"Relative"},"discr_value":null,"fields":[],"inhabited":true,"name":"core/73237d41::fmt::Error"}]},{"kind":{"discr_ty":"ty::isize","kind":"Enum"},"name":"core/73237d41::option::Option::_adtaffa7a8b1157c078[0]","orig_def_id":"core/73237d41::option::Option","orig_substs":["ty::usize"],"repr_transparent":false,"size":16,"variants":[{"ctor_kind":{"kind":"Const"},"discr":{"index":0,"kind":"Relative"},"discr_value":"0","fields":[],"inhabited":true,"name":"core/73237d41::option::Option::None"},{"ctor_kind":{"kind":"Fn"},"discr":{"index":1,"kind":"Relative"},"discr_value":"1","fields":[{"name":"core/73237d41::option::Option::Some::0","ty":"ty::usize"}],"inhabited":true,"name":"core/73237d41::option::Option::Some"}]},{"kind":{"kind":"Struct"},"name":"core/73237d41::fmt::rt::v1::FormatSpec::_adtb7803c2264daf0ec[0]","orig_def_id":"core/73237d41::fmt::rt::v1::FormatSpec","orig_substs":[],"repr_transparent":false,"size":48,"variants":[{"ctor_kind":null,"discr":{"index":0,"kind":"Relative"},"discr_value":null,"fields":[{"name":"core/73237d41::fmt::rt::v1::FormatSpec::fill","ty":"ty::char"},{"name":"core/73237d41::fmt::rt::v1::FormatSpec::align","ty":"ty::Adt::c4745d1cf6b33a46"},{"name":"core/73237d41::fmt::rt::v1::FormatSpec::flags","ty":"ty::u32"},{"name":"core/73237d41::fmt::rt::v1::FormatSpec::precision","ty":"ty::Adt::389b970f3565f26b"},{"name":"core/73237d41::fmt::rt::v1::FormatSpec::width","ty":"ty::Adt::389b970f3565f26b"}],"inhabited":true,"name":"core/73237d41::fmt::rt::v1::FormatSpec"}]},{"kind":{"discr_ty":"ty::isize","kind":"Enum"},"name":"core/73237d41::fmt::rt::v1::Alignment::_adtb7803c2264daf0ec[0]","orig_def_id":"core/73237d41::fmt::rt::v1::Alignment","orig_substs":[],"repr_transparent":false,"size":1,"variants":[{"ctor_kind":{"kind":"Const"},"discr":{"index":0,"kind":"Relative"},"discr_value":"0","fields":[],"inhabited":true,"name":"core/73237d41::fmt::rt::v1::Alignment::Left"},{"ctor_kind":{"kind":"Const"},"discr":{"index":1,"kind":"Relative"},"discr_value":"1","fields":[],"inhabited":true,"name":"core/73237d41::fmt::rt::v1::Alignment::Right"},{"ctor_kind":{"kind":"Const"},"discr":{"index":2,"kind":"Relative"},"discr_value":"2","fields":[],"inhabited":true,"name":"core/73237d41::fmt::rt::v1::Alignment::Center"},{"ctor_kind":{"kind":"Const"},"discr":{"index":3,"kind":"Relative"},"discr_value":"3","fields":[],"inhabited":true,"name":"core/73237d41::fmt::rt::v1::Alignment::Unknown"}]},{"kind":{"discr_ty":"ty::isize","kind":"Enum"},"name":"core/73237d41::fmt::rt::v1::Count::_adtb7803c2264daf0ec[0]","orig_def_id":"core/73237d41::fmt::rt::v1::Count","orig_substs":[],"repr_transparent":false,"size":16,"variants":[{"ctor_kind":{"kind":"Fn"},"discr":{"index":0,"kind":"Relative"},"discr_value":"0","fields":[{"name":"core/73237d41::fmt::rt::v1::Count::Is::0","ty":"ty::usize"}],"inhabited":true,"name":"core/73237d41::fmt::rt::v1::Count::Is"},{"ctor_kind":{"kind":"Fn"},"discr":{"index":1,"kind":"Relative"},"discr_value":"1","fields":[{"name":"core/73237d41::fmt::rt::v1::Count::Param::0","ty":"ty::usize"}],"inhabited":true,"name":"core/73237d41::fmt::rt::v1::Count::Param"},{"ctor_kind":{"kind":"Const"},"discr":{"index":2,"kind":"Relative"},"discr_value":"2","fields":[],"inhabited":true,"name":"core/73237d41::fmt::rt::v1::Count::Implied"}]}],"statics":[{"kind":"constant","mutable":false,"name":"test/ca04d5a3286a7930::{{alloc}}[0]","rendered":{"element_ty":"ty::Ref::fb1cfdc5725cd03b","elements":[{"kind":"str","val":[110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,58,32]}],"kind":"array"},"ty":"ty::Array::e5bd840a2dafa04a"},{"kind":"constant","mutable":false,"name":"test/ca04d5a3286a7930::{{alloc}}[1]","rendered":{"element_ty":"ty::Ref::fb1cfdc5725cd03b","elements":[{"kind":"str","val":[112,32,115,104,111,117,108,100,32,98,101,32,111,118,101,114,114,105,100,101,110]}],"kind":"array"},"ty":"ty::Array::e5bd840a2dafa04a"},{"kind":"constant","mutable":false,"name":"test/ca04d5a3286a7930::{{alloc}}[2]","rendered":{"element_ty":"ty::Adt::613f1953a8669d14","elements":[],"kind":"array"},"ty":"ty::Array::0e1a52ee2b2d3e97"},{"kind":"constant","mutable":false,"name":"test/ca04d5a3286a7930::{{alloc}}[3]","rendered":{"element_ty":"ty::Ref::fb1cfdc5725cd03b","elements":[{"kind":"str","val":[110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,58,32]}],"kind":"array"},"ty":"ty::Array::e5bd840a2dafa04a"},{"kind":"constant","mutable":false,"name":"test/ca04d5a3286a7930::{{alloc}}[4]","rendered":{"element_ty":"ty::Ref::fb1cfdc5725cd03b","elements":[{"kind":"str","val":[102,32,115,104,111,117,108,100,32,98,101,32,111,118,101,114,114,105,100,100,101,110]}],"kind":"array"},"ty":"ty::Array::e5bd840a2dafa04a"},{"kind":"constant","mutable":false,"name":"test/ca04d5a3286a7930::{{alloc}}[5]","rendered":{"element_ty":"ty::Ref::fb1cfdc5725cd03b","elements":[{"kind":"str","val":[105,110,118,97,108,105,100,32,97,114,103,115]}],"kind":"array"},"ty":"ty::Array::e5bd840a2dafa04a"}],"vtables":[],"traits":[{"items":[{"item_id":"core/73237d41::fmt::Write::write_str","kind":"Method","signature":{"abi":{"kind":"Rust"},"inputs":["ty::Ref::0cd866b4eb1c792b","ty::Ref::fb1cfdc5725cd03b"],"output":"ty::Adt::30ed5848b4f625b6"}},{"item_id":"core/73237d41::fmt::Write::write_char","kind":"Method","signature":{"abi":{"kind":"Rust"},"inputs":["ty::Ref::0cd866b4eb1c792b","ty::char"],"output":"ty::Adt::30ed5848b4f625b6"}},{"item_id":"core/73237d41::fmt::Write::write_fmt","kind":"Method","signature":{"abi":{"kind":"Rust"},"inputs":["ty::Ref::0cd866b4eb1c792b","ty::Adt::ba5184b53bc36a4d"],"output":"ty::Adt::30ed5848b4f625b6"}}],"name":"core/73237d41::fmt::Write::_trait3e5b0354795cc029[0]"}],"intrinsics":[{"inst":{"def_id":"test/ca04d5a3::g","kind":"Item","substs":[]},"name":"test/ca04d5a3::g"},{"inst":{"def_id":"test/ca04d5a3::h","kind":"Item","substs":[]},"name":"test/ca04d5a3::h"},{"inst":{"def_id":"test/ca04d5a3::q","kind":"Item","substs":[]},"name":"test/ca04d5a3::q"},{"inst":{"def_id":"test/ca04d5a3::foo","kind":"Item","substs":[]},"name":"test/ca04d5a3::foo"},{"inst":{"def_id":"test/ca04d5a3::g2","kind":"Item","substs":[]},"name":"test/ca04d5a3::g2"},{"inst":{"def_id":"test/ca04d5a3::p","kind":"Item","substs":[]},"name":"test/ca04d5a3::p"},{"inst":{"def_id":"test/ca04d5a3::f","kind":"Item","substs":[]},"name":"test/ca04d5a3::f"},{"inst":{"def_id":"test/ca04d5a3::side_effect","kind":"Item","substs":[]},"name":"test/ca04d5a3::side_effect"},{"inst":{"def_id":"core/73237d41::panicking::panic_fmt","kind":"Item","substs":[]},"name":"core/73237d41::panicking::panic_fmt"},{"inst":{"def_id":"core/73237d41::fmt::{impl#3}::new_display","kind":"Item","substs":["nonty::Lifetime","ty::Adt::ba5184b53bc36a4d"]},"name":"core/73237d41::fmt::{impl#3}::new_display::_inst47ac314b85a79c82[0]"},{"inst":{"def_id":"core/73237d41::num::{impl#9}::wrapping_add","kind":"Item","substs":[]},"name":"core/73237d41::num::{impl#9}::wrapping_add"},{"inst":{"def_id":"core/73237d41::fmt::{impl#4}::new_v1","kind":"Item","substs":["nonty::Lifetime"]},"name":"core/73237d41::fmt::{impl#4}::new_v1::_instbd21306cbe4f0b9b[0]"},{"inst":{"def_id":"core/73237d41::intrinsics::{extern#0}::transmute","kind":"Intrinsic","substs":["ty::Ref::bf4d6d337c623aee","ty::Ref::4e8e6a61a1ceb622"]},"name":"core/73237d41::intrinsics::{extern#0}::transmute::_inst79e1dbb43599bccf[0]"},{"inst":{"def_id":"core/73237d41::intrinsics::{extern#0}::transmute","kind":"Intrinsic","substs":["ty::FnPtr::07cd89921cc84271","ty::FnPtr::bd6bee7b1f95b7bf"]},"name":"core/73237d41::intrinsics::{extern#0}::transmute::_inst82602b44b15ef1cb[0]"},{"inst":{"def_id":"core/73237d41::fmt::{impl#7}::fmt","kind":"Item","substs":["nonty::Lifetime"]},"name":"core/73237d41::fmt::{impl#7}::fmt::_instbd21306cbe4f0b9b[0]"}],"tys":[{"name":"ty::u32","ty":{"kind":"Uint","uintkind":{"kind":"U32"}}},{"name":"ty::FnDef::95d37a33656fd654","ty":{"defid":"test/ca04d5a3::f","kind":"FnDef"}},{"name":"ty::FnDef::f55acdef755f1aaa","ty":{"defid":"core/73237d41::num::{impl#9}::wrapping_add","kind":"FnDef"}},{"name":"ty::Ref::e028c0f25e8b6323","ty":{"kind":"Ref","mutability":{"kind":"Not"},"ty":"ty::u32"}},{"name":"ty::FnDef::d8f5e5d50376e8aa","ty":{"defid":"test/ca04d5a3::p","kind":"FnDef"}},{"name":"ty::Ref::953fce25114368d0","ty":{"kind":"Ref","mutability":{"kind":"Mut"},"ty":"ty::u32"}},{"name":"ty::FnDef::b153432b719d377c","ty":{"defid":"test/ca04d5a3::side_effect","kind":"FnDef"}},{"name":"ty::Never::7199a9b06188843c","ty":{"kind":"Never"}},{"name":"ty::Adt::ba5184b53bc36a4d","ty":{"kind":"Adt","name":"core/73237d41::fmt::Arguments::_adtbd21306cbe4f0b9b[0]","orig_def_id":"core/73237d41::fmt::Arguments","substs":["nonty::Lifetime"]}},{"name":"ty::str","ty":{"kind":"Str"}},{"name":"ty::Ref::fb1cfdc5725cd03b","ty":{"kind":"Ref","mutability":{"kind":"Not"},"ty":"ty::str"}},{"name":"ty::Slice::563a94fdd2fd2b33","ty":{"kind":"Slice","ty":"ty::Ref::fb1cfdc5725cd03b"}},{"name":"ty::Ref::675b2a8049aad652","ty":{"kind":"Ref","mutability":{"kind":"Not"},"ty":"ty::Slice::563a94fdd2fd2b33"}},{"name":"ty::usize","ty":{"kind":"Uint","uintkind":{"kind":"Usize"}}},{"name":"ty::Array::e5bd840a2dafa04a","ty":{"kind":"Array","size":{"rendered":{"kind":"usize","size":8,"val":"1"},"ty":"ty::usize"},"ty":"ty::Ref::fb1cfdc5725cd03b"}},{"name":"ty::Ref::c2a5dcbb98af2a61","ty":{"kind":"Ref","mutability":{"kind":"Not"},"ty":"ty::Array::e5bd840a2dafa04a"}},{"name":"ty::Adt::613f1953a8669d14","ty":{"kind":"Adt","name":"core/73237d41::fmt::ArgumentV1::_adtbd21306cbe4f0b9b[0]","orig_def_id":"core/73237d41::fmt::ArgumentV1","substs":["nonty::Lifetime"]}},{"name":"ty::Slice::818a2c6d5f962f99","ty":{"kind":"Slice","ty":"ty::Adt::613f1953a8669d14"}},{"name":"ty::Ref::913e2ff5487f7787","ty":{"kind":"Ref","mutability":{"kind":"Not"},"ty":"ty::Slice::818a2c6d5f962f99"}},{"name":"ty::Array::6167cd8fdeb01e06","ty":{"kind":"Array","size":{"rendered":{"kind":"usize","size":8,"val":"1"},"ty":"ty::usize"},"ty":"ty::Adt::613f1953a8669d14"}},{"name":"ty::Ref::41f3f8f95d02c3e9","ty":{"kind":"Ref","mutability":{"kind":"Not"},"ty":"ty::Array::6167cd8fdeb01e06"}},{"name":"ty::Ref::bf4d6d337c623aee","ty":{"kind":"Ref","mutability":{"kind":"Not"},"ty":"ty::Adt::ba5184b53bc36a4d"}},{"name":"ty::Array::0e1a52ee2b2d3e97","ty":{"kind":"Array","size":{"rendered":{"kind":"usize","size":8,"val":"0"},"ty":"ty::usize"},"ty":"ty::Adt::613f1953a8669d14"}},{"name":"ty::Ref::d0bd7bf253977b90","ty":{"kind":"Ref","mutability":{"kind":"Not"},"ty":"ty::Array::0e1a52ee2b2d3e97"}},{"name":"ty::FnDef::76afb566734aff77","ty":{"defid":"core/73237d41::fmt::{impl#4}::new_v1::_instbd21306cbe4f0b9b[0]","kind":"FnDef"}},{"name":"ty::FnDef::72bf0f6662028c6a","ty":{"defid":"core/73237d41::fmt::{impl#3}::new_display::_inst47ac314b85a79c82[0]","kind":"FnDef"}},{"name":"ty::FnDef::906e67453a1bbab9","ty":{"defid":"core/73237d41::panicking::panic_fmt","kind":"FnDef"}},{"name":"ty::Adt::afb4c9f4ce8cdadf","ty":{"kind":"Adt","name":"core/73237d41::fmt::rt::v1::Argument::_adtb7803c2264daf0ec[0]","orig_def_id":"core/73237d41::fmt::rt::v1::Argument","substs":[]}},{"name":"ty::Slice::26b8a0a5e2b22aa9","ty":{"kind":"Slice","ty":"ty::Adt::afb4c9f4ce8cdadf"}},{"name":"ty::Ref::5f3877d5405402c5","ty":{"kind":"Ref","mutability":{"kind":"Not"},"ty":"ty::Slice::26b8a0a5e2b22aa9"}},{"name":"ty::Adt::45883e75bd5c5ca5","ty":{"kind":"Adt","name":"core/73237d41::option::Option::_adta9d03177c2d4a99f[0]","orig_def_id":"core/73237d41::option::Option","substs":["ty::Ref::5f3877d5405402c5"]}},{"name":"ty::Foreign::66d9923797cfc204","ty":{"kind":"Foreign"}},{"name":"ty::Ref::4e8e6a61a1ceb622","ty":{"kind":"Ref","mutability":{"kind":"Not"},"ty":"ty::Foreign::66d9923797cfc204"}},{"name":"ty::Adt::ad5a554022507816","ty":{"kind":"Adt","name":"core/73237d41::fmt::Formatter::_adtbd21306cbe4f0b9b[0]","orig_def_id":"core/73237d41::fmt::Formatter","substs":["nonty::Lifetime"]}},{"name":"ty::Ref::7984c7d8fa40d865","ty":{"kind":"Ref","mutability":{"kind":"Mut"},"ty":"ty::Adt::ad5a554022507816"}},{"name":"ty::Tuple::e93222e871854c41","ty":{"kind":"Tuple","tys":[]}},{"name":"ty::Adt::8d47b311e48cbf8f","ty":{"kind":"Adt","name":"core/73237d41::fmt::Error::_adtb7803c2264daf0ec[0]","orig_def_id":"core/73237d41::fmt::Error","substs":[]}},{"name":"ty::Adt::30ed5848b4f625b6","ty":{"kind":"Adt","name":"core/73237d41::result::Result::_adt0f6d5765b4e92fb6[0]","orig_def_id":"core/73237d41::result::Result","substs":["ty::Tuple::e93222e871854c41","ty::Adt::8d47b311e48cbf8f"]}},{"name":"ty::FnPtr::bd6bee7b1f95b7bf","ty":{"kind":"FnPtr","signature":{"abi":{"kind":"Rust"},"inputs":["ty::Ref::4e8e6a61a1ceb622","ty::Ref::7984c7d8fa40d865"],"output":"ty::Adt::30ed5848b4f625b6"}}},{"name":"ty::FnPtr::07cd89921cc84271","ty":{"kind":"FnPtr","signature":{"abi":{"kind":"Rust"},"inputs":["ty::Ref::bf4d6d337c623aee","ty::Ref::7984c7d8fa40d865"],"output":"ty::Adt::30ed5848b4f625b6"}}},{"name":"ty::FnDef::b30b83d63051810b","ty":{"defid":"core/73237d41::fmt::{impl#7}::fmt::_instbd21306cbe4f0b9b[0]","kind":"FnDef"}},{"name":"ty::FnDef::788a983faed72be6","ty":{"defid":"core/73237d41::intrinsics::{extern#0}::transmute::_inst82602b44b15ef1cb[0]","kind":"FnDef"}},{"name":"ty::FnDef::f532a620418c4246","ty":{"defid":"core/73237d41::intrinsics::{extern#0}::transmute::_inst79e1dbb43599bccf[0]","kind":"FnDef"}},{"name":"ty::bool","ty":{"kind":"Bool"}},{"name":"ty::Adt::ed8948c5d0b3a39f","ty":{"kind":"Adt","name":"core/73237d41::fmt::rt::v1::FormatSpec::_adtb7803c2264daf0ec[0]","orig_def_id":"core/73237d41::fmt::rt::v1::FormatSpec","substs":[]}},{"name":"ty::char","ty":{"kind":"Char"}},{"name":"ty::Adt::c4745d1cf6b33a46","ty":{"kind":"Adt","name":"core/73237d41::fmt::rt::v1::Alignment::_adtb7803c2264daf0ec[0]","orig_def_id":"core/73237d41::fmt::rt::v1::Alignment","substs":[]}},{"name":"ty::Adt::ba42a94c73933868","ty":{"kind":"Adt","name":"core/73237d41::option::Option::_adtaffa7a8b1157c078[0]","orig_def_id":"core/73237d41::option::Option","substs":["ty::usize"]}},{"name":"ty::Dynamic::08a22e65af9638be","ty":{"kind":"Dynamic","predicates":[{"kind":"Trait","substs":[],"trait":"core/73237d41::fmt::Write"}],"trait_id":"core/73237d41::fmt::Write::_trait3e5b0354795cc029[0]"}},{"name":"ty::Ref::0cd866b4eb1c792b","ty":{"kind":"Ref","mutability":{"kind":"Mut"},"ty":"ty::Dynamic::08a22e65af9638be"}},{"name":"ty::isize","ty":{"intkind":{"kind":"Isize"},"kind":"Int"}},{"name":"ty::Adt::389b970f3565f26b","ty":{"kind":"Adt","name":"core/73237d41::fmt::rt::v1::Count::_adtb7803c2264daf0ec[0]","orig_def_id":"core/73237d41::fmt::rt::v1::Count","substs":[]}}],"roots":["test/ca04d5a3::f","test/ca04d5a3::g","test/ca04d5a3::h","test/ca04d5a3::g2","test/ca04d5a3::p","test/ca04d5a3::q","test/ca04d5a3::side_effect","test/ca04d5a3::foo"]} \ No newline at end of file diff --git a/intTests/test_mir_unsafe_assume_spec/test.rs b/intTests/test_mir_unsafe_assume_spec/test.rs new file mode 100644 index 0000000000..062ad042ed --- /dev/null +++ b/intTests/test_mir_unsafe_assume_spec/test.rs @@ -0,0 +1,35 @@ +pub fn f(_x: u32) -> u32 { + unimplemented!("f should be overridden"); +} + +pub fn g(x: u32) -> u32 { + f(x).wrapping_add(1) +} + +pub fn h(x: u32) -> u32 { + x.wrapping_add(1) +} + +pub fn g2() -> u32 { + f(2).wrapping_add(1) +} + +pub fn p(_x: &u32, _y: &u32) -> u32 { + unimplemented!("p should be overriden"); +} + +pub fn q(x: &u32, y: &u32) -> u32 { + p(x, y) +} + +pub fn side_effect(a: &mut u32) -> u32 { + let v: u32 = *a; + *a = 0; + v +} + +pub fn foo(x: u32) -> u32 { + let mut b: u32 = x; + side_effect(&mut b); + side_effect(&mut b) +} diff --git a/intTests/test_mir_unsafe_assume_spec/test.saw b/intTests/test_mir_unsafe_assume_spec/test.saw new file mode 100644 index 0000000000..c37e1d645a --- /dev/null +++ b/intTests/test_mir_unsafe_assume_spec/test.saw @@ -0,0 +1,158 @@ +enable_experimental; + +let f_generic_spec (x : Term) = do { + mir_execute_func [mir_term x]; + + mir_return (mir_term x); +}; + +let f_spec = do { + x <- mir_fresh_var "x" mir_u32; + f_generic_spec x; +}; + +let f2_spec = do { + let x = {{ 2 : [32] }}; + f_generic_spec x; +}; + +let f3_spec = do { + let x = {{ 3 : [32] }}; + f_generic_spec x; +}; + +let g_spec = do { + x <- mir_fresh_var "x" mir_u32; + + mir_execute_func [mir_term x]; + + mir_return (mir_term {{ x + 1 }}); +}; + +let g2_spec = do { + mir_execute_func []; + + mir_return (mir_term {{ 3 : [32] }}); +}; + +let h_spec = g_spec; + +let p_spec_1 = do { + x_ptr <- mir_alloc mir_u32; + x <- mir_fresh_var "x" mir_u32; + mir_points_to x_ptr (mir_term x); + + y_ptr <- mir_alloc mir_u32; + y <- mir_fresh_var "y" mir_u32; + mir_points_to y_ptr (mir_term y); + + mir_execute_func [x_ptr, y_ptr]; + + mir_return (mir_term {{ x + y }}); +}; + +let p_spec_2 = do { + x_ptr <- mir_alloc mir_u32; + x <- mir_fresh_var "x" mir_u32; + mir_points_to x_ptr (mir_term x); + + mir_execute_func [x_ptr, x_ptr]; + + mir_return (mir_term {{ 2 * x }}); +}; + +let q_spec = p_spec_1; + +let side_spec_1 = do { + a_ptr <- mir_alloc_mut mir_u32; + a <- mir_fresh_var "a" mir_u32; + mir_points_to a_ptr (mir_term a); + + mir_execute_func [a_ptr]; + + mir_points_to a_ptr (mir_term {{ 0 : [32] }}); + mir_return (mir_term a); +}; + +let side_spec_2 = do { + a_ptr <- mir_alloc_mut mir_u32; + a <- mir_fresh_var "a" mir_u32; + mir_points_to a_ptr (mir_term a); + + mir_execute_func [a_ptr]; + + mir_return (mir_term a); +}; + +let foo_spec = do { + x <- mir_fresh_var "x" mir_u32; + + mir_execute_func [mir_term x]; + + mir_return (mir_term {{ x }}); +}; + +m <- mir_load_module "test.linked-mir.json"; + +//////////// +// Basics // +//////////// + +f_ov <- mir_unsafe_assume_spec m "test::f" f_spec; +f2_ov <- mir_unsafe_assume_spec m "test::f" f2_spec; +f3_ov <- mir_unsafe_assume_spec m "test::f" f3_spec; + +// `g` should fail without an override for `f`... +fails ( + mir_verify m "test::g" [] false g_spec z3 +); +// ...but should succeed with an `f` override. +mir_verify m "test::g" [f_ov] false g_spec z3; +// `h` never calls `f`, but it's still fine to redundantly pass an `f` override +mir_verify m "test::h" [f_ov] false h_spec z3; + +// `g2` will succeed with both a generic `f` override as well as a specialized +// one where the argument and result values are concrete. +mir_verify m "test::g2" [f_ov] false g2_spec z3; +mir_verify m "test::g2" [f2_ov] false g2_spec z3; +mir_verify m "test::g2" [f_ov, f2_ov] false g2_spec z3; + +// Overrides that fail to match. +fails ( + mir_verify m "test::g" [f3_ov] false g_spec z3 +); +fails ( + mir_verify m "test::g2" [f3_ov] false g2_spec z3 +); + +////////////// +// Pointers // +////////////// + +p_ov_1 <- mir_unsafe_assume_spec m "test::p" p_spec_1; +p_ov_2 <- mir_unsafe_assume_spec m "test::p" p_spec_2; + +mir_verify m "test::q" [p_ov_1] false q_spec z3; +fails ( + mir_verify m "test::q" [p_ov_2] false q_spec z3 +); + +/////////////////////// +// Avoid unsoundness // +/////////////////////// + +// https://github.com/GaloisInc/saw-script/issues/30 + +side_ov_1 <- mir_verify m "test::side_effect" [] false side_spec_1 z3; +side_ov_2 <- mir_verify m "test::side_effect" [] false side_spec_2 z3; + +fails ( + mir_verify m "test::foo" [side_ov_1] false foo_spec z3 +); +// TODO: This should not verify, as side_spec_2 underspecifies the mutable +// allocation `a_ptr`. We need to implement a check that catches this. +// fails ( +// mir_verify m "test::foo" [side_ov_2] false foo_spec z3 +// ); + +// TODO: Add similar tests for mutable statics. diff --git a/intTests/test_mir_unsafe_assume_spec/test.sh b/intTests/test_mir_unsafe_assume_spec/test.sh new file mode 100755 index 0000000000..2315cc233c --- /dev/null +++ b/intTests/test_mir_unsafe_assume_spec/test.sh @@ -0,0 +1,3 @@ +set -e + +$SAW test.saw diff --git a/saw-remote-api/CHANGELOG.md b/saw-remote-api/CHANGELOG.md index a7e3531764..17f8f73d2e 100644 --- a/saw-remote-api/CHANGELOG.md +++ b/saw-remote-api/CHANGELOG.md @@ -8,6 +8,8 @@ * The `SAW/MIR/verify` command performs verification of a MIR function. * The `SAW/MIR/find ADT` command looks up an algebraic data type (ADT) name in a MIR module. + * The `SAW/MIR/assume` command assumes a specification for a MIR function + without performing any verification. See the [remote API documentation](https://github.com/GaloisInc/saw-script/blob/master/saw-remote-api/docs/SAW.rst#sawmirload-module-command) diff --git a/saw-remote-api/python/CHANGELOG.md b/saw-remote-api/python/CHANGELOG.md index 6a25dcc327..bb6f462977 100644 --- a/saw-remote-api/python/CHANGELOG.md +++ b/saw-remote-api/python/CHANGELOG.md @@ -8,7 +8,8 @@ * The `mir_verify` function performs verification of a MIR function. * The `mir_find_adt` function looks up an algebraic data type (ADT) name in a MIR module. - + * The `mir_assume` function assumes a specification for a MIR function without + performing any verification. * The `saw_client.mir` module contains utility functions for constructing MIR types. diff --git a/saw-remote-api/src/SAWServer/MIRVerify.hs b/saw-remote-api/src/SAWServer/MIRVerify.hs index 09261a2f8c..5106396341 100644 --- a/saw-remote-api/src/SAWServer/MIRVerify.hs +++ b/saw-remote-api/src/SAWServer/MIRVerify.hs @@ -11,7 +11,7 @@ import Prelude hiding (mod) import Control.Lens import SAWScript.Crucible.MIR.Builtins - ( mir_verify ) + ( mir_unsafe_assume_spec, mir_verify ) import SAWScript.Value (rwCryptol) import qualified Argo @@ -61,7 +61,7 @@ mirVerifyAssume mode (VerifyParams modName fun lemmaNames checkSat contract scri proofScript <- interpretProofScript script tl $ mir_verify rm fun lemmas checkSat setup proofScript AssumeContract -> - tl $ error "mir_unsafe_assume_spec not yet supported" + tl $ mir_unsafe_assume_spec rm fun setup dropTask setServerVal lemmaName res ok diff --git a/src/SAWScript/Crucible/Common/Override.hs b/src/SAWScript/Crucible/Common/Override.hs index e09eba8ac9..48d31e1b66 100644 --- a/src/SAWScript/Crucible/Common/Override.hs +++ b/src/SAWScript/Crucible/Common/Override.hs @@ -78,10 +78,10 @@ import qualified Control.Monad.Fail as Fail import Control.Monad.Trans.Except import Control.Monad.Trans.Class import Control.Monad.IO.Class -import Data.Proxy (Proxy(..)) import qualified Data.Map as Map import Data.Map (Map) import Data.Maybe (fromMaybe) +import Data.Proxy (Proxy(..)) import Data.Set (Set) import Data.Typeable (Typeable) import Data.Void diff --git a/src/SAWScript/Crucible/MIR/Builtins.hs b/src/SAWScript/Crucible/MIR/Builtins.hs index 63d76ac0b3..5a157f1865 100644 --- a/src/SAWScript/Crucible/MIR/Builtins.hs +++ b/src/SAWScript/Crucible/MIR/Builtins.hs @@ -21,6 +21,7 @@ module SAWScript.Crucible.MIR.Builtins , mir_postcond , mir_precond , mir_return + , mir_unsafe_assume_spec , mir_verify -- ** MIR types , mir_adt @@ -55,11 +56,12 @@ import Control.Monad.IO.Class (MonadIO(..)) import Control.Monad.Reader (runReaderT) import Control.Monad.State (MonadState(..), StateT(..), execStateT, gets) import Control.Monad.Trans.Class (MonadTrans(..)) -import qualified Data.BitVector.Sized as BV import qualified Data.ByteString.Lazy as BSL import Data.Foldable (for_) import Data.IORef -import qualified Data.List.Extra as List (find, groupOn) +import qualified Data.List as List (find) +import qualified Data.List.NonEmpty as NE +import Data.List.NonEmpty (NonEmpty(..)) import qualified Data.Map as Map import Data.Map (Map) import Data.Maybe (fromMaybe) @@ -123,6 +125,7 @@ import SAWScript.Panic import qualified SAWScript.Position as SS import SAWScript.Proof import SAWScript.Prover.SolverStats +import SAWScript.Utils (neGroupOn) import SAWScript.Value type AssumptionReason = (MS.ConditionMetadata, String) @@ -325,6 +328,22 @@ mir_points_to_check_lhs_validity ref loc = _ -> throwCrucibleSetup loc $ "lhs not a reference type: " ++ show (PP.pretty refTy) +mir_unsafe_assume_spec :: + Mir.RustModule -> + String {- ^ Name of the function -} -> + MIRSetupM () {- ^ Boundary specification -} -> + TopLevel Lemma +mir_unsafe_assume_spec rm nm setup = + do cc <- setupCrucibleContext rm + pos <- getPosition + let loc = SS.toW4Loc "_SAW_assume_spec" pos + fn <- findFn rm nm + let st0 = initialCrucibleSetupState cc fn loc + ms <- (view Setup.csMethodSpec) <$> + execStateT (runReaderT (runMIRSetupM setup) Setup.makeCrucibleSetupRO) st0 + ps <- io (MS.mkProvedSpec MS.SpecAdmitted ms mempty mempty mempty 0) + returnProof ps + mir_verify :: Mir.RustModule -> String {- ^ method name -} -> @@ -345,19 +364,16 @@ mir_verify rm nm lemmas checkSat setup tactic = let sym = cc^.mccSym let globals0 = cc^.mccSymGlobalState + sosp <- rwSingleOverrideSpecialCase <$> getTopLevelRW + let ?singleOverrideSpecialCase = sosp + pos <- getPosition let loc = SS.toW4Loc "_SAW_verify_prestate" pos profFile <- rwProfilingFile <$> getTopLevelRW (writeFinalProfile, pfs) <- io $ setupProfiling sym "mir_verify" profFile - let cs = rm ^. Mir.rmCS - col = cs ^. Mir.collection - crateDisambigs = cs ^. Mir.crateHashesMap - did <- findDefId crateDisambigs (Text.pack nm) - fn <- case Map.lookup did (col ^. Mir.functions) of - Just x -> return x - Nothing -> fail $ "Couldn't find MIR function named: " ++ nm + fn <- findFn rm nm let st0 = initialCrucibleSetupState cc fn loc -- execute commands of the method spec @@ -491,18 +507,22 @@ assertEqualVals cc v1 v2 = toSC sym st =<< equalValsPred cc v1 v2 registerOverride :: + (?singleOverrideSpecialCase :: Bool) => Options -> MIRCrucibleContext -> Crucible.SimContext (SAWCruciblePersonality Sym) Sym MIR -> W4.ProgramLoc -> IORef MetadataMap {- ^ metadata map -} -> - [MethodSpec] -> + NonEmpty MethodSpec -> Crucible.OverrideSim (SAWCruciblePersonality Sym) Sym MIR rtp args ret () -registerOverride _opts cc _ctx _top_loc _mdMap cs = - do let c0 = head cs +registerOverride opts cc _ctx _top_loc mdMap cs = + do let sym = cc^.mccSym + let c0 = NE.head cs let method = c0 ^. MS.csMethod let rm = cc^.mccRustModule + sc <- saw_ctx <$> liftIO (sawCoreState sym) + Crucible.AnyCFG cfg <- lookupDefIdCFG rm method let h = Crucible.cfgHandle cfg let retTy = Crucible.handleReturnType h @@ -512,7 +532,7 @@ registerOverride _opts cc _ctx _top_loc _mdMap cs = $ Crucible.mkOverride' (Crucible.handleName h) retTy - (panic "registerOverride.methodSpecHandler" ["not yet implemented"]) + (methodSpecHandler opts sc cc mdMap cs h) resolveArguments :: MIRCrucibleContext -> @@ -553,46 +573,8 @@ setupPrePointsTos :: [MirPointsTo] -> Crucible.SymGlobalState Sym -> IO (Crucible.SymGlobalState Sym) -setupPrePointsTos mspec cc env pts mem0 = foldM doPointsTo mem0 pts - where - tyenv = MS.csAllocations mspec - nameEnv = mspec ^. MS.csPreState . MS.csVarTypeNames - - doPointsTo :: - Crucible.SymGlobalState Sym - -> MirPointsTo - -> IO (Crucible.SymGlobalState Sym) - doPointsTo globals (MirPointsTo _ reference referents) = - mccWithBackend cc $ \bak -> do - MIRVal referenceShp referenceVal <- - resolveSetupVal cc env tyenv nameEnv reference - -- By the time we reach here, we have already checked (in mir_points_to) - -- that we are in fact dealing with a reference value, so the call to - -- `testRefShape` below should always succeed. - IsRefShape _ _ _ referenceInnerTy <- - case testRefShape referenceShp of - Just irs -> pure irs - Nothing -> - panic "setupPrePointsTos" - [ "Unexpected non-reference type:" - , show $ PP.pretty $ shapeMirTy referenceShp - ] - referent <- firstPointsToReferent referents - MIRVal referentShp referentVal <- - resolveSetupVal cc env tyenv nameEnv referent - -- By the time we reach here, we have already checked (in mir_points_to) - -- that the type of the reference is compatible with the right-hand side - -- value, so the equality check below should never fail. - Refl <- - case W4.testEquality referenceInnerTy (shapeType referentShp) of - Just r -> pure r - Nothing -> - panic "setupPrePointsTos" - [ "Unexpected type mismatch between reference and referent" - , "Reference type: " ++ show referenceInnerTy - , "Referent type: " ++ show (shapeType referentShp) - ] - Mir.writeMirRefIO bak globals Mir.mirIntrinsicTypes referenceVal referentVal +setupPrePointsTos mspec cc env pts mem0 = + foldM (doPointsTo mspec cc env) mem0 pts -- | Collects boolean terms that should be assumed to be true. setupPrestateConditions :: @@ -793,7 +775,9 @@ verifyPrestate cc mspec globals0 = liftIO $ W4.setCurrentProgramLoc sym prestateLoc (env, globals1) <- runStateT - (traverse (doAlloc cc) (mspec ^. MS.csPreState . MS.csAllocs)) + (traverse + (\alloc -> StateT (\globals -> doAlloc cc globals alloc)) + (mspec ^. MS.csPreState . MS.csAllocs)) globals0 globals2 <- setupPrePointsTos mspec cc env (mspec ^. MS.csPreState . MS.csPointsTos) globals1 @@ -823,6 +807,7 @@ verifyPrestate cc mspec globals0 = -- | Simulate a MIR function with Crucible as part of a 'mir_verify' command, -- making sure to install any overrides that the user supplies. verifySimulate :: + (?singleOverrideSpecialCase :: Bool) => Options -> MIRCrucibleContext -> [Crucible.GenericExecutionFeature Sym] -> @@ -859,7 +844,7 @@ verifySimulate opts cc pfs mspec args assumes top_loc lemmas globals _checkSat m let fnCall = Crucible.regValue <$> Crucible.callCFG methodCfg regmap let overrideSim = do mapM_ (registerOverride opts cc simctx top_loc mdMap) - (List.groupOn (view MS.csMethod) (map (view MS.psSpec) lemmas)) + (neGroupOn (view MS.csMethod) (map (view MS.psSpec) lemmas)) liftIO $ for_ assumes $ \(Crucible.LabeledPred p (md, reason)) -> do expr <- resolveSAWPred cc p @@ -949,41 +934,6 @@ cryptolTypeOfActual mty = baseSizeType Mir.B128 = Just $ Cryptol.tWord $ Cryptol.tNum (128 :: Integer) baseSizeType Mir.USize = Just $ Cryptol.tWord $ Cryptol.tNum $ natValue $ knownNat @Mir.SizeBits --- | Allocate memory for each 'mir_alloc' or 'mir_alloc_mut'. -doAlloc :: - MIRCrucibleContext - -> Some MirAllocSpec - -> StateT (Crucible.SymGlobalState Sym) IO (Some (MirPointer Sym)) -doAlloc cc (Some ma) = - mccWithBackend cc $ \bak -> - do let col = cc ^. mccRustModule ^. Mir.rmCS ^. Mir.collection - let halloc = cc^.mccHandleAllocator - let sym = backendGetSym bak - let iTypes = Mir.mirIntrinsicTypes - Some tpr <- pure $ Mir.tyToRepr col (ma^.maMirType) - - -- Create an uninitialized `MirVector_PartialVector` of length 1 and - -- return a pointer to its element. - ref <- liftIO $ - Mir.newMirRefIO sym halloc (Mir.MirVectorRepr tpr) - - globals <- get - globals' <- liftIO $ do - one <- W4.bvLit sym W4.knownRepr $ BV.mkBV W4.knownRepr 1 - vec <- Mir.mirVector_uninitIO bak one - Mir.writeMirRefIO bak globals iTypes ref vec - put globals' - - ptr <- liftIO $ do - zero <- W4.bvLit sym W4.knownRepr $ BV.mkBV W4.knownRepr 0 - Mir.subindexMirRefIO bak iTypes tpr ref zero - pure $ Some MirPointer - { _mpType = tpr - , _mpMutbl = ma^.maMutbl - , _mpMirType = ma^.maMirType - , _mpRef = ptr - } - -- Find the ADT definition that is monomorphized from `origName` with `substs`. -- This should only be used on types that are known to be present in the crate -- after dead code elimination - for example, because the type appears in the @@ -996,6 +946,20 @@ findAdt col origName substs = where insts = col ^. Mir.adtsOrig . at origName . to (fromMaybe []) +-- | Find the 'Mir.Fn' corresponding to the given function name (supplied as a +-- 'String'). If none can be found or if there are multiple functions +-- corresponding to that name (see the Haddocks for 'findDefId'), then this will +-- fail. +findFn :: Mir.RustModule -> String -> TopLevel Mir.Fn +findFn rm nm = do + let cs = rm ^. Mir.rmCS + col = cs ^. Mir.collection + crateDisambigs = cs ^. Mir.crateHashesMap + did <- findDefId crateDisambigs (Text.pack nm) + case Map.lookup did (col ^. Mir.functions) of + Just x -> return x + Nothing -> fail $ "Couldn't find MIR function named: " ++ nm + getMIRCrucibleContext :: CrucibleSetup MIR MIRCrucibleContext getMIRCrucibleContext = view Setup.csCrucibleContext <$> get diff --git a/src/SAWScript/Crucible/MIR/Override.hs b/src/SAWScript/Crucible/MIR/Override.hs index ccb4f7fb21..bdc16e255b 100644 --- a/src/SAWScript/Crucible/MIR/Override.hs +++ b/src/SAWScript/Crucible/MIR/Override.hs @@ -1,5 +1,10 @@ {-# LANGUAGE DataKinds #-} {-# LANGUAGE GADTs #-} +{-# LANGUAGE ImplicitParams #-} +{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE MultiWayIf #-} +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} -- | Override matching and application for MIR. @@ -14,18 +19,24 @@ module SAWScript.Crucible.MIR.Override , learnCond , matchArg + , methodSpecHandler , decodeMIRVal ) where import qualified Control.Exception as X import Control.Lens -import Control.Monad (unless) +import Control.Monad (filterM, forM, forM_, unless, zipWithM) import Control.Monad.IO.Class (MonadIO(..)) +import Data.Either (partitionEithers) +import qualified Data.Foldable as F import Data.Foldable (for_, traverse_) import qualified Data.Functor.Product as Functor +import Data.IORef (IORef, modifyIORef) import Data.List (tails) +import qualified Data.List.NonEmpty as NE import qualified Data.Map as Map import Data.Map (Map) +import Data.Maybe (catMaybes) import qualified Data.Parameterized.Context as Ctx import Data.Parameterized.Some (Some(..)) import qualified Data.Parameterized.TraversableFC as FC @@ -37,6 +48,8 @@ import qualified Prettyprinter as PP import qualified Cryptol.TypeCheck.AST as Cryptol import qualified Cryptol.Eval.Type as Cryptol (TValue(..), evalType) +import qualified Lang.Crucible.Backend as Crucible +import qualified Lang.Crucible.FunctionHandle as Crucible import qualified Lang.Crucible.Simulator as Crucible import qualified Lang.Crucible.Types as Crucible import qualified Mir.Generator as Mir @@ -46,6 +59,7 @@ import qualified Mir.Mir as Mir import qualified Mir.TransTy as Mir import qualified What4.Expr as W4 import qualified What4.Interface as W4 +import qualified What4.LabeledPred as W4 import qualified What4.ProgramLoc as W4 import Verifier.SAW.Prelude (scEq) @@ -64,7 +78,7 @@ import SAWScript.Crucible.MIR.ResolveSetupValue import SAWScript.Crucible.MIR.TypeShape import SAWScript.Options import SAWScript.Panic (panic) -import SAWScript.Utils (handleException) +import SAWScript.Utils (bullets, handleException) -- A few convenient synonyms type SetupValue = MS.SetupValue MIR @@ -115,6 +129,29 @@ assignTerm sc cc md prepost var val = Just old -> matchTerm sc cc md prepost val old +computeReturnValue :: + Options {- ^ saw script debug and print options -} -> + MIRCrucibleContext {- ^ context of the crucible simulation -} -> + SharedContext {- ^ context for generating saw terms -} -> + MS.CrucibleMethodSpecIR MIR {- ^ method specification -} -> + Crucible.TypeRepr ret {- ^ representation of function return type -} -> + Maybe SetupValue {- ^ optional symbolic return value -} -> + OverrideMatcher MIR md (Crucible.RegValue Sym ret) + {- ^ concrete return value -} +computeReturnValue opts cc sc spec ty mbVal = + case mbVal of + Nothing -> + case ty of + Crucible.UnitRepr -> return () + _ -> fail_ + Just val -> do + MIRVal shp val' <- resolveSetupValueMIR opts cc sc spec val + case W4.testEquality ty (shapeType shp) of + Just Refl -> pure val' + Nothing -> fail_ + where + fail_ = failure (spec ^. MS.csLoc) (BadReturnSpecification (Some ty)) + decodeMIRVal :: Mir.Collection -> Mir.Ty -> Crucible.AnyValue Sym -> Maybe MIRVal decodeMIRVal col ty (Crucible.AnyValue repr rv) | Some shp <- tyToShape col ty @@ -148,6 +185,314 @@ enforceDisjointness cc loc ss = , (_, Some q) <- ps ] +-- | Perform an allocation as indicated by a 'mir_alloc' +-- statement from the postcondition section. +executeAllocation :: + Options -> + MIRCrucibleContext -> + (AllocIndex, Some MirAllocSpec) -> + OverrideMatcher MIR w () +executeAllocation opts cc (var, someAlloc@(Some alloc)) = + do liftIO $ printOutLn opts Debug $ unwords ["executeAllocation:", show var, show alloc] + globals <- OM (use overrideGlobals) + (ptr, globals') <- liftIO $ doAlloc cc globals someAlloc + OM (overrideGlobals .= globals') + assignVar cc (alloc^.maConditionMetadata) var ptr + +-- | Process a "points_to" statement from the postcondition section of +-- the CrucibleSetup block. First we compute the value indicated by +-- 'val', and then write it to the address indicated by 'ptr'. +executePointsTo :: + Options -> + SharedContext -> + MIRCrucibleContext -> + CrucibleMethodSpecIR -> + MirPointsTo -> + OverrideMatcher MIR w () +executePointsTo _opts _sc cc spec pt = do + env <- OM (use setupValueSub) + globals <- OM (use overrideGlobals) + globals' <- liftIO $ doPointsTo spec cc env globals pt + OM (overrideGlobals .= globals') + +-- execute a pre/post condition +executeCond :: + Options -> + SharedContext -> + MIRCrucibleContext -> + CrucibleMethodSpecIR -> + StateSpec -> + OverrideMatcher MIR w () +executeCond opts sc cc cs ss = + do refreshTerms sc ss + traverse_ (executeAllocation opts cc) (Map.assocs (ss ^. MS.csAllocs)) + -- TODO: We need to do something like this: + {- + checkMutableAllocPostconds opts sc cc cs + -} + -- Which checks that all of the mutable allocations and statics have been + -- specified in the postconditions of overrides. (See the related TODOs + -- in the test_mir_unsafe_assume_spec test case.) + traverse_ (executePointsTo opts sc cc cs) (ss ^. MS.csPointsTos) + traverse_ (executeSetupCondition opts sc cc cs) (ss ^. MS.csConditions) + +-- | Process a "mir_equal" statement from the postcondition +-- section of the CrucibleSetup block. +executeEqual :: + Options -> + SharedContext -> + MIRCrucibleContext -> + CrucibleMethodSpecIR -> + MS.ConditionMetadata -> + SetupValue {- ^ first value to compare -} -> + SetupValue {- ^ second value to compare -} -> + OverrideMatcher MIR w () +executeEqual opts sc cc spec md v1 v2 = + do val1 <- resolveSetupValueMIR opts cc sc spec v1 + val2 <- resolveSetupValueMIR opts cc sc spec v2 + p <- liftIO (equalValsPred cc val1 val2) + addAssume p md + +-- | Process a "mir_postcond" statement from the postcondition +-- section of the CrucibleSetup block. +executePred :: + SharedContext -> + MIRCrucibleContext -> + MS.ConditionMetadata -> + TypedTerm {- ^ the term to assert as a postcondition -} -> + OverrideMatcher MIR w () +executePred sc cc md tt = + do s <- OM (use termSub) + t <- liftIO $ scInstantiateExt sc s (ttTerm tt) + p <- liftIO $ resolveBoolTerm (cc ^. mccSym) t + addAssume p md + +-- | Update the simulator state based on the postconditions from the +-- procedure specification. +executeSetupCondition :: + Options -> + SharedContext -> + MIRCrucibleContext -> + CrucibleMethodSpecIR -> + SetupCondition -> + OverrideMatcher MIR w () +executeSetupCondition opts sc cc spec (MS.SetupCond_Equal md val1 val2) = executeEqual opts sc cc spec md val1 val2 +executeSetupCondition _ sc cc _ (MS.SetupCond_Pred md tm) = executePred sc cc md tm +executeSetupCondition _ _ _ _ (MS.SetupCond_Ghost empty _ _ _) = absurd empty + +handleSingleOverrideBranch :: forall rtp args ret. + Options {- ^ output/verbosity options -} -> + SharedContext {- ^ context for constructing SAW terms -} -> + MIRCrucibleContext {- ^ context for interacting with Crucible -} -> + W4.ProgramLoc {- ^ Location of the call site for error reporting -} -> + IORef MetadataMap -> + Crucible.FnHandle args ret {- ^ the handle for this function -} -> + OverrideWithPreconditions MIR -> + Crucible.OverrideSim (SAWCruciblePersonality Sym) Sym MIR rtp args ret + (Crucible.RegValue Sym ret) +handleSingleOverrideBranch opts sc cc call_loc mdMap h (OverrideWithPreconditions preconds cs st) = + mccWithBackend cc $ \bak -> do + let sym = backendGetSym bak + let fnName = cs ^. MS.csMethod + let retTy = Crucible.handleReturnType h + + liftIO $ printOutLn opts Info $ unwords + [ "Found a single potential override for" + , show fnName + ] + + -- First assert the override preconditions + liftIO $ forM_ preconds $ \(md,W4.LabeledPred p r) -> + do (ann,p') <- W4.annotateTerm sym p + let caller = unwords ["Override called from:", show (W4.plSourceLoc call_loc)] + let md' = md{ MS.conditionContext = MS.conditionContext md ++ caller } + modifyIORef mdMap (Map.insert ann md') + Crucible.addAssertion bak (Crucible.LabeledPred p' r) + + g <- Crucible.readGlobals + res <- liftIO $ runOverrideMatcher sym g + (st^.setupValueSub) + (st^.termSub) + (st^.osFree) + (st^.osLocation) + (methodSpecHandler_poststate opts sc cc retTy cs) + case res of + Left (OF loc rsn) -> + -- TODO, better pretty printing for reasons + liftIO + $ Crucible.abortExecBecause + $ Crucible.AssertionFailure + $ Crucible.SimError loc + $ Crucible.AssertFailureSimError "assumed false" (show rsn) + Right (ret,st') -> + do liftIO $ forM_ (st'^.osAssumes) $ \(_md,asum) -> + Crucible.addAssumption bak + $ Crucible.GenericAssumption (st^.osLocation) "override postcondition" asum + Crucible.writeGlobals (st'^.overrideGlobals) + Crucible.overrideReturn' (Crucible.RegEntry retTy ret) + +handleOverrideBranches :: forall rtp args ret. + Options {- ^ output/verbosity options -} -> + SharedContext {- ^ context for constructing SAW terms -} -> + MIRCrucibleContext {- ^ context for interacting with Crucible -} -> + W4.ProgramLoc {- ^ Location of the call site for error reporting -} -> + NE.NonEmpty (MS.CrucibleMethodSpecIR MIR) + {- ^ specification for current function override -} -> + Crucible.FnHandle args ret {- ^ the handle for this function -} -> + [OverrideWithPreconditions MIR] -> + ([OverrideWithPreconditions MIR],[OverrideWithPreconditions MIR],[OverrideWithPreconditions MIR]) -> + Crucible.OverrideSim (SAWCruciblePersonality Sym) Sym MIR rtp args ret + (Crucible.RegValue Sym ret) + +handleOverrideBranches opts sc cc call_loc css h branches (true, false, unknown) = + mccWithBackend cc $ \bak -> do + let sym = backendGetSym bak + let fnName = show $ NE.head css ^. MS.csMethod + Crucible.RegMap args <- Crucible.getOverrideArgs + + -- Collapse the preconditions to a single predicate + branches' <- liftIO $ forM (true ++ unknown) $ + \(OverrideWithPreconditions preconds cs st) -> + W4.andAllOf sym (folded . _2 . W4.labeledPred) preconds <&> + \precond -> (precond, cs, st) + + -- Now use crucible's symbolic branching machinery to select between the branches. + -- Essentially, we are doing an n-way if statement on the precondition predicates + -- for each override, and selecting the first one whose preconditions hold. + -- + -- Then, in the body of the branch, we run the poststate handler to update the + -- memory state, compute return values and compute postcondition predicates. + -- + -- For each override branch that doesn't fail outright, we assume the relevant + -- postconditions, update the crucible global variable state, and return the + -- computed return value. + -- + -- We add a final default branch that simply fails unless some previous override + -- branch has already succeeded. + liftIO $ printOutLn opts Info $ unwords + [ "Branching on" + , show (length branches') + , "override variants of" + , fnName + , "..." + ] + let retTy = Crucible.handleReturnType h + res <- Crucible.regValue <$> Crucible.callOverride h + (Crucible.mkOverride' "overrideBranches" retTy + (Crucible.symbolicBranches Crucible.emptyRegMap $ + [ ( precond + , do g <- Crucible.readGlobals + res <- liftIO $ runOverrideMatcher sym g + (st^.setupValueSub) + (st^.termSub) + (st^.osFree) + (st^.osLocation) + (methodSpecHandler_poststate opts sc cc retTy cs) + case res of + Left (OF loc rsn) -> + -- TODO, better pretty printing for reasons + liftIO + $ Crucible.abortExecBecause + $ Crucible.AssertionFailure + $ Crucible.SimError loc + $ Crucible.AssertFailureSimError "assumed false" (show rsn) + Right (ret,st') -> + do liftIO $ forM_ (st'^.osAssumes) $ \(_md,asum) -> + Crucible.addAssumption bak + $ Crucible.GenericAssumption (st^.osLocation) "override postcondition" asum + Crucible.writeGlobals (st'^.overrideGlobals) + Crucible.overrideReturn' (Crucible.RegEntry retTy ret) + , Just (W4.plSourceLoc (cs ^. MS.csLoc)) + ) + | (precond, cs, st) <- branches' + ] ++ + [ let e prettyArgs symFalse unsat = show $ PP.vcat $ concat + [ [ PP.pretty $ + "No override specification applies for " ++ fnName ++ "." + ] + , [ "Arguments:" + , bullets '-' prettyArgs + ] + , if | not (null false) -> + [ PP.vcat + [ PP.pretty (unwords + [ "The following overrides had some preconditions" + , "that failed concretely:" + ]) + , bullets '-' (map ppConcreteFailure false) + ] + ] + -- See comment on ppSymbolicFailure: this needs more + -- examination to see if it's useful. + -- - | not (null symFalse) -> + -- [ PP.text (unwords + -- [ "The following overrides had some preconditions " + -- , "that failed symbolically:" + -- ]) PP.<$$> bullets '-' (map ppSymbolicFailure symFalse) + -- ] + + -- Note that we only print these in case no override had + -- individually (concretely or symbolically) false + -- preconditions. + | not (null unsat) && null false && null symFalse -> + [ PP.vcat + [ PP.pretty (unwords + [ "The conjunction of these overrides' preconditions" + , "was unsatisfiable, meaning your override can never" + , "apply. You probably have unintentionally specified" + , "mutually exclusive/inconsistent preconditions." + ]) + , bullets '-' (unsat ^.. each . owpMethodSpec . to MS.ppMethodSpec) + ] + ] + | null false && null symFalse -> + [ PP.pretty (unwords + [ "No overrides had any single concretely or" + , "symbolically failing preconditions." + ]) + ] + | otherwise -> [] + , if | simVerbose opts < 3 -> + [ PP.pretty $ unwords + [ "Run SAW with --sim-verbose=3 to see a description" + , "of each override." + ] + ] + | otherwise -> + [ PP.vcat + [ "Here are the descriptions of each override:" + , bullets '-' + (branches ^.. each . owpMethodSpec . to MS.ppMethodSpec) + ] + ] + ] + in ( W4.truePred sym + , liftIO $ do + -- Now that we're failing, do the additional work of figuring out + -- if any overrides had symbolically false preconditions + symFalse <- catMaybes <$> (forM unknown $ \owp -> + findFalsePreconditions bak owp <&> + \case + [] -> Nothing + ps -> Just (owp, ps)) + + prettyArgs <- + ppArgs sym cc (NE.head css) (Crucible.RegMap args) + + unsat <- + filterM + (unsatPreconditions bak (owpPreconditions . each . _2 . W4.labeledPred)) + branches + + Crucible.addFailedAssertion bak + (Crucible.GenericSimError (e prettyArgs symFalse unsat)) + , Just (W4.plSourceLoc call_loc) + ) + ])) + (Crucible.RegMap args) + liftIO $ printOutLn opts Info $ unwords ["Applied override!", fnName] + return res + instantiateExtResolveSAWPred :: SharedContext -> MIRCrucibleContext -> @@ -198,7 +543,7 @@ learnCond opts sc cc cs prepost ss = enforceDisjointness cc loc ss enforceCompleteSubstitution loc ss --- | Process a "crucible_equal" statement from the precondition +-- | Process a "mir_equal" statement from the precondition -- section of the CrucibleSetup block. learnEqual :: Options -> @@ -253,7 +598,7 @@ learnPointsTo opts sc cc spec prepost (MirPointsTo md reference referents) = matchArg opts sc cc spec prepost md (MIRVal innerShp v) referenceInnerMirTy referentVal --- | Process a "crucible_precond" statement from the precondition +-- | Process a "mir_precond" statement from the precondition -- section of the CrucibleSetup block. learnPred :: SharedContext -> @@ -494,6 +839,160 @@ matchTerm sc cc md prepost real expect = ] addTermEq t md $ Crucible.SimError loc $ Crucible.AssertFailureSimError msg "" +-- | This function is responsible for implementing the \"override\" behavior +-- of method specifications. The main work done in this function to manage +-- the process of selecting between several possible different override +-- specifications that could apply. We want a proof to succeed if _any_ +-- choice of method spec allows the proof to go through, which is a slightly +-- awkward thing to fit into the symbolic simulation framework. +-- +-- The main work of determining the preconditions, postconditions, memory +-- updates and return value for a single specification is done by +-- the @methodSpecHandler_prestate@ and @methodSpecHandler_poststate@ functions. +-- +-- In a first phase, we attempt to apply the precondition portion of each of +-- the given method specifications. Each of them that might apply generate +-- a substitution for the setup variables and a collection of preconditions +-- that guard the specification. We use these preconditions to compute +-- a multiway symbolic branch, one for each override which might apply. +-- +-- In the body of each of the individual branches, we compute the postcondition +-- actions of the corresponding method specification. This will update memory +-- and compute function return values, in addition to assuming postcondition +-- predicates. +methodSpecHandler :: + forall rtp args ret. + (?singleOverrideSpecialCase :: Bool) => + Options {- ^ output/verbosity options -} -> + SharedContext {- ^ context for constructing SAW terms -} -> + MIRCrucibleContext {- ^ context for interacting with Crucible -} -> + IORef MetadataMap -> + NE.NonEmpty (MS.CrucibleMethodSpecIR MIR) + {- ^ specification for current function override -} -> + Crucible.FnHandle args ret {- ^ the handle for this function -} -> + Crucible.OverrideSim (SAWCruciblePersonality Sym) Sym MIR rtp args ret + (Crucible.RegValue Sym ret) +methodSpecHandler opts sc cc mdMap css h = + mccWithBackend cc $ \bak -> do + let sym = backendGetSym bak + let fnName = NE.head css ^. MS.csMethod + call_loc <- liftIO $ W4.getCurrentProgramLoc sym + liftIO $ printOutLn opts Info $ unwords + [ "Matching" + , show (length css) + , "overrides of " + , show fnName + , "..." + ] + Crucible.RegMap args <- Crucible.getOverrideArgs + + -- First, run the precondition matcher phase. Collect together a list of the results. + -- For each override, this will either be an error message, or a matcher state and + -- a method spec. + prestates <- + do g0 <- Crucible.readGlobals + forM css $ \cs -> liftIO $ + let initialFree = Set.fromList (map (ecVarIndex . tecExt) + (view (MS.csPreState . MS.csFreshVars) cs)) + in runOverrideMatcher sym g0 Map.empty Map.empty initialFree (view MS.csLoc cs) + (do methodSpecHandler_prestate opts sc cc args cs + return cs) + + -- Print a failure message if all overrides failed to match. Otherwise, collect + -- all the override states that might apply, and compute the conjunction of all + -- the preconditions. We'll use these to perform symbolic branches between the + -- various overrides. + branches <- + let prettyError methodSpec failureReason = do + prettyArgs <- liftIO $ ppArgs sym cc methodSpec (Crucible.RegMap args) + pure $ + PP.vcat + [ MS.ppMethodSpec methodSpec + , "Arguments:" + , bullets '-' prettyArgs + , ppOverrideFailure failureReason + ] + in + case partitionEithers (F.toList prestates) of + (errs, []) -> do + msgs <- + mapM (\(cs, err) -> + ("*" PP.<>) . PP.indent 2 <$> prettyError cs err) + (zip (F.toList css) errs) + fail $ show $ + PP.vcat ["All overrides failed during structural matching:", PP.vcat msgs] + (_, ss) -> liftIO $ + forM ss $ \(cs,st) -> + return (OverrideWithPreconditions (st^.osAsserts) cs st) + + -- Now we do a second phase of simple compatibility checking: we check to see + -- if any of the preconditions of the various overrides are concretely false. + -- If so, there's no use in branching on them with @symbolicBranches@. + (true, false, unknown) <- liftIO $ partitionOWPsConcrete sym branches + + -- Check if there is only a single override branch that might apply at this + -- point. If so, commit to it and handle that case specially. If there is + -- more than one (or zero) branches that might apply, go to the general case. + case true ++ unknown of + [singleBranch] | ?singleOverrideSpecialCase -> + handleSingleOverrideBranch opts sc cc call_loc mdMap h singleBranch + _ -> handleOverrideBranches opts sc cc call_loc css h branches (true, false, unknown) + +-- | Use a method spec to override the behavior of a function. +-- This function computes the post-state portion of the override, +-- which involves writing values into memory, computing the return value, +-- and computing postcondition predicates. +methodSpecHandler_poststate :: + forall ret w. + Options {- ^ output/verbosity options -} -> + SharedContext {- ^ context for constructing SAW terms -} -> + MIRCrucibleContext {- ^ context for interacting with Crucible -} -> + Crucible.TypeRepr ret {- ^ type representation of function return value -} -> + CrucibleMethodSpecIR {- ^ specification for current function override -} -> + OverrideMatcher MIR w (Crucible.RegValue Sym ret) +methodSpecHandler_poststate opts sc cc retTy cs = + do executeCond opts sc cc cs (cs ^. MS.csPostState) + computeReturnValue opts cc sc cs retTy (cs ^. MS.csRetValue) + +-- | Use a method spec to override the behavior of a function. +-- This function computes the pre-state portion of the override, +-- which involves reading values from arguments and memory and computing +-- substitutions for the setup value variables, and computing precondition +-- predicates. +methodSpecHandler_prestate :: + forall ctx w. + Options {- ^ output/verbosity options -} -> + SharedContext {- ^ context for constructing SAW terms -} -> + MIRCrucibleContext {- ^ context for interacting with Crucible -} -> + Ctx.Assignment (Crucible.RegEntry Sym) ctx + {- ^ the arguments to the function -} -> + CrucibleMethodSpecIR {- ^ specification for current function override -} -> + OverrideMatcher MIR w () +methodSpecHandler_prestate opts sc cc args cs = + do let expectedArgTypes = Map.elems (cs ^. MS.csArgBindings) + let col = cc ^. mccRustModule ^. Mir.rmCS ^. Mir.collection + let aux :: + (Mir.Ty, SetupValue) -> Crucible.AnyValue Sym -> + IO (MIRVal, Mir.Ty, SetupValue) + aux (argTy, setupVal) val = + case decodeMIRVal col argTy val of + Just val' -> return (val', argTy, setupVal) + Nothing -> fail "unexpected type" + + -- todo: fail if list lengths mismatch + xs <- liftIO (zipWithM aux expectedArgTypes (assignmentToList args)) + + let md = MS.ConditionMetadata + { MS.conditionLoc = cs ^. MS.csLoc + , MS.conditionTags = mempty + , MS.conditionType = "formal argument matching" + , MS.conditionContext = "" + } + + sequence_ [ matchArg opts sc cc cs MS.PreState md x y z | (x, y, z) <- xs] + + learnCond opts sc cc cs MS.PreState (cs ^. MS.csPreState) + -- | Try to translate the spec\'s 'SetupValue' into a 'MIRVal', pretty-print -- the 'MIRVal'. mkStructuralMismatch :: @@ -540,6 +1039,22 @@ notEqual cond opts loc cc sc spec expected actual = do ] pure $ Crucible.SimError loc $ Crucible.AssertFailureSimError msg "" +-- | Pretty-print the arguments passed to an override +ppArgs :: + forall args ann. + Sym -> + MIRCrucibleContext {- ^ context for interacting with Crucible -} -> + MS.CrucibleMethodSpecIR MIR {- ^ specification for current function override -} -> + Crucible.RegMap Sym args {- ^ arguments from the simulator -} -> + IO [PP.Doc ann] +ppArgs sym cc cs (Crucible.RegMap args) = do + let expectedArgTypes = map fst (Map.elems (cs ^. MS.csArgBindings)) + let col = cc ^. mccRustModule ^. Mir.rmCS ^. Mir.collection + let aux memTy (Crucible.AnyValue tyrep val) = + MIRVal (tyToShapeEq col memTy tyrep) val + let vals = zipWith aux expectedArgTypes (assignmentToList args) + pure $ map (ppMIRVal sym) vals + -- | Resolve a 'SetupValue' into a 'MIRVal' and pretty-print it ppSetupValueAsMIRVal :: Options {- ^ output/verbosity options -} -> diff --git a/src/SAWScript/Crucible/MIR/ResolveSetupValue.hs b/src/SAWScript/Crucible/MIR/ResolveSetupValue.hs index fde07c4ce1..05c42facf4 100644 --- a/src/SAWScript/Crucible/MIR/ResolveSetupValue.hs +++ b/src/SAWScript/Crucible/MIR/ResolveSetupValue.hs @@ -23,6 +23,8 @@ module SAWScript.Crucible.MIR.ResolveSetupValue , equalValsPred , checkCompatibleTys , readMaybeType + , doAlloc + , doPointsTo , firstPointsToReferent , mirAdtToTy , findDefId @@ -64,7 +66,8 @@ import qualified Cryptol.Eval.Type as Cryptol (TValue(..), tValTy, evalValType) import qualified Cryptol.TypeCheck.AST as Cryptol (Type, Schema(..)) import qualified Cryptol.Utils.PP as Cryptol (pp) import Lang.Crucible.Backend (IsSymInterface) -import Lang.Crucible.Simulator (AnyValue(..), GlobalVar(..), RegValue, RegValue'(..)) +import Lang.Crucible.Simulator + ( AnyValue(..), GlobalVar(..), RegValue, RegValue'(..), SymGlobalState ) import Lang.Crucible.Types (MaybeType, TypeRepr(..)) import qualified Mir.DefId as Mir import qualified Mir.FancyMuxTree as Mir @@ -866,6 +869,81 @@ readPartExprMaybe _sym (W4.PE p v) | Just True <- W4.asConstantPred p = Just v | otherwise = Nothing +-- | Allocate memory for each 'mir_alloc' or 'mir_alloc_mut'. +doAlloc :: + MIRCrucibleContext + -> SymGlobalState Sym + -> Some MirAllocSpec + -> IO (Some (MirPointer Sym), SymGlobalState Sym) +doAlloc cc globals (Some ma) = + mccWithBackend cc $ \bak -> + do let col = cc ^. mccRustModule ^. Mir.rmCS ^. Mir.collection + let halloc = cc^.mccHandleAllocator + let sym = backendGetSym bak + let iTypes = Mir.mirIntrinsicTypes + Some tpr <- pure $ Mir.tyToRepr col (ma^.maMirType) + + -- Create an uninitialized `MirVector_PartialVector` of length 1 and + -- return a pointer to its element. + ref <- Mir.newMirRefIO sym halloc (Mir.MirVectorRepr tpr) + + one <- W4.bvLit sym W4.knownRepr $ BV.mkBV W4.knownRepr 1 + vec <- Mir.mirVector_uninitIO bak one + globals' <- Mir.writeMirRefIO bak globals iTypes ref vec + + zero <- W4.bvLit sym W4.knownRepr $ BV.mkBV W4.knownRepr 0 + ptr <- Mir.subindexMirRefIO bak iTypes tpr ref zero + let mirPtr = Some MirPointer + { _mpType = tpr + , _mpMutbl = ma^.maMutbl + , _mpMirType = ma^.maMirType + , _mpRef = ptr + } + + pure (mirPtr, globals') + +doPointsTo :: + MS.CrucibleMethodSpecIR MIR + -> MIRCrucibleContext + -> Map MS.AllocIndex (Some (MirPointer Sym)) + -> SymGlobalState Sym + -> MirPointsTo + -> IO (SymGlobalState Sym) +doPointsTo mspec cc env globals (MirPointsTo _ reference referents) = + mccWithBackend cc $ \bak -> do + MIRVal referenceShp referenceVal <- + resolveSetupVal cc env tyenv nameEnv reference + -- By the time we reach here, we have already checked (in mir_points_to) + -- that we are in fact dealing with a reference value, so the call to + -- `testRefShape` below should always succeed. + IsRefShape _ _ _ referenceInnerTy <- + case testRefShape referenceShp of + Just irs -> pure irs + Nothing -> + panic "doPointsTo" + [ "Unexpected non-reference type:" + , show $ PP.pretty $ shapeMirTy referenceShp + ] + referent <- firstPointsToReferent referents + MIRVal referentShp referentVal <- + resolveSetupVal cc env tyenv nameEnv referent + -- By the time we reach here, we have already checked (in mir_points_to) + -- that the type of the reference is compatible with the right-hand side + -- value, so the equality check below should never fail. + Refl <- + case W4.testEquality referenceInnerTy (shapeType referentShp) of + Just r -> pure r + Nothing -> + panic "doPointsTo" + [ "Unexpected type mismatch between reference and referent" + , "Reference type: " ++ show referenceInnerTy + , "Referent type: " ++ show (shapeType referentShp) + ] + Mir.writeMirRefIO bak globals Mir.mirIntrinsicTypes referenceVal referentVal + where + tyenv = MS.csAllocations mspec + nameEnv = mspec ^. MS.csPreState . MS.csVarTypeNames + -- | @mir_points_to@ always creates a 'MirPointsTo' value with exactly one -- referent on the right-hand side. As a result, this function should never -- fail. diff --git a/src/SAWScript/Interpreter.hs b/src/SAWScript/Interpreter.hs index 980aec8d95..bc28517c76 100644 --- a/src/SAWScript/Interpreter.hs +++ b/src/SAWScript/Interpreter.hs @@ -4005,6 +4005,14 @@ primitives = Map.fromList , "values as elements." ] + , prim "mir_unsafe_assume_spec" + "MIRModule -> String -> MIRSetup () -> TopLevel MIRSpec" + (pureVal mir_unsafe_assume_spec) + Experimental + [ "Return a MIRSpec corresponding to a MIRSetup block, as would be" + , "returned by mir_verify but without performing any verification." + ] + , prim "mir_verify" "MIRModule -> String -> [MIRSpec] -> Bool -> MIRSetup () -> ProofScript () -> TopLevel MIRSpec" (pureVal mir_verify)