Skip to content

Conversation

@klensy
Copy link
Contributor

@klensy klensy commented Nov 12, 2025

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Nov 12, 2025
@rustbot
Copy link
Collaborator

rustbot commented Nov 12, 2025

r? @Mark-Simulacrum

rustbot has assigned @Mark-Simulacrum.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rust-log-analyzer
Copy link
Collaborator

The job aarch64-gnu-llvm-20-1 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
------FileCheck stderr------------------------------
/checkout/tests/codegen-llvm/nrvo.rs:13:17: error: CHECK-EMPTY: is not on the line after the previous match
 // CHECK-EMPTY:
                ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/nrvo/nrvo.ll:17:1: note: 'next' match was here

^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/nrvo/nrvo.ll:15:5: note: previous match ended here
 ret void
    ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/nrvo/nrvo.ll:16:1: note: non-matching line after previous match is here
}
^

Input file: /checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/nrvo/nrvo.ll
Check file: /checkout/tests/codegen-llvm/nrvo.rs

-dump-input=help explains the following input dump.

Input was:
<<<<<<
          1: ; ModuleID = 'nrvo.830452c942069ff1-cgu.0' 
          2: source_filename = "nrvo.830452c942069ff1-cgu.0" 
          3: target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32" 
          4: target triple = "aarch64-unknown-linux-gnu" 
          5:  
          6: ; Function Attrs: uwtable 
          7: define void @nrvo(ptr dead_on_unwind noalias nocapture noundef writable writeonly sret([4096 x i8]) align 1 dereferenceable(4096) initializes((0, 4096)) %_0, ptr nocapture noundef nonnull readonly %init) unnamed_addr #0 { 
          8: start: 
          9:  %buf = alloca [4096 x i8], align 1 
         10:  call void @llvm.lifetime.start.p0(i64 4096, ptr nonnull %buf) 
         11:  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(4096) %buf, i8 0, i64 4096, i1 false) 
         12:  call void %init(ptr noalias noundef nonnull align 1 dereferenceable(4096) %buf) 
         13:  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(4096) %_0, ptr noundef nonnull align 1 dereferenceable(4096) %buf, i64 4096, i1 false) 
         14:  call void @llvm.lifetime.end.p0(i64 4096, ptr nonnull %buf) 
         15:  ret void 
         16: } 
         17:  
empty:13     ! error: match on wrong line
         18: ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) 
         19: declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1 
         20:  
         21: ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write) 
         22: declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #2 
         23:  
         24: ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) 
         25: declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #3 
         26:  
         27: ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) 
         28: declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1 
         29:  
         30: attributes #0 = { uwtable "frame-pointer"="non-leaf" "probe-stack"="inline-asm" "target-cpu"="generic" "target-features"="+v8a,+outline-atomics" } 
         31: attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } 
         32: attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } 
         33: attributes #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } 
         34:  
         35: !llvm.module.flags = !{!0} 
         36: !llvm.ident = !{!1} 
         37:  
         38: !0 = !{i32 8, !"PIC Level", i32 2} 
         39: !1 = !{!"rustc version 1.93.0-nightly (02ec4fa55 2025-11-12)"} 
>>>>>>

------------------------------------------

error: verification with 'FileCheck' failed
status: exit status: 1
command: "/usr/lib/llvm-20/bin/FileCheck" "--input-file" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/nrvo/nrvo.ll" "/checkout/tests/codegen-llvm/nrvo.rs" "--check-prefix=CHECK" "--allow-unused-prefixes" "--dump-input-context" "100"
stdout: none
--- stderr -------------------------------
/checkout/tests/codegen-llvm/nrvo.rs:13:17: error: CHECK-EMPTY: is not on the line after the previous match
 // CHECK-EMPTY:
                ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/nrvo/nrvo.ll:17:1: note: 'next' match was here

^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/nrvo/nrvo.ll:15:5: note: previous match ended here
 ret void
    ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/nrvo/nrvo.ll:16:1: note: non-matching line after previous match is here
}
^

Input file: /checkout/obj/build/aarch64-unknown-linux-gnu/test/codegen-llvm/nrvo/nrvo.ll
Check file: /checkout/tests/codegen-llvm/nrvo.rs

-dump-input=help explains the following input dump.

Input was:
<<<<<<
          1: ; ModuleID = 'nrvo.830452c942069ff1-cgu.0' 
          2: source_filename = "nrvo.830452c942069ff1-cgu.0" 
          3: target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32" 
          4: target triple = "aarch64-unknown-linux-gnu" 
          5:  
          6: ; Function Attrs: uwtable 
          7: define void @nrvo(ptr dead_on_unwind noalias nocapture noundef writable writeonly sret([4096 x i8]) align 1 dereferenceable(4096) initializes((0, 4096)) %_0, ptr nocapture noundef nonnull readonly %init) unnamed_addr #0 { 
          8: start: 
          9:  %buf = alloca [4096 x i8], align 1 
         10:  call void @llvm.lifetime.start.p0(i64 4096, ptr nonnull %buf) 
         11:  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(4096) %buf, i8 0, i64 4096, i1 false) 
         12:  call void %init(ptr noalias noundef nonnull align 1 dereferenceable(4096) %buf) 
         13:  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(4096) %_0, ptr noundef nonnull align 1 dereferenceable(4096) %buf, i64 4096, i1 false) 
         14:  call void @llvm.lifetime.end.p0(i64 4096, ptr nonnull %buf) 
         15:  ret void 
         16: } 
         17:  
empty:13     ! error: match on wrong line
         18: ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) 
         19: declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1 
         20:  
         21: ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write) 
         22: declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #2 
         23:  
         24: ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) 
         25: declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #3 
         26:  
         27: ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) 
         28: declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1 
         29:  
         30: attributes #0 = { uwtable "frame-pointer"="non-leaf" "probe-stack"="inline-asm" "target-cpu"="generic" "target-features"="+v8a,+outline-atomics" } 
         31: attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } 
         32: attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } 
         33: attributes #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } 
         34:  
         35: !llvm.module.flags = !{!0} 
         36: !llvm.ident = !{!1} 
         37:  
         38: !0 = !{i32 8, !"PIC Level", i32 2} 
         39: !1 = !{!"rustc version 1.93.0-nightly (02ec4fa55 2025-11-12)"} 
>>>>>>
------------------------------------------

---- [codegen] tests/codegen-llvm/nrvo.rs stdout end ----

@flip1995
Copy link
Member

flip1995 commented Nov 12, 2025

Hm, I might've seen CHECK-LABEL-NOT used in the llvm codebase and just used it here as well, without checking that it actually does something. It was a long time ago that I worked on this.. Reading this mailing list response I'm not 100% clear on if it does something or not 🤔 FWIW, there are still two instances of this in LLVM itself.

@klensy
Copy link
Contributor Author

klensy commented Nov 12, 2025

Llvm have ton of typos around filecheck tests llvm/llvm-project#94857 (and similar, but prs little stuck); and yes, while it used 2 times in llvm codebase i assume that it's not working as intended: anything that's looks more complicated than prefix: or prefix-directive: likely bug.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants