From d1229b8bc5f3fc3f04214d84166746b8d9d3d151 Mon Sep 17 00:00:00 2001 From: hermanventer Date: Sun, 12 Nov 2023 16:57:40 -0800 Subject: [PATCH] Nightly-2023-09-10 --- binaries/summary_store.tar | Bin 2992128 -> 3085312 bytes checker/src/abstract_value.rs | 8 ++++++++ checker/tests/call_graph/fnptr_fold.rs | 8 ++++---- checker/tests/call_graph/static_fold.rs | 8 ++++---- checker/tests/run-pass/read_to_end.rs | 7 +++++-- rust-toolchain.toml | 2 +- 6 files changed, 22 insertions(+), 11 deletions(-) diff --git a/binaries/summary_store.tar b/binaries/summary_store.tar index e193ac892223633154921b3d1795a0290e328126..a319a86964fc2da78487b48603f3b2ed5faa2a0a 100644 GIT binary patch delta 4016 zcmds)eNYr-9LIO>ZjasNI8QksJc5OV+Y{Y$_ik?&5*twSWg^9woL*QflaZG)k?eQfQiLY^Fjf^DLy_ohUES%Rf!j&V6Q| z{r#S|-+uRb?)R+ke3@MT+$&^~+wZQeuc`{v-0QEc3)blF+Dg5=DRX9%WN9krQay^7 zlNFyw@n{}ZRyax4B*{l`Qmjg5m?Zn%1eF{|7zpB~KpD4SF?S0$a7Aqd19*UyK=iq- zDbr~yTC!vjl%rQ0&=Ovmmf~uGQanKN1@m4a8Bq?S~3; za&>HErAZq4OTM-wuzIc@DA#MI{!u)pSUj>cJRXna^Lhzx^?vpqpmxzs*Op>EQ6B8VnAiBVrHu6cMDCHW!O0WYN6$65T{qkQ~!O%Obuy1)#Fuv zw*$)B;Np3Zq&AZj2^at)U;?5xGY|*R00XcJ<7Dxv&01n6mvM@>UPrj8=ek^4fd;TTU24X^ep1Y#f9}2G0Yy80#{<>Ac z^E=VmRas7a-3k741ByHBN?g}sNs-P!8<$oTBBji&U^gBE;l;z4xfrbrP+mHZX+MI zePhChKjvFgv$V7wjckNKphaT6td0~TLad9afj|vA+JBbk5WJ286jIVHm^;T8Qllyq zbt7<(R48T-or5$26{JTIHeB00bZqoXGha(S^Ic|Dr zQ&gE38=VtzZiLrJ<9{It6jQ0BBc~8`M);f2{ETcDYJZ2n2G1a~8`G^zI&$1}#K@Z- z+B^{5G@Q(3JO7K(rNTETAkL9J@I|(6EZBU9D;vlGocIox(DyQvcwNqIhDiKz6P{|| zJ}?f?riNx#|NFA&WVWBL=G!hOuiD!i7hg$9phx>S_g2maTWg?}0F zi|C0yVLsjS_Rja{AHx*x=@T}ZHrvfEU=olEOa`W4yIC~w);G;ReNIO>f=YM6{|4H1 z%u;G364Fr99dzwQ2 z4!YVFZ`CUUtMzg}bRE5;ZM}37I@LkzX#E8`sd+1H$4lR!RSI|a(#R5`uCY zu8YvUMg)d#{BAehoPgsOhz%C&<3&Fohha;pOo1RI6qr4}8qYb(e(J=Hw~LD%%-6Yl zKcXY95QUDkGY^pQs8cajpjVBP@5Eoe#+*q)QVVpxr;q71Ht)(kjh`^EKgNdX!og3N zGvjdAJ>re5^~9mh6Lci?d5X^>h$*Pye)e9R_cWcJg>xIkr4DA|-u*BP*F~Z3Y-TOV zpu#UEhj4oiV+Bie`p-7N2+`?xVN*)9*nW`d#y>fjb4DZ`piX1Ek9oz8*KZdu86d$n zyZvRs>J_nEGwu&_P0celb4}}Du6a3%83Q3m+K6MFtf(W7b)Njuk9D%@)BgEn^C&%V Zd>!>v=V@*ghnx?5@?e6A$z5W<`8TgZ?BD=y^T0#4 z`PmTL%Xh7@sSc}6w5s{}HX9>4dQysetSN)6E|&EgVj6?7(`mE+9VZ=6vZ;18Ulmom zBhQ`}7-ff1PSugmh}P9nt*p?_3M|lo5Ws;@5C*h>2ReX2IM9O#5DC_RC=d-|KrAqT zI1mrkf&`EVjKBnvK;X<|Uj#jbJ8J}G?o3@`}`75#>?cAl{B#PT{CmU`B^$f z%4Ve-5eac6_59anuFbyx^Y%2q;G^NCa`nHO_xF0Vq^2b;J~*je+%AJOkWR(z z8Q+I=AD<0O@{3V*92JuB!9*mWw*qS6t~14Cq5$WRZ^gJmH#Y8TLxb>#_&C(td9JT1We=!~iR3Azsj^?@#dyjqWUlj-hU7fKy2IgjcfagvEDoJhtCaSYkJ z0qaRkA$Fl9OY0JHL#zhl9Xes8dImKHj*H%iv&rKP&~kVkRA1V2rwY|V;0RVnlc^&( zoP2;-*Xr(g7wkJ7ac|M{oS*Y@eGDwJ?;KX>YZu { return self.and(consequent); } if let Expression::Or { left: x, right: y } = &self.expression { + if alternate.as_bool_if_known().unwrap_or_default() { + if let Expression::LogicalNot { operand: x1 } = &x.expression { + if y.eq(&consequent) { + // [if (!x1 || y) { y } else { true } -> x1 || y + return x1.or(y.clone()); + } + } + } match &consequent.expression { Expression::LogicalNot { operand } if x.eq(operand) => { // [if x || y { !x } else { z }] -> [!x && y || !x && z] -> !x && (y || z) diff --git a/checker/tests/call_graph/fnptr_fold.rs b/checker/tests/call_graph/fnptr_fold.rs index 5a889a41..21b26b50 100644 --- a/checker/tests/call_graph/fnptr_fold.rs +++ b/checker/tests/call_graph/fnptr_fold.rs @@ -68,10 +68,10 @@ commit; /* EXPECTED:CALL_SITES{ "files": [ "tests/call_graph/fnptr_fold.rs", - "/rustc/69e97df5ce571a777acd654ec3697ae8d25962ea/library/std/src/io/stdio.rs", - "/rustc/69e97df5ce571a777acd654ec3697ae8d25962ea/library/core/src/fmt/mod.rs", - "/rustc/69e97df5ce571a777acd654ec3697ae8d25962ea/library/core/src/slice/mod.rs", - "/rustc/69e97df5ce571a777acd654ec3697ae8d25962ea/library/core/src/ptr/metadata.rs" + "/rustc/8ed4537d7c238eb77509d82445cf1cb861a3b5ff/library/std/src/io/stdio.rs", + "/rustc/8ed4537d7c238eb77509d82445cf1cb861a3b5ff/library/core/src/fmt/mod.rs", + "/rustc/8ed4537d7c238eb77509d82445cf1cb861a3b5ff/library/core/src/slice/mod.rs", + "/rustc/8ed4537d7c238eb77509d82445cf1cb861a3b5ff/library/core/src/ptr/metadata.rs" ], "callables": [ { diff --git a/checker/tests/call_graph/static_fold.rs b/checker/tests/call_graph/static_fold.rs index 69d37073..f3058d29 100644 --- a/checker/tests/call_graph/static_fold.rs +++ b/checker/tests/call_graph/static_fold.rs @@ -64,10 +64,10 @@ commit; /* EXPECTED:CALL_SITES{ "files": [ "tests/call_graph/static_fold.rs", - "/rustc/69e97df5ce571a777acd654ec3697ae8d25962ea/library/std/src/io/stdio.rs", - "/rustc/69e97df5ce571a777acd654ec3697ae8d25962ea/library/core/src/fmt/mod.rs", - "/rustc/69e97df5ce571a777acd654ec3697ae8d25962ea/library/core/src/slice/mod.rs", - "/rustc/69e97df5ce571a777acd654ec3697ae8d25962ea/library/core/src/ptr/metadata.rs" + "/rustc/8ed4537d7c238eb77509d82445cf1cb861a3b5ff/library/std/src/io/stdio.rs", + "/rustc/8ed4537d7c238eb77509d82445cf1cb861a3b5ff/library/core/src/fmt/mod.rs", + "/rustc/8ed4537d7c238eb77509d82445cf1cb861a3b5ff/library/core/src/slice/mod.rs", + "/rustc/8ed4537d7c238eb77509d82445cf1cb861a3b5ff/library/core/src/ptr/metadata.rs" ], "callables": [ { diff --git a/checker/tests/run-pass/read_to_end.rs b/checker/tests/run-pass/read_to_end.rs index 590a1c46..6a233ea9 100644 --- a/checker/tests/run-pass/read_to_end.rs +++ b/checker/tests/run-pass/read_to_end.rs @@ -13,9 +13,12 @@ use std::io::{Cursor, Read, Result}; pub fn t1(buf: &[u8]) -> Result<()> { let mut reader = Cursor::new(buf); let mut v = Vec::with_capacity(1); - reader.read_to_end(&mut v)?; // todo: fix this - //verify!(v.len() == 0); // ~ possible false verification condition + reader.read_to_end(&mut v)?; //~ slice index starts at after slice end + //~ related location + //~ related location + // todo: fix this + //verify!(v.len() == 0); // ~ possible false verification condition Ok(()) } diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 7a418154..e139bd3e 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,3 +1,3 @@ [toolchain] -channel = "nightly-2023-08-27" +channel = "nightly-2023-09-10" components = [ "clippy", "rustfmt", "rustc-dev", "rust-src", "rust-std", "llvm-tools-preview" ]