rust-lang / rust-lang/rust

tests/codegen-llvm/bounds-checking/gep-issue-133979.rs fails to optimize out bounds checks in 2021 edition

Open
#159,377 0 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.