tests/codegen-llvm/bounds-checking/gep-issue-133979.rs fails to optimize out bounds checks in 2021 edition
Open
Nobody has claimed this yet.
A-testsuite
C-bug
needs-triage
T-compiler
- Dominant language
- Rust
- Stars
- 119k
- Forks
- 16.1k
- PR merge metrics
- PR metrics pending
Description
I tried this code:
diff --git a/tests/codegen-llvm/bounds-checking/gep-issue-133979.rs b/tests/codegen-llvm/bounds-checking/gep-issue-133979.rs
index 876bdbfb0e1..9a00672e70c 100644
--- a/tests/codegen-llvm/bounds-checking/gep-issue-133979.rs
+++ b/tests/codegen-llvm/bounds-checking/gep-issue-133979.rs
@@ -4,0 +5,2 @@
+//@ revisions: e2015 e2021
+//@[e2021] edition: 2021
I expected to see this happen: The test succeeds in both revisions.
Instead, this happened: "error in revision e2021: verification with 'FileCheck' failed"
error in revision `e2021`: verification with 'FileCheck' failed
status: exit status: 1
command: "/home/ci/upstream/build/x86_64-unknown-linux-gnu/ci-llvm/bin/FileCheck" "--input-file" "/home/ci/upstream/build/x86_64-unknown-linux-gnu/test/codegen-llvm/bounds-checking/gep-issue-133979.e2021/gep-issue-133979.ll" "/home/ci/upstream/tests/codegen-llvm/bounds-checking/gep-issue-133979.rs" "--check-prefix=CHECK" "--check-prefix" "e2021" "--allow-unused-prefixes" "--dump-input-context" "100"
stdout: none
--- stderr -------------------------------
/home/ci/upstream/tests/codegen-llvm/bounds-checking/gep-issue-133979.rs:14:16: error: CHECK-NOT: excluded string found in input
// CHECK-NOT: panic_bounds_check
^
/home/ci/upstream/build/x86_64-unknown-linux-gnu/test/codegen-llvm/bounds-checking/gep-issue-133979.e2021/gep-issue-133979.ll:43:25: note: found here
; call core::panicking::panic_bounds_check
^~~~~~~~~~~~~~~~~~
Input file: /home/ci/upstream/build/x86_64-unknown-linux-gnu/test/codegen-llvm/bounds-checking/gep-issue-133979.e2021/gep-issue-133979.ll
Check file: /home/ci/upstream/tests/codegen-llvm/bounds-checking/gep-issue-133979.rs
-dump-input=help explains the following input dump.
Input was:
<<<<<<
1: ; ModuleID = 'gep_issue_133979.9fd4e3edff7183c2-cgu.0'
2: source_filename = "gep_issue_133979.9fd4e3edff7183c2-cgu.0"
3: target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
4: target triple = "x86_64-unknown-linux-gnu"
5:
6: @alloc_271220dd8e25859e4beedcee4ce199a9 = private unnamed_addr constant [73 x i8] c"/home/ci/upstream/tests/codegen-llvm/bounds-checking/gep-issue-133979.rs\00", align 1
7: @alloc_2058b1529a121646e922acfa6215d5e2 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @alloc_271220dd8e25859e4beedcee4ce199a9, [16 x i8] c"H\00\00\00\00\00\00\00\15\00\00\00\1F\00\00\00" }>, align 8
8:
9: ; Function Attrs: nonlazybind uwtable
10: define noundef i32 @test(ptr noalias nofree noundef nonnull readonly align 8 captures(none) %a.0, i64 noundef range(i64 0, 576460752303423488) %a.1) unnamed_addr #0 personality ptr @rust_eh_personality {
11: start:
12: %0 = icmp eq i64 %a.1, 0
13: br i1 %0, label %_RINvXs2J_NtNtCs9cuWXJ791ES_4core5slice4iterINtB7_4IterRShENtNtNtNtBb_4iter6traits8iterator8Iterator4foldmNCINvNvXs_NtNtB10_8adapters9enumerateINtB1P_9EnumeratepEBU_4fold9enumerateRBQ_mNCINvNtB1R_3map8map_foldTjB2R_EmmNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0NCINvXsy_NtBY_5accummNtB4i_3Sum3sumINtB31_3MapIB2h_BF_EB3t_EE0E0E0EB3x_.exit, label %bb8.i
14:
15: bb8.i: ; preds = %start, %_RNCINvNvXs_NtNtNtCs9cuWXJ791ES_4core4iter8adapters9enumerateINtB9_9EnumeratepENtNtNtBd_6traits8iterator8Iterator4fold9enumerateRRShmNCINvNtBb_3map8map_foldTjB21_EmmNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0NCINvXsy_NtB1i_5accummNtB3r_3Sum3sumINtB2b_3MapIBX_INtNtNtBf_5slice4iter4IterB22_EEB2C_EE0E0E0B2G_.exit.i
16: %_9.0.i10.i = phi i64 [ %_9.0.i.i, %_RNCINvNvXs_NtNtNtCs9cuWXJ791ES_4core4iter8adapters9enumerateINtB9_9EnumeratepENtNtNtBd_6traits8iterator8Iterator4fold9enumerateRRShmNCINvNtBb_3map8map_foldTjB21_EmmNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0NCINvXsy_NtB1i_5accummNtB3r_3Sum3sumINtB2b_3MapIBX_INtNtNtBf_5slice4iter4IterB22_EEB2C_EE0E0E0B2G_.exit.i ], [ 0, %start ]
17: %acc.sroa.0.0.i = phi i32 [ %_4.0.i.i.i.i, %_RNCINvNvXs_NtNtNtCs9cuWXJ791ES_4core4iter8adapters9enumerateINtB9_9EnumeratepENtNtNtBd_6traits8iterator8Iterator4fold9enumerateRRShmNCINvNtBb_3map8map_foldTjB21_EmmNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0NCINvXsy_NtB1i_5accummNtB3r_3Sum3sumINtB2b_3MapIBX_INtNtNtBf_5slice4iter4IterB22_EEB2C_EE0E0E0B2G_.exit.i ], [ 0, %start ]
18: %_45.i = getelementptr inbounds nuw { ptr, i64 }, ptr %a.0, i64 %_9.0.i10.i
19: tail call void @llvm.experimental.noalias.scope.decl(metadata !4)
20: tail call void @llvm.experimental.noalias.scope.decl(metadata !7)
21: tail call void @llvm.experimental.noalias.scope.decl(metadata !10)
22: %_8.0.i.i.i.i = load ptr, ptr %_45.i, align 8, !alias.scope !13, !noalias !14, !nonnull !20, !noundef !20
23: %1 = getelementptr inbounds nuw i8, ptr %_45.i, i64 8
24: %_8.1.i.i.i.i = load i64, ptr %1, align 8, !alias.scope !13, !noalias !14, !noundef !20
25: %2 = icmp samesign eq i64 %_8.1.i.i.i.i, 0
26: br i1 %2, label %_RNCINvNvXs_NtNtNtCs9cuWXJ791ES_4core4iter8adapters9enumerateINtB9_9EnumeratepENtNtNtBd_6traits8iterator8Iterator4fold9enumerateRRShmNCINvNtBb_3map8map_foldTjB21_EmmNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0NCINvXsy_NtB1i_5accummNtB3r_3Sum3sumINtB2b_3MapIBX_INtNtNtBf_5slice4iter4IterB22_EEB2C_EE0E0E0B2G_.exit.i, label %bb8.i.i.i.i.i
27:
28: bb8.i.i.i.i.i: ; preds = %bb8.i, %_RNCINvNvXs_NtNtNtCs9cuWXJ791ES_4core4iter8adapters9enumerateINtB9_9EnumeratepENtNtNtBd_6traits8iterator8Iterator4fold9enumerateRhmNCINvNtBb_6filter11filter_foldTjB21_EmNCNCNvCsdIMlPjZsNSo_16gep_issue_1339794test00NCINvNtBb_3map8map_foldB2y_mmNCB2I_s_0NCINvXsy_NtB1i_5accummNtB4a_3Sum3sumINtB3u_3MapINtB29_6FilterIBX_INtNtNtBf_5slice4iter4IterhEEB2G_EB3S_EE0E0E0E0B2M_.exit.i.i.i.i.i
29: %_9.0.i8.i.i.i.i.i = phi i64 [ %_9.0.i.i.i.i.i.i, %_RNCINvNvXs_NtNtNtCs9cuWXJ791ES_4core4iter8adapters9enumerateINtB9_9EnumeratepENtNtNtBd_6traits8iterator8Iterator4fold9enumerateRhmNCINvNtBb_6filter11filter_foldTjB21_EmNCNCNvCsdIMlPjZsNSo_16gep_issue_1339794test00NCINvNtBb_3map8map_foldB2y_mmNCB2I_s_0NCINvXsy_NtB1i_5accummNtB4a_3Sum3sumINtB3u_3MapINtB29_6FilterIBX_INtNtNtBf_5slice4iter4IterhEEB2G_EB3S_EE0E0E0E0B2M_.exit.i.i.i.i.i ], [ 0, %bb8.i ]
30: %acc.sroa.0.0.i.i.i.i.i = phi i32 [ %_0.sroa.0.0.i.i.i.i.i.i.i, %_RNCINvNvXs_NtNtNtCs9cuWXJ791ES_4core4iter8adapters9enumerateINtB9_9EnumeratepENtNtNtBd_6traits8iterator8Iterator4fold9enumerateRhmNCINvNtBb_6filter11filter_foldTjB21_EmNCNCNvCsdIMlPjZsNSo_16gep_issue_1339794test00NCINvNtBb_3map8map_foldB2y_mmNCB2I_s_0NCINvXsy_NtB1i_5accummNtB4a_3Sum3sumINtB3u_3MapINtB29_6FilterIBX_INtNtNtBf_5slice4iter4IterhEEB2G_EB3S_EE0E0E0E0B2M_.exit.i.i.i.i.i ], [ 0, %bb8.i ]
31: %_45.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %_8.0.i.i.i.i, i64 %_9.0.i8.i.i.i.i.i
32: tail call void @llvm.experimental.noalias.scope.decl(metadata !21)
33: tail call void @llvm.experimental.noalias.scope.decl(metadata !24)
34: %_4.i.i.i.i.i.i.i.i = load i8, ptr %_45.i.i.i.i.i, align 1, !alias.scope !27, !noalias !28, !noundef !20
35: %_0.i.i.i.i.i.i.i.i = icmp eq i8 %_4.i.i.i.i.i.i.i.i, 65
36: br i1 %_0.i.i.i.i.i.i.i.i, label %bb1.i.i.i.i.i.i.i.i.i, label %_RNCINvNvXs_NtNtNtCs9cuWXJ791ES_4core4iter8adapters9enumerateINtB9_9EnumeratepENtNtNtBd_6traits8iterator8Iterator4fold9enumerateRhmNCINvNtBb_6filter11filter_foldTjB21_EmNCNCNvCsdIMlPjZsNSo_16gep_issue_1339794test00NCINvNtBb_3map8map_foldB2y_mmNCB2I_s_0NCINvXsy_NtB1i_5accummNtB4a_3Sum3sumINtB3u_3MapINtB29_6FilterIBX_INtNtNtBf_5slice4iter4IterhEEB2G_EB3S_EE0E0E0E0B2M_.exit.i.i.i.i.i
37:
38: bb1.i.i.i.i.i.i.i.i.i: ; preds = %bb8.i.i.i.i.i
39: %_9.i.i.i.i.i.i.i.i.i = icmp ult i64 %_9.0.i8.i.i.i.i.i, %_8.1.i.i.i.i
40: br i1 %_9.i.i.i.i.i.i.i.i.i, label %_RNCINvNtNtNtCs9cuWXJ791ES_4core4iter8adapters3map8map_foldTjRhEmmNCNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0s_0NCINvXsy_NtNtB8_6traits5accummNtB1V_3Sum3sumINtB4_3MapINtNtB6_6filter6FilterINtNtB6_9enumerate9EnumerateINtNtNtBa_5slice4iter4IterhEENCB13_0EB11_EE0E0B17_.exit.i.i.i.i.i.i.i, label %panic1.i.i.i.i.i.i.i.i.i
41:
42: panic1.i.i.i.i.i.i.i.i.i: ; preds = %bb1.i.i.i.i.i.i.i.i.i
43: ; call core::panicking::panic_bounds_check
not:14 !~~~~~~~~~~~~~~~~~ error: no match expected
44: tail call void @_RNvNtCs9cuWXJ791ES_4core9panicking18panic_bounds_check(i64 noundef %_9.0.i8.i.i.i.i.i, i64 noundef %_8.1.i.i.i.i, ptr noalias nofree noundef readonly align 8 captures(address, read_provenance) dereferenceable(24) @alloc_2058b1529a121646e922acfa6215d5e2) #4, !noalias !35
45: unreachable
46:
47: _RNCINvNtNtNtCs9cuWXJ791ES_4core4iter8adapters3map8map_foldTjRhEmmNCNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0s_0NCINvXsy_NtNtB8_6traits5accummNtB1V_3Sum3sumINtB4_3MapINtNtB6_6filter6FilterINtNtB6_9enumerate9EnumerateINtNtNtBa_5slice4iter4IterhEENCB13_0EB11_EE0E0B17_.exit.i.i.i.i.i.i.i: ; preds = %bb1.i.i.i.i.i.i.i.i.i
48: %_4.0.i.i.i.i.i.i.i.i.i = add i32 %acc.sroa.0.0.i.i.i.i.i, 65
49: br label %_RNCINvNvXs_NtNtNtCs9cuWXJ791ES_4core4iter8adapters9enumerateINtB9_9EnumeratepENtNtNtBd_6traits8iterator8Iterator4fold9enumerateRhmNCINvNtBb_6filter11filter_foldTjB21_EmNCNCNvCsdIMlPjZsNSo_16gep_issue_1339794test00NCINvNtBb_3map8map_foldB2y_mmNCB2I_s_0NCINvXsy_NtB1i_5accummNtB4a_3Sum3sumINtB3u_3MapINtB29_6FilterIBX_INtNtNtBf_5slice4iter4IterhEEB2G_EB3S_EE0E0E0E0B2M_.exit.i.i.i.i.i
50:
51: _RNCINvNvXs_NtNtNtCs9cuWXJ791ES_4core4iter8adapters9enumerateINtB9_9EnumeratepENtNtNtBd_6traits8iterator8Iterator4fold9enumerateRhmNCINvNtBb_6filter11filter_foldTjB21_EmNCNCNvCsdIMlPjZsNSo_16gep_issue_1339794test00NCINvNtBb_3map8map_foldB2y_mmNCB2I_s_0NCINvXsy_NtB1i_5accummNtB4a_3Sum3sumINtB3u_3MapINtB29_6FilterIBX_INtNtNtBf_5slice4iter4IterhEEB2G_EB3S_EE0E0E0E0B2M_.exit.i.i.i.i.i: ; preds = %_RNCINvNtNtNtCs9cuWXJ791ES_4core4iter8adapters3map8map_foldTjRhEmmNCNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0s_0NCINvXsy_NtNtB8_6traits5accummNtB1V_3Sum3sumINtB4_3MapINtNtB6_6filter6FilterINtNtB6_9enumerate9EnumerateINtNtNtBa_5slice4iter4IterhEENCB13_0EB11_EE0E0B17_.exit.i.i.i.i.i.i.i, %bb8.i.i.i.i.i
52: %_0.sroa.0.0.i.i.i.i.i.i.i = phi i32 [ %_4.0.i.i.i.i.i.i.i.i.i, %_RNCINvNtNtNtCs9cuWXJ791ES_4core4iter8adapters3map8map_foldTjRhEmmNCNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0s_0NCINvXsy_NtNtB8_6traits5accummNtB1V_3Sum3sumINtB4_3MapINtNtB6_6filter6FilterINtNtB6_9enumerate9EnumerateINtNtNtBa_5slice4iter4IterhEENCB13_0EB11_EE0E0B17_.exit.i.i.i.i.i.i.i ], [ %acc.sroa.0.0.i.i.i.i.i, %bb8.i.i.i.i.i ]
53: %_9.0.i.i.i.i.i.i = add nuw i64 %_9.0.i8.i.i.i.i.i, 1
54: %_28.i.i.i.i.i = icmp eq i64 %_9.0.i.i.i.i.i.i, %_8.1.i.i.i.i
55: br i1 %_28.i.i.i.i.i, label %_RNCINvNvXs_NtNtNtCs9cuWXJ791ES_4core4iter8adapters9enumerateINtB9_9EnumeratepENtNtNtBd_6traits8iterator8Iterator4fold9enumerateRRShmNCINvNtBb_3map8map_foldTjB21_EmmNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0NCINvXsy_NtB1i_5accummNtB3r_3Sum3sumINtB2b_3MapIBX_INtNtNtBf_5slice4iter4IterB22_EEB2C_EE0E0E0B2G_.exit.i, label %bb8.i.i.i.i.i
56:
57: _RNCINvNvXs_NtNtNtCs9cuWXJ791ES_4core4iter8adapters9enumerateINtB9_9EnumeratepENtNtNtBd_6traits8iterator8Iterator4fold9enumerateRRShmNCINvNtBb_3map8map_foldTjB21_EmmNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0NCINvXsy_NtB1i_5accummNtB3r_3Sum3sumINtB2b_3MapIBX_INtNtNtBf_5slice4iter4IterB22_EEB2C_EE0E0E0B2G_.exit.i: ; preds = %_RNCINvNvXs_NtNtNtCs9cuWXJ791ES_4core4iter8adapters9enumerateINtB9_9EnumeratepENtNtNtBd_6traits8iterator8Iterator4fold9enumerateRhmNCINvNtBb_6filter11filter_foldTjB21_EmNCNCNvCsdIMlPjZsNSo_16gep_issue_1339794test00NCINvNtBb_3map8map_foldB2y_mmNCB2I_s_0NCINvXsy_NtB1i_5accummNtB4a_3Sum3sumINtB3u_3MapINtB29_6FilterIBX_INtNtNtBf_5slice4iter4IterhEEB2G_EB3S_EE0E0E0E0B2M_.exit.i.i.i.i.i, %bb8.i
58: %_0.sroa.0.0.i.i.i.i.i = phi i32 [ 0, %bb8.i ], [ %_0.sroa.0.0.i.i.i.i.i.i.i, %_RNCINvNvXs_NtNtNtCs9cuWXJ791ES_4core4iter8adapters9enumerateINtB9_9EnumeratepENtNtNtBd_6traits8iterator8Iterator4fold9enumerateRhmNCINvNtBb_6filter11filter_foldTjB21_EmNCNCNvCsdIMlPjZsNSo_16gep_issue_1339794test00NCINvNtBb_3map8map_foldB2y_mmNCB2I_s_0NCINvXsy_NtB1i_5accummNtB4a_3Sum3sumINtB3u_3MapINtB29_6FilterIBX_INtNtNtBf_5slice4iter4IterhEEB2G_EB3S_EE0E0E0E0B2M_.exit.i.i.i.i.i ]
59: %_4.0.i.i.i.i = add i32 %_0.sroa.0.0.i.i.i.i.i, %acc.sroa.0.0.i
60: %_9.0.i.i = add nuw nsw i64 %_9.0.i10.i, 1
61: %_28.i = icmp eq i64 %_9.0.i.i, %a.1
62: br i1 %_28.i, label %_RINvXs2J_NtNtCs9cuWXJ791ES_4core5slice4iterINtB7_4IterRShENtNtNtNtBb_4iter6traits8iterator8Iterator4foldmNCINvNvXs_NtNtB10_8adapters9enumerateINtB1P_9EnumeratepEBU_4fold9enumerateRBQ_mNCINvNtB1R_3map8map_foldTjB2R_EmmNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0NCINvXsy_NtBY_5accummNtB4i_3Sum3sumINtB31_3MapIB2h_BF_EB3t_EE0E0E0EB3x_.exit, label %bb8.i
63:
64: _RINvXs2J_NtNtCs9cuWXJ791ES_4core5slice4iterINtB7_4IterRShENtNtNtNtBb_4iter6traits8iterator8Iterator4foldmNCINvNvXs_NtNtB10_8adapters9enumerateINtB1P_9EnumeratepEBU_4fold9enumerateRBQ_mNCINvNtB1R_3map8map_foldTjB2R_EmmNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0NCINvXsy_NtBY_5accummNtB4i_3Sum3sumINtB31_3MapIB2h_BF_EB3t_EE0E0E0EB3x_.exit: ; preds = %_RNCINvNvXs_NtNtNtCs9cuWXJ791ES_4core4iter8adapters9enumerateINtB9_9EnumeratepENtNtNtBd_6traits8iterator8Iterator4fold9enumerateRRShmNCINvNtBb_3map8map_foldTjB21_EmmNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0NCINvXsy_NtB1i_5accummNtB3r_3Sum3sumINtB2b_3MapIBX_INtNtNtBf_5slice4iter4IterB22_EEB2C_EE0E0E0B2G_.exit.i, %start
65: %_0.sroa.0.0.i = phi i32 [ 0, %start ], [ %_4.0.i.i.i.i, %_RNCINvNvXs_NtNtNtCs9cuWXJ791ES_4core4iter8adapters9enumerateINtB9_9EnumeratepENtNtNtBd_6traits8iterator8Iterator4fold9enumerateRRShmNCINvNtBb_3map8map_foldTjB21_EmmNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0NCINvXsy_NtB1i_5accummNtB3r_3Sum3sumINtB2b_3MapIBX_INtNtNtBf_5slice4iter4IterB22_EEB2C_EE0E0E0B2G_.exit.i ]
66: ret i32 %_0.sroa.0.0.i
67: }
68:
69: ; Function Attrs: nounwind nonlazybind uwtable
70: declare noundef range(i32 0, 10) i32 @rust_eh_personality(i32 noundef, i32 noundef, i64 noundef, ptr noundef, ptr noundef) unnamed_addr #1
71:
72: ; core::panicking::panic_bounds_check
73: ; Function Attrs: cold minsize noinline noreturn nonlazybind optsize uwtable
74: declare void @_RNvNtCs9cuWXJ791ES_4core9panicking18panic_bounds_check(i64 noundef, i64 noundef, ptr noalias nofree noundef readonly align 8 captures(address, read_provenance) dereferenceable(24)) unnamed_addr #2
75:
76: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite)
77: declare void @llvm.experimental.noalias.scope.decl(metadata) #3
78:
79: attributes #0 = { nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" }
80: attributes #1 = { nounwind nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" }
81: attributes #2 = { cold minsize noinline noreturn nonlazybind optsize uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" }
82: attributes #3 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) }
83: attributes #4 = { noinline noreturn }
84:
85: !llvm.module.flags = !{!0, !1, !2}
86: !llvm.ident = !{!3}
87:
88: !0 = !{i32 8, !"PIC Level", i32 2}
89: !1 = !{i32 2, !"RtLibUseGOT", i32 1}
90: !2 = !{i32 7, !"uwtable", i32 2}
91: !3 = !{!"rustc version 1.99.0-dev"}
92: !4 = !{!5}
93: !5 = distinct !{!5, !6, !"_RNCINvNvXs_NtNtNtCs9cuWXJ791ES_4core4iter8adapters9enumerateINtB9_9EnumeratepENtNtNtBd_6traits8iterator8Iterator4fold9enumerateRRShmNCINvNtBb_3map8map_foldTjB21_EmmNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0NCINvXsy_NtB1i_5accummNtB3r_3Sum3sumINtB2b_3MapIBX_INtNtNtBf_5slice4iter4IterB22_EEB2C_EE0E0E0B2G_: %item"}
94: !6 = distinct !{!6, !"_RNCINvNvXs_NtNtNtCs9cuWXJ791ES_4core4iter8adapters9enumerateINtB9_9EnumeratepENtNtNtBd_6traits8iterator8Iterator4fold9enumerateRRShmNCINvNtBb_3map8map_foldTjB21_EmmNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0NCINvXsy_NtB1i_5accummNtB3r_3Sum3sumINtB2b_3MapIBX_INtNtNtBf_5slice4iter4IterB22_EEB2C_EE0E0E0B2G_"}
95: !7 = !{!8}
96: !8 = distinct !{!8, !9, !"_RNCINvNtNtNtCs9cuWXJ791ES_4core4iter8adapters3map8map_foldTjRRShEmmNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0NCINvXsy_NtNtB8_6traits5accummNtB1S_3Sum3sumINtB4_3MapINtNtB6_9enumerate9EnumerateINtNtNtBa_5slice4iter4IterBX_EEB13_EE0E0B17_: %elt.1"}
97: !9 = distinct !{!9, !"_RNCINvNtNtNtCs9cuWXJ791ES_4core4iter8adapters3map8map_foldTjRRShEmmNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0NCINvXsy_NtNtB8_6traits5accummNtB1S_3Sum3sumINtB4_3MapINtNtB6_9enumerate9EnumerateINtNtNtBa_5slice4iter4IterBX_EEB13_EE0E0B17_"}
98: !10 = !{!11}
99: !11 = distinct !{!11, !12, !"_RNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0B3_: %_2.1"}
100: !12 = distinct !{!12, !"_RNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0B3_"}
101: !13 = !{!11, !8, !5}
102: !14 = !{!15, !16, !17, !18}
103: !15 = distinct !{!15, !12, !"_RNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0B3_: %_1"}
104: !16 = distinct !{!16, !9, !"_RNCINvNtNtNtCs9cuWXJ791ES_4core4iter8adapters3map8map_foldTjRRShEmmNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0NCINvXsy_NtNtB8_6traits5accummNtB1S_3Sum3sumINtB4_3MapINtNtB6_9enumerate9EnumerateINtNtNtBa_5slice4iter4IterBX_EEB13_EE0E0B17_: %_1"}
105: !17 = distinct !{!17, !6, !"_RNCINvNvXs_NtNtNtCs9cuWXJ791ES_4core4iter8adapters9enumerateINtB9_9EnumeratepENtNtNtBd_6traits8iterator8Iterator4fold9enumerateRRShmNCINvNtBb_3map8map_foldTjB21_EmmNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0NCINvXsy_NtB1i_5accummNtB3r_3Sum3sumINtB2b_3MapIBX_INtNtNtBf_5slice4iter4IterB22_EEB2C_EE0E0E0B2G_: %_1"}
106: !18 = distinct !{!18, !19, !"_RINvXs2J_NtNtCs9cuWXJ791ES_4core5slice4iterINtB7_4IterRShENtNtNtNtBb_4iter6traits8iterator8Iterator4foldmNCINvNvXs_NtNtB10_8adapters9enumerateINtB1P_9EnumeratepEBU_4fold9enumerateRBQ_mNCINvNtB1R_3map8map_foldTjB2R_EmmNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0NCINvXsy_NtBY_5accummNtB4i_3Sum3sumINtB31_3MapIB2h_BF_EB3t_EE0E0E0EB3x_: %f"}
107: !19 = distinct !{!19, !"_RINvXs2J_NtNtCs9cuWXJ791ES_4core5slice4iterINtB7_4IterRShENtNtNtNtBb_4iter6traits8iterator8Iterator4foldmNCINvNvXs_NtNtB10_8adapters9enumerateINtB1P_9EnumeratepEBU_4fold9enumerateRBQ_mNCINvNtB1R_3map8map_foldTjB2R_EmmNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0NCINvXsy_NtBY_5accummNtB4i_3Sum3sumINtB31_3MapIB2h_BF_EB3t_EE0E0E0EB3x_"}
108: !20 = !{}
109: !21 = !{!22}
110: !22 = distinct !{!22, !23, !"_RNCINvNvXs_NtNtNtCs9cuWXJ791ES_4core4iter8adapters9enumerateINtB9_9EnumeratepENtNtNtBd_6traits8iterator8Iterator4fold9enumerateRhmNCINvNtBb_6filter11filter_foldTjB21_EmNCNCNvCsdIMlPjZsNSo_16gep_issue_1339794test00NCINvNtBb_3map8map_foldB2y_mmNCB2I_s_0NCINvXsy_NtB1i_5accummNtB4a_3Sum3sumINtB3u_3MapINtB29_6FilterIBX_INtNtNtBf_5slice4iter4IterhEEB2G_EB3S_EE0E0E0E0B2M_: %item"}
111: !23 = distinct !{!23, !"_RNCINvNvXs_NtNtNtCs9cuWXJ791ES_4core4iter8adapters9enumerateINtB9_9EnumeratepENtNtNtBd_6traits8iterator8Iterator4fold9enumerateRhmNCINvNtBb_6filter11filter_foldTjB21_EmNCNCNvCsdIMlPjZsNSo_16gep_issue_1339794test00NCINvNtBb_3map8map_foldB2y_mmNCB2I_s_0NCINvXsy_NtB1i_5accummNtB4a_3Sum3sumINtB3u_3MapINtB29_6FilterIBX_INtNtNtBf_5slice4iter4IterhEEB2G_EB3S_EE0E0E0E0B2M_"}
112: !24 = !{!25}
113: !25 = distinct !{!25, !26, !"_RNCINvNtNtNtCs9cuWXJ791ES_4core4iter8adapters6filter11filter_foldTjRhEmNCNCNvCsdIMlPjZsNSo_16gep_issue_1339794test00NCINvNtB6_3map8map_foldB11_mmNCB19_s_0NCINvXsy_NtNtB8_6traits5accummNtB2B_3Sum3sumINtB1V_3MapINtB4_6FilterINtNtB6_9enumerate9EnumerateINtNtNtBa_5slice4iter4IterhEEB17_EB2j_EE0E0E0B1d_: argument 1"}
114: !26 = distinct !{!26, !"_RNCINvNtNtNtCs9cuWXJ791ES_4core4iter8adapters6filter11filter_foldTjRhEmNCNCNvCsdIMlPjZsNSo_16gep_issue_1339794test00NCINvNtB6_3map8map_foldB11_mmNCB19_s_0NCINvXsy_NtNtB8_6traits5accummNtB2B_3Sum3sumINtB1V_3MapINtB4_6FilterINtNtB6_9enumerate9EnumerateINtNtNtBa_5slice4iter4IterhEEB17_EB2j_EE0E0E0B1d_"}
115: !27 = !{!25, !22}
116: !28 = !{!29, !31, !32, !33, !15, !11, !16, !8, !17, !5, !18}
117: !29 = distinct !{!29, !30, !"_RNCNCNvCsdIMlPjZsNSo_16gep_issue_1339794test00B5_: %_2"}
118: !30 = distinct !{!30, !"_RNCNCNvCsdIMlPjZsNSo_16gep_issue_1339794test00B5_"}
119: !31 = distinct !{!31, !26, !"_RNCINvNtNtNtCs9cuWXJ791ES_4core4iter8adapters6filter11filter_foldTjRhEmNCNCNvCsdIMlPjZsNSo_16gep_issue_1339794test00NCINvNtB6_3map8map_foldB11_mmNCB19_s_0NCINvXsy_NtNtB8_6traits5accummNtB2B_3Sum3sumINtB1V_3MapINtB4_6FilterINtNtB6_9enumerate9EnumerateINtNtNtBa_5slice4iter4IterhEEB17_EB2j_EE0E0E0B1d_: %_1"}
120: !32 = distinct !{!32, !23, !"_RNCINvNvXs_NtNtNtCs9cuWXJ791ES_4core4iter8adapters9enumerateINtB9_9EnumeratepENtNtNtBd_6traits8iterator8Iterator4fold9enumerateRhmNCINvNtBb_6filter11filter_foldTjB21_EmNCNCNvCsdIMlPjZsNSo_16gep_issue_1339794test00NCINvNtBb_3map8map_foldB2y_mmNCB2I_s_0NCINvXsy_NtB1i_5accummNtB4a_3Sum3sumINtB3u_3MapINtB29_6FilterIBX_INtNtNtBf_5slice4iter4IterhEEB2G_EB3S_EE0E0E0E0B2M_: %_1"}
121: !33 = distinct !{!33, !34, !"_RINvXs2J_NtNtCs9cuWXJ791ES_4core5slice4iterINtB7_4IterhENtNtNtNtBb_4iter6traits8iterator8Iterator4foldmNCINvNvXs_NtNtBY_8adapters9enumerateINtB1N_9EnumeratepEBS_4fold9enumerateRhmNCINvNtB1P_6filter11filter_foldTjB2O_EmNCNCNvCsdIMlPjZsNSo_16gep_issue_1339794test00NCINvNtB1P_3map8map_foldB3m_mmNCB3w_s_0NCINvXsy_NtBW_5accummNtB4Z_3Sum3sumINtB4i_3MapINtB2W_6FilterIB2e_BF_EB3u_EB4H_EE0E0E0E0EB3A_: %f"}
122: !34 = distinct !{!34, !"_RINvXs2J_NtNtCs9cuWXJ791ES_4core5slice4iterINtB7_4IterhENtNtNtNtBb_4iter6traits8iterator8Iterator4foldmNCINvNvXs_NtNtBY_8adapters9enumerateINtB1N_9EnumeratepEBS_4fold9enumerateRhmNCINvNtB1P_6filter11filter_foldTjB2O_EmNCNCNvCsdIMlPjZsNSo_16gep_issue_1339794test00NCINvNtB1P_3map8map_foldB3m_mmNCB3w_s_0NCINvXsy_NtBW_5accummNtB4Z_3Sum3sumINtB4i_3MapINtB2W_6FilterIB2e_BF_EB3u_EB4H_EE0E0E0E0EB3A_"}
123: !35 = !{!36, !38, !31, !25, !32, !22, !33, !15, !11, !16, !8, !17, !5, !18}
124: !36 = distinct !{!36, !37, !"_RNCNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0s_0B5_: %_1"}
125: !37 = distinct !{!37, !"_RNCNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0s_0B5_"}
126: !38 = distinct !{!38, !39, !"_RNCINvNtNtNtCs9cuWXJ791ES_4core4iter8adapters3map8map_foldTjRhEmmNCNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0s_0NCINvXsy_NtNtB8_6traits5accummNtB1V_3Sum3sumINtB4_3MapINtNtB6_6filter6FilterINtNtB6_9enumerate9EnumerateINtNtNtBa_5slice4iter4IterhEENCB13_0EB11_EE0E0B17_: %_1"}
127: !39 = distinct !{!39, !"_RNCINvNtNtNtCs9cuWXJ791ES_4core4iter8adapters3map8map_foldTjRhEmmNCNCNvCsdIMlPjZsNSo_16gep_issue_1339794test0s_0NCINvXsy_NtNtB8_6traits5accummNtB1V_3Sum3sumINtB4_3MapINtNtB6_6filter6FilterINtNtB6_9enumerate9EnumerateINtNtNtBa_5slice4iter4IterhEENCB13_0EB11_EE0E0B17_"}
>>>>>>
------------------------------------------
---- [codegen] tests/codegen-llvm/bounds-checking/gep-issue-133979.rs#e2021 stdout end ----
failures:
[codegen] tests/codegen-llvm/bounds-checking/gep-issue-133979.rs#e2021
test result: FAILED. 5 passed; 1 failed; 1118 ignored; 0 measured; 0 filtered out; finished in 64.94ms
Meta
rustc --version --verbose: forked from 47101adcea7
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with tests/codegen-llvm/bounds-checking/gep-issue-133979.rs and run the test with its e2015 and e2021 revisions. Compare the generated LLVM and the FileCheck expectations, focusing on the unexpected panic_bounds_check in e2021. Done means both revisions pass their checks without the unexpected bounds-check failure.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100