[llvm] [IR] Introduce intrinsics to model allocator provenance semantics (PR #228048)

via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 1 06:53:00 PDT 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results

* 154513 tests passed
* 3448 tests skipped
* 5 tests failed

## Failed Tests
(click on a test name to see its output)

### LLVM
<details>
<summary>LLVM.Transforms/DeadStoreElimination/2016-07-17-UseAfterFree.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/2016-07-17-UseAfterFree.ll -passes=dse -S -enable-dse-partial-overwrite-tracking | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/2016-07-17-UseAfterFree.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=dse -S -enable-dse-partial-overwrite-tracking
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/2016-07-17-UseAfterFree.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/2016-07-17-UseAfterFree.ll:12:14: error: CHECK-NOT: excluded string found in input
# | ; CHECK-NOT: tail call void @llvm.memset.p0.i64(ptr align 8 %edi, i8 0, i64 176, i1 false)
# |              ^
# | <stdin>:10:2: note: found here
# |  tail call void @llvm.memset.p0.i64(ptr align 8 %edi, i8 0, i64 176, i1 false)
# |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/2016-07-17-UseAfterFree.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |           1: ; ModuleID = '<stdin>' 
# | not:12'0    {                         search range start (exclusive)
# |           2: source_filename = "<stdin>" 
# |           3: target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" 
# |           4: target triple = "x86_64-unknown-linux-gnu" 
# |           5:  
# |           6: ; Function Attrs: nounwind allockind("free") 
# |           7: define void @_UPT_destroy(ptr captures(none) %ptr) local_unnamed_addr #0 { 
# |           8: entry: 
# |           9:  %edi = getelementptr inbounds i8, ptr %ptr, i64 8 
# |          10:  tail call void @llvm.memset.p0.i64(ptr align 8 %edi, i8 0, i64 176, i1 false) 
# | not:12'1      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   error: no match expected
# |          11:  %format4.i = getelementptr inbounds i8, ptr %ptr, i64 144 
# |          12:  store i32 -1, ptr %format4.i, align 8 
# |          13:  tail call void @free(ptr nonnull %ptr) 
# | not:12'2      }                                        search range end (exclusive)
# |          14:  ret void 
# |          15: } 
# |          16:  
# |          17: ; Function Attrs: nounwind allockind("free") 
# |          18: declare void @free(ptr allocptr captures(none)) local_unnamed_addr #0 
# |           .
# |           .
# |           .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Transforms/DeadStoreElimination/batchaa-caching-new-pointers.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -S -passes=dse < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/batchaa-caching-new-pointers.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/batchaa-caching-new-pointers.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -S -passes=dse
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/batchaa-caching-new-pointers.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/batchaa-caching-new-pointers.ll:94:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: call void @free(ptr [[M1]])
# |               ^
# | <stdin>:41:2: note: 'next' match was here
# |  call void @free(ptr %m1)
# |  ^
# | <stdin>:39:36: note: previous match ended here
# |  %m2 = tail call ptr @malloc(i64 4)
# |                                    ^
# | <stdin>:40:1: note: non-matching line after previous match is here
# |  store i32 123, ptr %m1, align 4
# | ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/batchaa-caching-new-pointers.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |           34:  %struct.alloca = alloca %struct.type, align 8 
# |           35:  %m1 = tail call ptr @malloc(i64 4) 
# |           36:  call void @llvm.lifetime.start.p0(ptr nonnull %struct.alloca) #6 
# |           37:  %struct.byte.4 = getelementptr inbounds i8, ptr %struct.alloca, i64 4 
# |           38:  %struct.byte.8 = getelementptr inbounds i8, ptr %struct.alloca, i64 8 
# |           39:  %m2 = tail call ptr @malloc(i64 4) 
# | next:94'0                                       {   search range start (exclusive)
# |           40:  store i32 123, ptr %m1, align 4 
# |           41:  call void @free(ptr %m1) 
# | next:94'1      !~~~~~~~~~~~~~~~~~~~~~~~   error: match on wrong line
# |           42:  store i32 123, ptr %m2, align 4 
# |           43:  call void @free(ptr %m2) 
# |           44:  %1 = getelementptr inbounds i8, ptr %struct.byte.8, i64 4 
# |           45:  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 %1, i8 42, i64 4, i1 false) 
# |           46:  store i32 43, ptr %struct.byte.8, align 4 
# |           47:  %ret = load ptr, ptr %struct.byte.8, align 8 
# |           48:  call void @readnone(ptr %struct.byte.4) 
# |           49:  call void @readnone(ptr %struct.byte.8) 
# |           50:  call void @llvm.lifetime.end.p0(ptr nonnull %struct.alloca) #6 
# |           51:  ret ptr %ret 
# |           52: } 
# |           53:  
# |           54: define ptr @foo_with_malloc_to_calloc() { 
# | next:94'2                                              }  search range end (exclusive)
# |           55:  %struct.alloca = alloca %struct.type, align 8 
# |           56:  call void @llvm.lifetime.start.p0(ptr nonnull %struct.alloca) #6 
# |           57:  %struct.byte.8 = getelementptr inbounds i8, ptr %struct.alloca, i64 8 
# |           58:  %struct.byte.4 = getelementptr inbounds i8, ptr %struct.alloca, i64 4 
# |           59:  %calloc1 = call ptr @calloc(i64 1, i64 4) 
# |            .
# |            .
# |            .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Transforms/DeadStoreElimination/free.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/free.ll -passes=dse -S | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/free.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=dse -S
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/free.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/free.ll:11:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: tail call void @free(ptr [[P:%.*]]) [[ATTR0:#.*]]
# |               ^
# | <stdin>:16:2: note: 'next' match was here
# |  tail call void @free(ptr %P) #2
# |  ^
# | <stdin>:13:19: note: previous match ended here
# | define void @test(ptr %Q, ptr %P) {
# |                   ^
# | <stdin>:14:1: note: non-matching line after previous match is here
# |  %DEAD = load i32, ptr %Q, align 4
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/free.ll:22:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: tail call void @free(ptr [[P:%.*]]) [[ATTR0]]
# |               ^
# | <stdin>:23:2: note: 'next' match was here
# |  tail call void @free(ptr %P) #2
# |  ^
# | <stdin>:20:20: note: previous match ended here
# | define void @test2(ptr %P) {
# |                    ^
# | <stdin>:21:1: note: non-matching line after previous match is here
# |  %Q = getelementptr { i32, i32 }, ptr %P, i32 0, i32 1
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/free.ll:34:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: call void @free(ptr [[M]]) [[ATTR0]]
# |               ^
# | <stdin>:32:2: note: 'next' match was here
# |  call void @free(ptr %m) #2
# |  ^
# | <stdin>:28:31: note: previous match ended here
# |  %m = call ptr @malloc(i64 24)
# |                               ^
# | <stdin>:29:1: note: non-matching line after previous match is here
# |  store i8 0, ptr %m, align 1
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/free.ll:52:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label [[SKIPINIT1]]
# |               ^
# | <stdin>:44:2: note: 'next' match was here
# |  br label %skipinit1
# |  ^
# | <stdin>:42:7: note: previous match ended here
# | init1: ; preds = %entry
# |       ^
# | <stdin>:43:1: note: non-matching line after previous match is here
# |  store i8 1, ptr %alloc1, align 1
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/free.ll:107:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: call void @free(ptr [[PTR:%.*]])
# |               ^
# | <stdin>:70:2: note: 'next' match was here
# |  call void @free(ptr %ptr)
# |  ^
# | <stdin>:67:34: note: previous match ended here
# | define void @delete_field_before(ptr %ptr) {
# |                                  ^
# | <stdin>:68:1: note: non-matching line after previous match is here
# |  %ptr.f1 = getelementptr %struct, ptr %ptr, i32 1, i32 1
# | ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/free.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |             8: declare void @free(ptr captures(none)) #0 
# |             9:  
# |            10: ; Function Attrs: allockind("alloc,uninitialized") 
# |            11: declare noalias ptr @malloc(i64) #1 
# |            12:  
# |            13: define void @test(ptr %Q, ptr %P) { 
# | next:11'0                       {                    search range start (exclusive)
# |            14:  %DEAD = load i32, ptr %Q, align 4 
# |            15:  store i32 %DEAD, ptr %P, align 4 
# |            16:  tail call void @free(ptr %P) #2 
# | next:11'1       !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   error: match on wrong line
# |            17:  ret void 
# |            18: } 
# |            19:  
# |            20: define void @test2(ptr %P) { 
# | next:11'2                         }           search range end (exclusive)
# | next:22'0                        {            search range start (exclusive)
# |            21:  %Q = getelementptr { i32, i32 }, ptr %P, i32 0, i32 1 
# |            22:  store i32 4, ptr %Q, align 4 
# |            23:  tail call void @free(ptr %P) #2 
# | next:22'1       !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   error: match on wrong line
# |            24:  ret void 
# |            25: } 
# |            26:  
# |            27: define void @test3() { 
# | next:22'2                         }     search range end (exclusive)
# |            28:  %m = call ptr @malloc(i64 24) 
# | next:34'0                                   {   search range start (exclusive)
# |            29:  store i8 0, ptr %m, align 1 
# |            30:  %m1 = getelementptr i8, ptr %m, i64 1 
# |            31:  store i8 1, ptr %m1, align 1 
# |            32:  call void @free(ptr %m) #2 
# | next:34'1       !~~~~~~~~~~~~~~~~~~~~~~~~~   error: match on wrong line
# |            33:  ret void 
# |            34: } 
# |            35:  
# |            36: ; Function Attrs: nounwind 
# |            37: define void @test4(i1 %x) #2 { 
# | next:34'2                         }             search range end (exclusive)
# |            38: entry: 
# |            39:  %alloc1 = tail call noalias ptr @malloc(i64 4) #2 
# |            40:  br i1 %x, label %skipinit1, label %init1 
# |            41:  
# |            42: init1: ; preds = %entry 
# | next:52'0           {                    search range start (exclusive)
# |            43:  store i8 1, ptr %alloc1, align 1 
# |            44:  br label %skipinit1 
# | next:52'1       !~~~~~~~~~~~~~~~~~~   error: match on wrong line
# |            45:  
# |            46: skipinit1: ; preds = %init1, %entry 
# |            47:  tail call void @free(ptr %alloc1) #2 
# |            48:  ret void 
# |            49: } 
# |            50:  
# |            51: define void @test5() { 
# | next:52'2                         }     search range end (exclusive)
# |            52:  br label %bb 
# |            53:  
# |            54: bb: ; preds = %bb, %0 
# |            55:  tail call void @free(ptr undef) #2 
# |            56:  br label %bb 
# |             .
# |             .
# |             .
# |            62:  store i32 0, ptr %ptr.f1, align 4 
# |            63:  call void @free(ptr %ptr.f0) 
# |            64:  ret void 
# |            65: } 
# |            66:  
# |            67: define void @delete_field_before(ptr %ptr) { 
# | next:107'0                                     {              search range start (exclusive)
# |            68:  %ptr.f1 = getelementptr %struct, ptr %ptr, i32 1, i32 1 
# |            69:  store i32 0, ptr %ptr.f1, align 4 
# |            70:  call void @free(ptr %ptr) 
# | next:107'1      !~~~~~~~~~~~~~~~~~~~~~~~~   error: match on wrong line
# |            71:  ret void 
# |            72: } 
# |            73:  
# |            74: attributes #0 = { allockind("free") } 
# |            75: attributes #1 = { allockind("alloc,uninitialized") } 
# |            76: attributes #2 = { nounwind } 
# | next:107'2                                  } search range end (exclusive)
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Transforms/DeadStoreElimination/multiblock-malloc-free.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 3
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/multiblock-malloc-free.ll -passes=dse -S | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/multiblock-malloc-free.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=dse -S
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/multiblock-malloc-free.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/multiblock-malloc-free.ll:19:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br i1 true, label [[BB1:%.*]], label [[BB3:%.*]]
# |               ^
# | <stdin>:30:2: note: 'next' match was here
# |  br i1 true, label %bb1, label %bb3
# |  ^
# | <stdin>:28:21: note: previous match ended here
# | define void @test16(ptr noalias %P) {
# |                     ^
# | <stdin>:29:1: note: non-matching line after previous match is here
# |  store i32 1, ptr %P, align 4
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/multiblock-malloc-free.ll:46:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label [[BB3]]
# |               ^
# | <stdin>:48:2: note: 'next' match was here
# |  br label %bb3
# |  ^
# | <stdin>:46:27: note: previous match ended here
# |  call void @unknown_func()
# |                           ^
# | <stdin>:47:1: note: non-matching line after previous match is here
# |  store i32 1, ptr %P, align 4
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/multiblock-malloc-free.ll:64:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br i1 true, label [[BB1:%.*]], label [[BB3:%.*]]
# |               ^
# | <stdin>:57:2: note: 'next' match was here
# |  br i1 true, label %bb1, label %bb3
# |  ^
# | <stdin>:55:37: note: previous match ended here
# | define void @test17_read_after_free(ptr noalias %P) {
# |                                     ^
# | <stdin>:56:1: note: non-matching line after previous match is here
# |  store i32 1, ptr %P, align 4
# | ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/multiblock-malloc-free.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |           23: declare noalias ptr @strdup(ptr readonly captures(none)) #3 
# |           24:  
# |           25: ; Function Attrs: nounwind allockind("free") 
# |           26: declare void @free(ptr captures(none)) #4 
# |           27:  
# |           28: define void @test16(ptr noalias %P) { 
# | next:19'0                        {                    search range start (exclusive)
# |           29:  store i32 1, ptr %P, align 4 
# |           30:  br i1 true, label %bb1, label %bb3 
# | next:19'1      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   error: match on wrong line
# |           31:  
# |           32: bb1: ; preds = %0 
# |           33:  br label %bb3 
# |           34:  
# |           35: bb3: ; preds = %bb1, %0 
# |           36:  call void @free(ptr %P) 
# |           37:  store i32 1, ptr %P, align 4 
# |           38:  ret void 
# |           39: } 
# |           40:  
# |           41: define void @test17(ptr noalias %P) { 
# | next:19'2                         }                   search range end (exclusive)
# |           42:  store i32 1, ptr %P, align 4 
# |           43:  br i1 true, label %bb1, label %bb3 
# |           44:  
# |           45: bb1: ; preds = %0 
# |           46:  call void @unknown_func() 
# | next:46'0                              {   search range start (exclusive)
# |           47:  store i32 1, ptr %P, align 4 
# |           48:  br label %bb3 
# | next:46'1      !~~~~~~~~~~~~   error: match on wrong line
# |           49:  
# |           50: bb3: ; preds = %bb1, %0 
# |           51:  call void @free(ptr %P) 
# |           52:  ret void 
# |           53: } 
# |           54:  
# |           55: define void @test17_read_after_free(ptr noalias %P) { 
# | next:46'2                                         }                   search range end (exclusive)
# | next:64'0                                        {                    search range start (exclusive)
# |           56:  store i32 1, ptr %P, align 4 
# |           57:  br i1 true, label %bb1, label %bb3 
# | next:64'1      !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   error: match on wrong line
# |           58:  
# |           59: bb1: ; preds = %0 
# |           60:  br label %bb3 
# |           61:  
# |           62: bb3: ; preds = %bb1, %0 
# |           63:  call void @free(ptr %P) 
# |           64:  %lv = load i8, ptr %P, align 1 
# |           65:  ret void 
# |           66: } 
# |           67:  
# |           68: define void @test19(ptr noalias %P) { 
# | next:64'2                         }                   search range end (exclusive)
# |           69: entry: 
# |           70:  %arrayidx0 = getelementptr inbounds i32, ptr %P, i64 1 
# |           71:  call void @llvm.memset.p0.i64(ptr align 4 %arrayidx0, i8 0, i64 28, i1 false) 
# |           72:  br i1 true, label %bb1, label %bb2 
# |           73:  
# |            .
# |            .
# |            .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Transforms/DeadStoreElimination/simple.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/simple.ll -passes=dse -S | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/simple.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=dse -S
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/simple.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/simple.ll:731:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: call void @free(ptr [[P]])
# |               ^
# | <stdin>:405:2: note: 'next' match was here
# |  call void @free(ptr %P)
# |  ^
# | <stdin>:403:27: note: previous match ended here
# |  call void @unknown_func()
# |                           ^
# | <stdin>:404:1: note: non-matching line after previous match is here
# |  store i32 2, ptr %P, align 4
# | ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/DeadStoreElimination/simple.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |           398: ; Function Attrs: allockind("free") 
# |           399: declare void @free(ptr captures(none)) #8 
# |           400:  
# |           401: define void @test41(ptr noalias %P) { 
# |           402:  store i32 1, ptr %P, align 4 
# |           403:  call void @unknown_func() 
# | next:731'0                              {   search range start (exclusive)
# |           404:  store i32 2, ptr %P, align 4 
# |           405:  call void @free(ptr %P) 
# | next:731'1      !~~~~~~~~~~~~~~~~~~~~~~   error: match on wrong line
# |           406:  ret void 
# |           407: } 
# |           408:  
# |           409: define void @test42(ptr %P, ptr %Q) { 
# | next:731'2                         }                   search range end (exclusive)
# |           410:  store i32 1, ptr %P, align 4 
# |           411:  store i32 2, ptr %Q, align 4 
# |           412:  store i8 3, ptr %P, align 1 
# |           413:  ret void 
# |           414: } 
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.

https://github.com/llvm/llvm-project/pull/228048


More information about the llvm-commits mailing list