From 5d95919c994f871de7719cbc1fd19f7e13b5136c Mon Sep 17 00:00:00 2001 From: Michael Tautschnig Date: Sat, 2 Jan 2021 22:40:35 +0000 Subject: [PATCH] Rewrite unions such that all members are of the same size In the C front-end, rewrite union components with types smaller than the union's size to anonymous structs. Each such struct contains the original union component plus padding. Assignments to union members thus always assign all bytes that make up the object representation of a union. The use of an anonymous struct ensures that member accesses can still be resolved. As this is a change in the semantics of goto programs, the goto binary version is incremented. rewrite_union is no longer necessary, but bugs (hidden by rewrite_union) in handling endianness in simplify_expr_member and convert_member surfaced and had to be fixed. --- jbmc/src/jdiff/jdiff_parse_options.cpp | 2 - .../ansi-c/arch_flags_mcpu_bad/object.intel | Bin 3778 -> 4471 bytes .../ansi-c/arch_flags_mcpu_bad/test.desc | 2 +- .../ansi-c/arch_flags_mcpu_good/object.arm | Bin 3704 -> 4391 bytes .../ansi-c/arch_flags_mthumb_bad/object.intel | Bin 3780 -> 4473 bytes .../ansi-c/arch_flags_mthumb_bad/test.desc | 2 +- .../ansi-c/arch_flags_mthumb_good/object.arm | Bin 3725 -> 4411 bytes .../cbmc-library/float-nan-check/test.desc | 6 +- regression/cbmc/union7/no_simplify.desc | 11 ++ regression/cbmc/union7/test.desc | 6 +- regression/cbmc/xml-trace/test.desc | 2 +- scripts/expected_doxygen_warnings.txt | 8 +- src/ansi-c/c_typecheck_expr.cpp | 31 ++++ src/ansi-c/c_typecheck_initializer.cpp | 41 +++-- src/ansi-c/c_typecheck_type.cpp | 144 ++++++++++++++++++ src/cbmc/cbmc_parse_options.cpp | 2 - src/goto-diff/goto_diff_parse_options.cpp | 2 - src/goto-programs/write_goto_binary.h | 2 +- src/goto-symex/symex_assign.cpp | 28 +++- src/goto-symex/symex_assign.h | 6 + src/pointer-analysis/value_set.cpp | 5 + src/solvers/flattening/boolbv_member.cpp | 76 ++++++++- src/solvers/flattening/bv_endianness_map.h | 4 +- src/util/simplify_expr_struct.cpp | 31 ++-- 24 files changed, 343 insertions(+), 68 deletions(-) create mode 100644 regression/cbmc/union7/no_simplify.desc diff --git a/jbmc/src/jdiff/jdiff_parse_options.cpp b/jbmc/src/jdiff/jdiff_parse_options.cpp index e84e0d96599..2175971a882 100644 --- a/jbmc/src/jdiff/jdiff_parse_options.cpp +++ b/jbmc/src/jdiff/jdiff_parse_options.cpp @@ -40,7 +40,6 @@ Author: Peter Schrammel #include #include #include -#include #include #include #include @@ -296,7 +295,6 @@ bool jdiff_parse_optionst::process_goto_program( remove_returns(goto_model); remove_vector(goto_model); remove_complex(goto_model); - rewrite_union(goto_model); // add generic checks log.status() << "Generic Property Instrumentation" << messaget::eom; diff --git a/regression/ansi-c/arch_flags_mcpu_bad/object.intel b/regression/ansi-c/arch_flags_mcpu_bad/object.intel index 2ba432c93b368d71d39d3e3a6816782f6c234d46..b9bdd513da6e369d12ca18ef3c5c6d7624a48114 100644 GIT binary patch literal 4471 zcmZ{odvp|69mns@h8eKfv^F9lF_vJ9Vh9@`-4=>;V_%9x%RppWpZQ zyuab;d(-zQQ^~}vYcZnLHTiDnWtow8vu0qs4xxl-H+9%~Mr!`8ii^{-_^v*0JB%dW zu1Vs<;o4=c*JV37!?Hb=4P38>)V`p$bh-uB5@wn+X0|IVwghGv_}NaUC7UT^n{#&1 z8D^&8SBuAT9`k+JYcU<)ZqBxtUbfTd$eTIeC}fMFkufa-L&MZ#LFhR~&{Je&)M($% zIn2r|CE5U8W?MlgQO+teT5;#`L{nDWrS{f{+YH+YIAl+vXnJOW19rx zD8fk?q3@{~(<39&S@NE`J<*Q8$;aN8E4n~1kLcHphQYDFRZ_qmscFi(jvttyCt&ye z&(>r+LBOTD>k+)VchxzW(9Q?8)6Ctn14JnFShF8^2$??@H`d?qcO}VThihxOFE>7~ zw#@|L0|%&SSv)p|+d=f3CfSa~x`|%jPsP(l*|b(0#pHvQ>3L=k(Z@v+xgMf1-(Jqh zhuUK|kLQbtMFM4v(o4;J$jF4>D7Qfd_e4v7E_mqfg+@F8(FX+jG9r9gCDR+Z zBn9#0QAE5!9i`RX%tNTvPx`BpY%2vQ-Sm#aRlG@?GN#YS(;+0$ysGv37DBoZW+23+RUQ}3k=yGQHKB=0&vQx zjO*qJ`9z!J2JDH@%oF{S!p2nC_|!^S63x6OEX(GtCJLeXZ%Ps&7ln{+h-~ZAqDRvW zi0c%sZYr6&B_^g|=FzQ&?HdkThM4l~kEmOqWD9q#MVOr~T$>=l$xF&iL@dHjKNX`@ zB`B(hQdtYt!L2DQ8eCAh5rTWH3?zEqXfvVi$ z5iWaj0>BgSQunQoiK;keSeXAl+*=Pd>*1cp<67$L1*wx0723q>%3>Yli>qQtKBEjASZJv`N$Sy6>WI1upj9ea`F2g? zmxQv%gt7;#ls$GVhN)6ks^+q^V;~-bv^hqD{$+tQg~F1vVg&JOHrK|m@oKht%+`Xm zmd7k3Fj=9jSt=7#GRMevqw3=KXzUwQO2z{uwSumTS*(mw-V5ts zWgSxSEKFRd)jh`zU?2J>{fCk)Ti}b3a_Au8=5z+VLZBFC?l_;nJWlU$*C9ld%jE=wqJH1q@7 z4`}1}q{LS_6kYa=gvwF%Dm@cpR8^gi0OVPDHk<+R42Z8m=3XvypOkrPT;)EY^84KC zYmv%*bRcFy=BRvx4S+hpb^bu=d|m34`&~L2CH!@IHU_DZX}Mu0Ci5(SX8~N2`k~Y} zDblw&_I!1rY{nCtxr84{32#UVcga5bG5r_HP?p{s^jwTor6gKK{zuL^z|V2`ehD9x z@Wm1?j;=v^;ab$_T&?c>3xHk#l=9d5#82o%{eYw&GH|bnV&x2H(hu8doMK60lrKT8QSS1hAv8n&yrw+6HAf<;ne~OlViw@Gj!)r7l O(N#+Ms6g9tUTwYACRh5%`W;teg;iVLzWwZ^*LyZ1@%mV0+E z`$7_0DOg*PrYMvu6>IG;{R5nF+B&1-jJ&_eYd{>*sE8m$iujA;IQ5)8dvBIH%S_1J z?B37$p6_#>bDrnfhkBQZcGhaSCCRjGo9~96C5?(}nSt#(j5DT9>$fYCWzMPeu+xIS zwNz|JGUYd!JbZY&Y0&l7*v^1avOQ@9t~bn@PKjLEt;!stD!GF8NG>qLz_-dy&MH=| zjsZI;hs93#mGk6)Cw(8{_;5>XG+EZ<%)*(Z7vFVDco)8O$ZU#fdmabY!M!wT!nN+?IN0s{wPqzuXtP0^d)Qmv&duU z+fSv1s>&)e=mI|?;rAR%qt}JgE*evh0s0uCbA+Bt==|SBo_0KxW})l%YEK)*`_foN*R3?f?E}_6WPOoX1!DF7K}^=@{7773ZyK=P zH5$;p0Nsnwr38I|pb!3A!09xqbV|1AIMDcDFP#SBX&^3}THj#Q{;_>M zv^7)zBTTSH1N+iU?1q-<2TcDm>3A4)eC4#DUfhArxKy%n;86#zFEDL)On zhq149J8mG?hGvE7tB9-<`Oerqg6fY%4-2!P-LBNKI@7NwB2>)^jA86bjvRzmi$h^d zy$-RigX-Cj5_mN&&SU=+`N?{u#aVqaZE?&Bbh)a8c{iq>gta*dYxDJ@4jLXOovozP z`o>jmJN>p}2g9Io20mwf8OMesAHR^$N^bau9D?D9=3W4q7f|LmN#+wI^IK;`qRB-i z^u(Stm2f_3H2OWDau299rfS(INuxp zj#J?fe0+!F42{Pov(BU?G#P<>2~xWxSl8?tdA^oXTM^e>dt~?818M5~vg^SRbb>}BH~>-)fK(54 z*5|rEGO3l$8hrsN?TrGROGv99SAa@IWQ6#YG4&isJqP6xN`2j8S*>AtWd{k9C%tfr zz`sRDkReDY)C$9gx%TMt<#0|Iypo7g!Y%C3Rd2Fa^Y!mp)+=Yw#L(E z(_Fv+xaZbO&js39u;46M@Ql>Iy;#d`Ac^tFBZ(U#iO)i`XFwv`aQS9wxQR{L6qiBT zWt6s&leSHq#KqgKK&^TcKbWR2YLN9V*;uE8Ao3uH6yJ%t&mk8YSv_fLH_!2n39jdc z(4wK=R`C`wrfvktMwRu<{%#C;J{A}6vqEQ7KhN{s3CK;S!DQ*|2HI|r^a7Xq_c%DW zIhOQTa&?R=Zs)o2m%p;A+}a<+|cPgqj3 zYZ4CiVN~ba!G`T%gVFbLjJZ3~dhP!O#V6WpAm?`q?e#Bo^=QWOS6a2@R zJwAL>*$J0D*7pkEk&uA>+J+tvSB5cl2T0ffmmiLoBIQ-ys{bU;Y!}iqT8pC1=now$ zx;p+8Zcp_Q-xDpkro6@%!%p1AwIy&z3S=}le#Q;D)j{-Kyt(gv_;(u!*~R(mh+nA{ Ye$Ic%0}t*Xj73j5$H%w44!_y|0Cq%U$^ZZW diff --git a/regression/ansi-c/arch_flags_mcpu_bad/test.desc b/regression/ansi-c/arch_flags_mcpu_bad/test.desc index 5b43f9022cf..2cfda406b60 100644 --- a/regression/ansi-c/arch_flags_mcpu_bad/test.desc +++ b/regression/ansi-c/arch_flags_mcpu_bad/test.desc @@ -11,7 +11,7 @@ This tests the -mcpu=cortex=a15 flag that should activate ARM-32 mode. The object file 'object.intel' was compiled from 'source.c' with goto-cc on a 64-bit platform: - goto-cc -c source.c + goto-cc -c source.c -o object.intel preproc.i is already pre-processed so that it can be linked in without needing to invoke a pre-processor from a cross-compile toolchain on your diff --git a/regression/ansi-c/arch_flags_mcpu_good/object.arm b/regression/ansi-c/arch_flags_mcpu_good/object.arm index 6593905c6b48c9f45b19be6994f3e27a98ffc1b9..cfd8751c1893a141adadddc10de171d4a5a07646 100644 GIT binary patch literal 4391 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 PB>WbS*7&+HiOKU{4!#ca literal 3704 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 PO-Oi^Qhs?%5+nb=9P%%4 literal 3780 zcmZ{n{c{y(6~~|FZk~nOcq>s6g9tUTwYACRh5%`W;teg;iVLzWwZ^*LyZ1@%mc6@| z-Mu8Cm4dYuX^KLrQnA+l(m%i%r>!$O&dB?lyavP}jfx0Dq=>&bj#JOsv-f7Hv&@9d z&F=l2@A*FGIp=wveW-VtXlJdKSCUN2wgq0zx1`~CmKoZf%Q$1&w0_%>EOSn!hn*Ju zt;Mlj$&}w@^6=s9ra{kNW4i-J$@Zlcdj2qLIwf*tuOf4Za&iUjkz8oj!oVuKIjdN) zItJ{pTq}0MubeLjd>I4~FK4=e-C^ZS-zppZjyVt*6?m;uG>T@4L8uAt%dqCVMmSuR zOiT&v0auoa>zMW`AGAwhnW=vg^Sa>8aiz_ox2C+9q1O!C4H5FDQZ;?EB17p1Y%0?Z zWTfNR)xZvz!q_dp5SCY|Le3D8pI3{f&&J~1*?IL1Whwm6=6pz2J>W^7>9 zJ-~i9(`I>Y5SkE50TCbGl(EV{fJfOZczN6J)J4Ub?S!`5fmzxi7*_LTM-ckpU~oUY z*z%G8h&;mHZfe5BrkxZEx`EL07B@>Jw94@Mnf}o^wp)@zO#j$UPTw{fp*1Bk=;I*X zH;0)%J(7rem}Uj`ddWV~n|OH!KAr}TKlxJKE60QNj14QSGo6}bt$z^1&2pfHg`5kQo&DjaSEFQRH0>WM+>!<&-_c|7t{?ZwEa<_ieK@zq8Uim{%4WL z(6^sT3ssR7s8PeKO5b!#M&!qsdI}<+!pNVcSa(pYJKqy|#7B!!m<3_l*&Qd+(1W>V%|D0Qv-?KS$`h2z~cIM1I}}(03hALr3JBxyONf9J!w-?mfiqxGM6v z2S{?~`=Sf{h=kvBER9|lPP=GKJqGAwh|UpuE}`>(7kS$AP@09V->W@!^xUIq=%|!R zUajazqmDlc_@juQNBC~Sx5t|2zovHA!QDsFz#m{90p<~8E+FPYV)pz^+&gJTWW&P4 zX~+OJVM69%KpsZqy@b4vkj-_O5$(Q1X|%XSG_pPfxI>8h0^t@BZt;0BzoD=>VlLXB z#*E6KZsUFc?nmJL1YAPEwpbsrmh4Mo6+O>sh}#FOeaQMEu?ocM{ezgS(fN_M!rnAs zy=yd}djYx^p-Tz+06`!8x5z^;iDfDg^?}oAROyy%({-Wo!CpEI#M3}rHnqONsQqL6 zdT48={zsT$jRy9mnb-|2GYFafWzz95==jQMLA|&Gn{laRtZ<3Ji0tY>8t zE)HW~>vp|RuC194(^nB$C-R-Kdj!=Vi5?baLAzb4Wp$=sPeiDg4h&-KO0FD)R*OSn zOuY`Vu7m2?j}mw_EzV>A6#2<|q{Uf%GHr282fAEE!n_+(Pr}-qgths4Q3nl=lg?Js zX?^1=x7~i*wZmc1I0K)vzKm-_l8;|VXeBoSLk_`kL~}2I%nK;Axc1=r}m_l{{ZdsjY}>u067Q?SV9PLD}cXN|s)l=en}&LyPPk1If>A~I_Dl`-`kNIeJTQIq<*#j;Yx^2!bpCQo|d z6oG$>jvzyjP)#cgALiPl%a_ABVem>KN(r~LS9}UiWq`f{=qp%x>&b(VhW`Y{TW7rQs$vX;WMV zX_ryjMo!u`aS|7Aw*s~5P5fY*x~M_cyJTaX4uZ&oAX0oM=01m9Xk_)IsogxsHzv5g zSA!M}{kDSlh%t2|KsKtZXZCkv$n&wdc%KzIqxyNC?@mB&It?aEXE)GxgQOR@)W65U zxy`Yp$C9hNnMdAzA0xiN(Y?+5M#8@M(C0{V4Jf<;_T2#cwgB@*WRAqljwEx0m@gr7 zOT--E6GP1G?AJE*c(^i*sXIWz4!Hbqyc8*~@>cyPab~-ap3zzqZAO31 zwW7=8PvQ1dAMriWf@{iad@=0AU0hoNccf58bK_^+pj#b8-^H8z-iLp;fskFCzmE8o ZTH)vXmpt_04#HUUlyiK1%j@u){SVK-WTF57 diff --git a/regression/ansi-c/arch_flags_mthumb_bad/test.desc b/regression/ansi-c/arch_flags_mthumb_bad/test.desc index f163942b27f..2a1c9d3ea88 100644 --- a/regression/ansi-c/arch_flags_mthumb_bad/test.desc +++ b/regression/ansi-c/arch_flags_mthumb_bad/test.desc @@ -11,7 +11,7 @@ This tests the -mthumb flag that should activate ARM-32 mode. The object file 'object.intel' was compiled from 'source.c' with goto-cc on a 64-bit platform: - goto-cc -c source.c + goto-cc -c source.c -o object.intel preproc.i is already pre-processed so that it can be linked in without needing to invoke a pre-processor from a cross-compile toolchain on your diff --git a/regression/ansi-c/arch_flags_mthumb_good/object.arm b/regression/ansi-c/arch_flags_mthumb_good/object.arm index 6a398a5058be91104beb8926a8071eed71ac89b2..9e725a7a4a84a4cf23a41673a91003e9897c5c2d 100644 GIT binary patch literal 4411 zcmai&dvp|69mnt84YNcmi!D`J!8WAWRtRAOfmA8QrL<~sicE`Es>AHg&F+xhneEIh zB!Hq~Yqd1Q@=kbFQv%gutsp2{A4rF)c&gb|2 zJ@1{YeK`G)HihI$p5unhCkAaSyMdE)nVnfd^Z~lkvBNxx{Z8v3L_Zd5&U$VTT5d?< zZ^lx%bTZzYHN&0~BMnc-vU$rVxR`7Xyt1EVX2Hu^q2sw^6t3RV=@b~z-cHQPl$}E8 zxGk2S%{w8>hGn0%1flP^xnM3!)87JO^TwsN~>XTiz^ zW)aJZ88hd3Hdj7C8!u=x+VJsRN2q1n{6W*}B*wcZIj+sRiE&du6-v!ⅅLX0PnFa z-?w^*F{Tlm7(&xPbQU05smo6eUujKRP6<%}`h7eYq8lQ7Nsixxk+ zWWi!njkoCqWF#T-MBYgZ#^>XIGX4EIgX+og$d;y$yX_xZis$`}hS5=I$n8g{@qtOk zgnp_wOtfKxeNb4x({SzVqi=cgHMq*33vMmnc<{@xwP#!=*vbFoX<4M$>36 z9|afZ;USYEE6HXd>#o0RDOeM-(sBKD+MKZhMkfD3OYs;qU%inP=GuX~i44!{VWK%S<-dD@0NM`$^A{2|>(q_oa^(pwu)I{nnCx_2d#E>o$=gs7GX%L~;HM z3_hl(Kl>KdA78i-Az!jv;mb)-U{)7Y?gn%>piktC&jGqrK%e}xmZ~_*CmhgABlPEi zegbH+v|mBm%qm3tD6@g=2eO|#{srNiFQQ_RdKlPeNNq=R_kXn0X)ed)f%r=9xna9i#nB_uR zi)?UFCd;oWh&oj~&!!WYtC;VBb`7*^pmpVp0+L!3nj}o5vlyk*g|#l8&f=hoj*@A5 zndLaj05=HSAQ$HeaU~&ckrXF-u5?@_D5oZzu*6`jhV3|b$9dSEnrQd}83>6tOJpr< z!A1ouhe8ywjeu;#Gzcf?$+CEQo_Kngu7K0Hwm-fS#ot~&tRVR2;h?K<;u%RC2IFvo z+}YGERA8j>GsV49g{Xy|6UyUtQO|f@q3YBLuuj0KRkpEu6u*PwORf>ZgXwD&9m-Xl?xXCr%Wb>Hb8=bpC@&d~4AgmXVEgU!4QprVNoh1@41^ zeLNgnBz&ucZ=+|mw%SQhbmdlhK%x0w83$H0I1e+#9suhA%3wQ&vp6H^q#wEmBzlKL z@1(=pjOxL?dJ@`B$qsr*;g_5e!)r`A+5ry%eh5N$p@4Vu0^TEOFVeqgscIBN9q$o! z{B3S{7v)244;@g**tG20j2i%Y0O+RgNTGuqjq<%;MpkTFgY>+Ds4L%S%>B>ibsp67 zpuPmbd%55tDcDduZb&HI$1T4UDIKCa6f-hg)p@)F)E!*weyR0ksda|bDkk#F^nwDZ z)4DR+#%j~y0*DttT-N?wDe#^MwNnAq*UU~lv6E}~p49M))bOO#AUg9EdQm~tX^13X z&#Jr=pm;6@N;m;Q#i%xxqsU=1iHnM~CruP5fCy7aX ekkTWZzgkcKgdU=yk5_R*qPvvx+l}oQ*#8BhH6A_y literal 3725 zcmZ{n`;!z`702(L*=`n%lg*kaf*NoWOiY$xc44!a5S%3hqohN&vw8TS?diU|+o7j> z=6@c~IRkpPL=AVMsE$S?T=tg;fVit>KHG47OD8Wa(Pl_36NSyuesK0ULIRkKz5 znC{-s`JTr;=k)sJeGe;lFj4UxFA@RMd27`Rogq)yrL|1k!ABfB8fKZlD!q(pf68=N zz86NO7qRTGGX-3FKigp$(O5;Wmgh3ouo*C1%yoo*HL!%?`j#0vzQ+_?y=BmG1yg^c zK2WMUZsd5KW?&6Fk+7m_AUeY+aJ-@LK|I;+I-X$D{;L!g;nO=UBYvOtV5~onSZjr5;dQSSnm~vV*jHN64 zAA53Hzmbl&;fJiIQl8jp_08;3{ABY#DRi#oW*}Rt*8ZvgC?O=s3~LR9Tc!LWW-v zf$7;soS>R|0+vrm%bzD(cag2T|EUxfHf&{KW-hzycr&!=;^>qGl2}uZ19)5lzd*oy z2zc)YNseG>Q} z0hbW)OMg_RiZl~bm+WmujT2vw;a&juN??(IeFVHSQAn)5JDXEf-Jzl=685HxQan5&vw+p;S zWRsT7_babt>PHLnimao5e07#=>XsQsOkY8!ABAb{cM6TKPC379+mYjqhE}~u=uB(b zN7$nml&R+HiP6Z2h67>RhGXLtUr^r6UQpoKV}xHxo^>aor}Mk=Of#pnffXxcUsxvs zAG9;@>kRyQyrlQH$h6>y=5(o8Yrmb4))QB_;|)5V6OCa=w8{HyAmcfBRzIJTN-9G` zjAA-Vsplc}JfuE3)ADTr@KXRk{a!LY=2@`So+TrbJP?@Y9xVlJ+FRL*8JJ~(?IL8) zFzrxAxUN$PoseZ2``XVH%P&{37-0N9HKAgJ!rTOWnNZp6ub1?1)Mx28U!F=+W6xMc z{w+%UGp=AR!L3zrYt_Y+L)7v?z6eJyDy(bHwr9Rt%IB`7ve`9>SSfHk2Y4p2Lxu+2L& za|TK85a}KMw^G2oy`fTuPBv35Jlion5339!a1vrq%KCR^>CX~$HEFJQrK$Q|eJ-Up zUApHW?3}`SU7?p3i*iNQQ_dqy($X=y<+XSV@nOf+ij|{W7A+2!cPRz7h3UqNVq9vM zfWCxMTO;&fv6c%78vR`<$aOQGnuHExbQS0|K(p}jjY!+@OV46kgv*zKyetpeTJm>< zf|%qe84)8pn}sjkjdmh>I}yFnnOY7$%fq$qb+x-8ZIXW*qH*V~?04Yjz}VIlRUSMC zD*_h6nz|LFt*G(Rz;}t0kDa@k@}eBarM{qCg%?+)7vCc<){_@eQUp}G>kp^w-LUS( zRr`Mf^e{9WhBq5HHA7mr1RHpclcr@c{A@~7eUC+trbc2^WyRLivygWd^4gx~r0<1< zQSWC|Rxj`kDTRSwMQx(zmStP1sT&|@gUWjQzt0zVek9gZO_%9ENQf^c#CsE$i72D|E%YW^twZTzNz l5Ak&~PQf