File tree Expand file tree Collapse file tree 1 file changed +18
-4
lines changed
c2rust-analyze/tests/filecheck Expand file tree Collapse file tree 1 file changed +18
-4
lines changed Original file line number Diff line number Diff line change @@ -15,15 +15,29 @@ unsafe fn bad(p: NonNull<u8>) {
1515 * p. as_ptr ( ) = 1 ;
1616}
1717
18- // Analysis of `bad2 ` should also fail because it has a callee on which analysis failed.
19- // CHECK-NOT: final labeling for "bad2 "
20- unsafe fn bad2 ( p : NonNull < u8 > ) {
18+ // Analysis of `call_bad ` should also fail because it has a callee on which analysis failed.
19+ // CHECK-NOT: final labeling for "call_bad "
20+ unsafe fn call_bad ( p : NonNull < u8 > ) {
2121 bad ( p) ;
2222}
2323
24+ // Analysis of this function fails, but it also calls `good`. Failures should not propagate from
25+ // caller to callee (only callee to caller), so analysis of `good` should still succeed.
26+ // CHECK-NOT: final labeling for "bad_call_good"
27+ unsafe fn bad_call_good ( p : NonNull < u8 > ) {
28+ * p. as_ptr ( ) = 1 ;
29+ good ( p. as_ptr ( ) ) ;
30+ }
31+
2432// CHECK: analysis of DefId({{.*}}::bad) failed:
2533// CHECK-SAME: UnknownDef
2634// CHECK-SAME: NonNull::<u8>::as_ptr
2735
28- // CHECK: analysis of DefId({{.*}}::bad2 ) failed:
36+ // CHECK: analysis of DefId({{.*}}::call_bad ) failed:
2937// CHECK-SAME: analysis failed on callee DefId({{.*}}::bad)
38+
39+ // CHECK: analysis of DefId({{.*}}::bad_call_good) failed:
40+ // CHECK-SAME: UnknownDef
41+ // CHECK-SAME: NonNull::<u8>::as_ptr
42+
43+ // CHECK: saw errors in 3 / 4 functions
You can’t perform that action at this time.
0 commit comments