[clang] [llvm] [HIP] Fix ubsan function checks applied to kernel functions (PR #188872)

via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 3 10:31:12 PDT 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results

* 133041 tests passed
* 3060 tests skipped
* 8 tests failed

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

### Clang
<details>
<summary>Clang.CodeGen/AMDGPU/sanitizer.c</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -cc1 -internal-isystem C:\_work\llvm-project\llvm-project\build\lib\clang\23\include -nostdsysteminc -cc1 -triple amdgcn-amd-amdhsa -emit-llvm -fsanitize=function C:\_work\llvm-project\llvm-project\clang\test\CodeGen\AMDGPU\sanitizer.c -o - | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\clang\test\CodeGen\AMDGPU\sanitizer.c
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -cc1 -internal-isystem 'C:\_work\llvm-project\llvm-project\build\lib\clang\23\include' -nostdsysteminc -cc1 -triple amdgcn-amd-amdhsa -emit-llvm -fsanitize=function 'C:\_work\llvm-project\llvm-project\clang\test\CodeGen\AMDGPU\sanitizer.c' -o -
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\clang\test\CodeGen\AMDGPU\sanitizer.c'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\AMDGPU\sanitizer.c:5:16: error: CHECK-SAME: expected string not found in input
# | // CHECK-SAME: ) #[[ATTR0:[0-9]+]] !func_sanitize [[META2:![0-9]+]] {
# |                ^
# | <stdin>:7:33: note: scanning from here
# | define dso_local void @function() #0 {
# |                                 ^
# | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\AMDGPU\sanitizer.c:12:21: error: undefined variable: ATTR0
# | // CHECK-SAME: ) #[[ATTR0]] {
# |                     ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\clang\test\CodeGen\AMDGPU\sanitizer.c
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            1: ; ModuleID = 'C:\_work\llvm-project\llvm-project\clang\test\CodeGen\AMDGPU\sanitizer.c' 
# |            2: source_filename = "C:\\_work\\llvm-project\\llvm-project\\clang\\test\\CodeGen\\AMDGPU\\sanitizer.c" 
# |            3: target datalayout = "e-m:e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-p7:160:256:256:32-p8:128:128:128:48-p9:192:256:256:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-G1-ni:7:8:9" 
# |            4: target triple = "amdgcn-amd-amdhsa" 
# |            5:  
# |            6: ; Function Attrs: convergent noinline nounwind optnone 
# |            7: define dso_local void @function() #0 { 
# | same:5                                        X~~~~~~ error: no match found
# |            8: entry: 
# | same:5        ~~~~~~~
# |            9:  ret void 
# | same:5        ~~~~~~~~~~
# |           10: } 
# | same:5        ~~
# |           11:  
# | same:5        ~
# |           12: ; Function Attrs: convergent noinline nounwind optnone 
# | same:5        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           13: define dso_local amdgpu_kernel void @kernel() #0 !func_sanitize !2 { 
# | same:5        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | same:12'0                                                 X~~~~~~~~~~~~~~~~~~~~~~~~ error: match failed for invalid pattern
# | same:12'1                                                                           undefined variable: ATTR0
# |           14: entry: 
# | same:12'0     ~~~~~~~
# |           15:  call void @function() #1 
# | same:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           16:  ret void 
# | same:12'0     ~~~~~~~~~~
# |           17: } 
# | same:12'0     ~~
# |           18:  
# | same:12'0     ~
# |            .
# |            .
# |            .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>Clang.CodeGen/ubsan-function-attributed.c</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -cc1 -internal-isystem C:\_work\llvm-project\llvm-project\build\lib\clang\23\include -nostdsysteminc -S -triple x86_64 -std=c17 -fsanitize=function C:\_work\llvm-project\llvm-project\clang\test\CodeGen\ubsan-function-attributed.c -o - | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\clang\test\CodeGen\ubsan-function-attributed.c --check-prefixes=CHECK
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -cc1 -internal-isystem 'C:\_work\llvm-project\llvm-project\build\lib\clang\23\include' -nostdsysteminc -S -triple x86_64 -std=c17 -fsanitize=function 'C:\_work\llvm-project\llvm-project\clang\test\CodeGen\ubsan-function-attributed.c' -o -
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\clang\test\CodeGen\ubsan-function-attributed.c' --check-prefixes=CHECK
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\ubsan-function-attributed.c:4:11: error: CHECK: expected string not found in input
# | // CHECK: .long 248076293
# |           ^
# | <stdin>:1:1: note: scanning from here
# |  .att_syntax
# | ^
# | <stdin>:52:10: note: possible intended match here
# |  .ident "clang version 23.0.0git (https://github.com/llvm/llvm-project 01f74e68bd3b033c43a25da48065be4d38e8ca3b)"
# |          ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\clang\test\CodeGen\ubsan-function-attributed.c
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            1:  .att_syntax 
# | check:4'0     X~~~~~~~~~~~~ error: no match found
# |            2:  .file "ubsan-function-attributed.c" 
# | check:4'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            3:  .text 
# | check:4'0     ~~~~~~~
# |            4:  .globl f # -- Begin function f 
# | check:4'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            5:  .p2align 4 
# | check:4'0     ~~~~~~~~~~~~
# |            6:  .type f, at function 
# | check:4'0     ~~~~~~~~~~~~~~~~~~~
# |            .
# |            .
# |            .
# |           47:  retq 
# | check:4'0     ~~~~~~
# |           48: .Lfunc_end3: 
# | check:4'0     ~~~~~~~~~~~~~
# |           49:  .size g_no_prototype, .Lfunc_end3-g_no_prototype 
# | check:4'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           50:  .size .Lg_no_prototype$local, .Lfunc_end3-g_no_prototype 
# | check:4'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           51:  # -- End function 
# | check:4'0     ~~~~~~~~~~~~~~~~~~~
# |           52:  .ident "clang version 23.0.0git (https://github.com/llvm/llvm-project 01f74e68bd3b033c43a25da48065be4d38e8ca3b)" 
# | check:4'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:4'1              ?                                                                                                         possible intended match
# |           53:  .section ".note.GNU-stack","", at progbits 
# | check:4'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>Clang.CodeGen/ubsan-function-sugared.cpp</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -cc1 -internal-isystem C:\_work\llvm-project\llvm-project\build\lib\clang\23\include -nostdsysteminc -triple x86_64-linux-gnu -emit-llvm -o - C:\_work\llvm-project\llvm-project\clang\test\CodeGen\ubsan-function-sugared.cpp -fsanitize=function -fno-sanitize-recover=all | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\clang\test\CodeGen\ubsan-function-sugared.cpp --check-prefixes=CHECK,GNU,64
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -cc1 -internal-isystem 'C:\_work\llvm-project\llvm-project\build\lib\clang\23\include' -nostdsysteminc -triple x86_64-linux-gnu -emit-llvm -o - 'C:\_work\llvm-project\llvm-project\clang\test\CodeGen\ubsan-function-sugared.cpp' -fsanitize=function -fno-sanitize-recover=all
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\clang\test\CodeGen\ubsan-function-sugared.cpp' --check-prefixes=CHECK,GNU,64
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\ubsan-function-sugared.cpp:7:9: error: GNU: expected string not found in input
# | // GNU: define{{.*}} void @_Z3funv() #0 !func_sanitize ![[FUNCSAN:.*]] {
# |         ^
# | <stdin>:1:1: note: scanning from here
# | ; ModuleID = 'C:\_work\llvm-project\llvm-project\clang\test\CodeGen\ubsan-function-sugared.cpp'
# | ^
# | <stdin>:11:8: note: possible intended match here
# | define dso_local void @_Z3funv() #0 {
# |        ^
# | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\ubsan-function-sugared.cpp:40:12: error: undefined variable: FUNCSAN
# | // GNU: ![[FUNCSAN]] = !{i32 -1056584962, i32 905068220}
# |            ^
# | <stdin>:57:23: note: possible intended match here
# | !2 = !{!"branch_weights", i32 1048575, i32 1}
# |                       ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\clang\test\CodeGen\ubsan-function-sugared.cpp
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             1: ; ModuleID = 'C:\_work\llvm-project\llvm-project\clang\test\CodeGen\ubsan-function-sugared.cpp' 
# | check:7'0      X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |             2: source_filename = "C:\\_work\\llvm-project\\llvm-project\\clang\\test\\CodeGen\\ubsan-function-sugared.cpp" 
# | check:7'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" 
# | check:7'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             4: target triple = "x86_64-unknown-linux-gnu" 
# | check:7'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             5:  
# | check:7'0      ~
# |             6: @.src = private unnamed_addr constant [81 x i8] c"C:\\_work\\llvm-project\\llvm-project\\clang\\test\\CodeGen\\ubsan-function-sugared.cpp\00", align 1 
# | check:7'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             7: @0 = private unnamed_addr constant { i16, i16, [13 x i8] } { i16 -1, i16 0, [13 x i8] c"'void (*)()'\00" } 
# | check:7'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             8: @1 = private unnamed_addr global { { ptr, i32, i32 }, ptr } { { ptr, i32, i32 } { ptr @.src, i32 37, i32 3 }, ptr @0 } 
# | check:7'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             9:  
# | check:7'0      ~
# |            10: ; Function Attrs: mustprogress noinline nounwind optnone 
# | check:7'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            11: define dso_local void @_Z3funv() #0 { 
# | check:7'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:7'1             ?                               possible intended match
# |            12: entry: 
# | check:7'0      ~~~~~~~
# |            13:  ret void 
# | check:7'0      ~~~~~~~~~~
# |            14: } 
# | check:7'0      ~~
# |            15:  
# | check:7'0      ~
# |            16: ; Function Attrs: mustprogress noinline nounwind optnone 
# | check:7'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |            38: cont: ; preds = %typecheck 
# |            39:  br label %cont1, !nosanitize !1 
# |            40:  
# |            41: cont1: ; preds = %cont, %entry 
# |            42:  call void %0() 
# |            43:  ret void 
# | check:40'0              X error: match failed for invalid pattern
# | check:40'1                undefined variable: FUNCSAN
# |            44: } 
# | check:40'0     ~~
# |            45:  
# | check:40'0     ~
# |            46: ; Function Attrs: noreturn nounwind uwtable 
# | check:40'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            47: declare void @__ubsan_handle_function_type_mismatch_abort(ptr, i64) #1 
# | check:40'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            48:  
# | check:40'0     ~
# |             .
# |             .
# |             .
# |            52:  
# | check:40'0     ~
# |            53: !llvm.ident = !{!0} 
# | check:40'0     ~~~~~~~~~~~~~~~~~~~~
# |            54:  
# | check:40'0     ~
# |            55: !0 = !{!"clang version 23.0.0git (https://github.com/llvm/llvm-project 01f74e68bd3b033c43a25da48065be4d38e8ca3b)"} 
# | check:40'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            56: !1 = !{} 
# | check:40'0     ~~~~~~~~~
# |            57: !2 = !{!"branch_weights", i32 1048575, i32 1} 
# | check:40'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:40'2                           ?                        possible intended match
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>Clang.CodeGen/ubsan-function.cpp</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -cc1 -internal-isystem C:\_work\llvm-project\llvm-project\build\lib\clang\23\include -nostdsysteminc -triple x86_64-linux-gnu -emit-llvm -o - C:\_work\llvm-project\llvm-project\clang\test\CodeGen\ubsan-function.cpp -fsanitize=function -fno-sanitize-recover=all | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\clang\test\CodeGen\ubsan-function.cpp --check-prefixes=CHECK,GNU,64
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -cc1 -internal-isystem 'C:\_work\llvm-project\llvm-project\build\lib\clang\23\include' -nostdsysteminc -triple x86_64-linux-gnu -emit-llvm -o - 'C:\_work\llvm-project\llvm-project\clang\test\CodeGen\ubsan-function.cpp' -fsanitize=function -fno-sanitize-recover=all
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\clang\test\CodeGen\ubsan-function.cpp' --check-prefixes=CHECK,GNU,64
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\ubsan-function.cpp:10:9: error: GNU: expected string not found in input
# | // GNU: define{{.*}} void @_Z3funv() #0 !func_sanitize ![[FUNCSAN:.*]] {
# |         ^
# | <stdin>:1:1: note: scanning from here
# | ; ModuleID = 'C:\_work\llvm-project\llvm-project\clang\test\CodeGen\ubsan-function.cpp'
# | ^
# | <stdin>:11:8: note: possible intended match here
# | define dso_local void @_Z3funv() #0 {
# |        ^
# | C:\_work\llvm-project\llvm-project\clang\test\CodeGen\ubsan-function.cpp:59:12: error: undefined variable: FUNCSAN
# | // GNU: ![[FUNCSAN]] = !{i32 -1056584962, i32 905068220}
# |            ^
# | <stdin>:73:23: note: possible intended match here
# | !2 = !{!"branch_weights", i32 1048575, i32 1}
# |                       ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\clang\test\CodeGen\ubsan-function.cpp
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             1: ; ModuleID = 'C:\_work\llvm-project\llvm-project\clang\test\CodeGen\ubsan-function.cpp' 
# | check:10'0     X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |             2: source_filename = "C:\\_work\\llvm-project\\llvm-project\\clang\\test\\CodeGen\\ubsan-function.cpp" 
# | check:10'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" 
# | check:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             4: target triple = "x86_64-unknown-linux-gnu" 
# | check:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             5:  
# | check:10'0     ~
# |             6: @.src = private unnamed_addr constant [73 x i8] c"C:\\_work\\llvm-project\\llvm-project\\clang\\test\\CodeGen\\ubsan-function.cpp\00", align 1 
# | check:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             7: @0 = private unnamed_addr constant { i16, i16, [13 x i8] } { i16 -1, i16 0, [13 x i8] c"'void (*)()'\00" } 
# | check:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             8: @1 = private unnamed_addr global { { ptr, i32, i32 }, ptr } { { ptr, i32, i32 } { ptr @.src, i32 40, i32 28 }, ptr @0 } 
# | check:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             9:  
# | check:10'0     ~
# |            10: ; Function Attrs: mustprogress noinline nounwind optnone 
# | check:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            11: define dso_local void @_Z3funv() #0 { 
# | check:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:10'1            ?                               possible intended match
# |            12: entry: 
# | check:10'0     ~~~~~~~
# |            13:  ret void 
# | check:10'0     ~~~~~~~~~~
# |            14: } 
# | check:10'0     ~~
# |            15:  
# | check:10'0     ~
# |            16: ; Function Attrs: mustprogress noinline nounwind optnone 
# | check:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |            57: entry: 
# |            58:  %f.addr = alloca ptr, align 8 
# |            59:  store ptr %f, ptr %f.addr, align 8 
# |            60:  %0 = load ptr, ptr %f.addr, align 8 
# |            61:  call void %0() 
# |            62:  ret void 
# | check:59'0              X error: match failed for invalid pattern
# | check:59'1                undefined variable: FUNCSAN
# |            63: } 
# | check:59'0     ~~
# |            64:  
# | check:59'0     ~
# |            65: attributes #0 = { mustprogress noinline nounwind optnone "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+cx8,+mmx,+sse,+sse2,+x87" } 
# | check:59'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            66: attributes #1 = { noreturn nounwind uwtable } 
# | check:59'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            67: attributes #2 = { nomerge noreturn nounwind } 
# | check:59'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            68:  
# | check:59'0     ~
# |            69: !llvm.ident = !{!0} 
# | check:59'0     ~~~~~~~~~~~~~~~~~~~~
# |            70:  
# | check:59'0     ~
# |            71: !0 = !{!"clang version 23.0.0git (https://github.com/llvm/llvm-project 01f74e68bd3b033c43a25da48065be4d38e8ca3b)"} 
# | check:59'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            72: !1 = !{} 
# | check:59'0     ~~~~~~~~~
# |            73: !2 = !{!"branch_weights", i32 1048575, i32 1} 
# | check:59'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:59'2                           ?                        possible intended match
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>Clang.CodeGenCXX/catch-undef-behavior.cpp</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -cc1 -internal-isystem C:\_work\llvm-project\llvm-project\build\lib\clang\23\include -nostdsysteminc -no-enable-noundef-analysis -std=c++11 -Wno-error=return-type -fsanitize=signed-integer-overflow,integer-divide-by-zero,float-divide-by-zero,shift-base,shift-exponent,unreachable,return,vla-bound,alignment,null,vptr,object-size,float-cast-overflow,bool,enum,array-bounds,function -fsanitize-recover=signed-integer-overflow,integer-divide-by-zero,float-divide-by-zero,shift-base,shift-exponent,vla-bound,alignment,null,vptr,object-size,float-cast-overflow,bool,enum,array-bounds,function -emit-llvm C:\_work\llvm-project\llvm-project\clang\test\CodeGenCXX\catch-undef-behavior.cpp -o - -triple x86_64-linux-gnu | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\clang\test\CodeGenCXX\catch-undef-behavior.cpp --check-prefixes=CHECK,CHECK-FUNCSAN
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -cc1 -internal-isystem 'C:\_work\llvm-project\llvm-project\build\lib\clang\23\include' -nostdsysteminc -no-enable-noundef-analysis -std=c++11 -Wno-error=return-type -fsanitize=signed-integer-overflow,integer-divide-by-zero,float-divide-by-zero,shift-base,shift-exponent,unreachable,return,vla-bound,alignment,null,vptr,object-size,float-cast-overflow,bool,enum,array-bounds,function -fsanitize-recover=signed-integer-overflow,integer-divide-by-zero,float-divide-by-zero,shift-base,shift-exponent,vla-bound,alignment,null,vptr,object-size,float-cast-overflow,bool,enum,array-bounds,function -emit-llvm 'C:\_work\llvm-project\llvm-project\clang\test\CodeGenCXX\catch-undef-behavior.cpp' -o - -triple x86_64-linux-gnu
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\clang\test\CodeGenCXX\catch-undef-behavior.cpp:159:1: warning: non-void function does not return a value [-Wreturn-type]
# |   159 | }
# |       | ^
# | 1 warning generated.
# `-----------------------------
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\clang\test\CodeGenCXX\catch-undef-behavior.cpp' --check-prefixes=CHECK,CHECK-FUNCSAN
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\clang\test\CodeGenCXX\catch-undef-behavior.cpp:391:19: error: CHECK-FUNCSAN: expected string not found in input
# | // CHECK-FUNCSAN: @_Z22indirect_function_callPFviE({{.*}} !func_sanitize ![[FUNCSAN:.*]] {
# |                   ^
# | <stdin>:1299:10: note: scanning from here
# |  br i1 %8, label %cont, label %handler.type_mismatch, !prof !2, !nosanitize !1
# |          ^
# | <stdin>:1310:23: note: possible intended match here
# | define dso_local void @_Z22indirect_function_callPFviE(ptr %p) #0 {
# |                       ^
# | C:\_work\llvm-project\llvm-project\clang\test\CodeGenCXX\catch-undef-behavior.cpp:473:11: error: CHECK: expected string not found in input
# | // CHECK: !func_sanitize
# |           ^
# | <stdin>:1423:75: note: scanning from here
# | define dso_local void @_ZN29FunctionSanitizerVirtualCalls11force_irgenEv() #0 {
# |                                                                           ^
# | <stdin>:1427:76: note: possible intended match here
# |  %0 = call i64 @llvm.objectsize.i64.p0(ptr %a, i1 false, i1 false, i1 false), !nosanitize !1
# |                                                                            ^
# | C:\_work\llvm-project\llvm-project\clang\test\CodeGenCXX\catch-undef-behavior.cpp:494:11: error: CHECK: expected string not found in input
# | // CHECK: !func_sanitize
# |           ^
# | <stdin>:1744:67: note: scanning from here
# | define linkonce_odr void @_ZN29FunctionSanitizerVirtualCalls1B1qEv() #0 comdat align 2 {
# |                                                                   ^
# | <stdin>:1749:3: note: possible intended match here
# | ; Function Attrs: mustprogress noinline nounwind optnone
# |   ^
# | C:\_work\llvm-project\llvm-project\clang\test\CodeGenCXX\catch-undef-behavior.cpp:739:22: error: undefined variable: FUNCSAN
# | // CHECK-FUNCSAN: ![[FUNCSAN]] = !{i32 -1056584962, i32 -1000226989}
# |                      ^
# | <stdin>:3071:23: note: possible intended match here
# | !2 = !{!"branch_weights", i32 1048575, i32 1}
# |                       ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\clang\test\CodeGenCXX\catch-undef-behavior.cpp
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |           1294:  %4 = ptrtoint ptr %sub.ptr to i64, !nosanitize !1 
# |           1295:  %5 = and i64 %4, 15, !nosanitize !1 
# |           1296:  %6 = icmp eq i64 %5, 0, !nosanitize !1 
# |           1297:  %7 = and i1 %1, %3, !nosanitize !1 
# |           1298:  %8 = and i1 %7, %6, !nosanitize !1 
# |           1299:  br i1 %8, label %cont, label %handler.type_mismatch, !prof !2, !nosanitize !1 
# | check:391'0              X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |           1300:  
# | check:391'0     ~
# |           1301: handler.type_mismatch: ; preds = %entry 
# | check:391'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1302:  call void @__ubsan_handle_type_mismatch_v1(ptr @67, i64 %4) #11, !nosanitize !1 
# | check:391'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1303:  br label %cont, !nosanitize !1 
# | check:391'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1304:  
# | check:391'0     ~
# |           1305: cont: ; preds = %handler.type_mismatch, %entry 
# | check:391'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1306:  ret void 
# | check:391'0     ~~~~~~~~~~
# |           1307: } 
# | check:391'0     ~~
# |           1308:  
# | check:391'0     ~
# |           1309: ; Function Attrs: mustprogress noinline nounwind optnone 
# | check:391'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1310: define dso_local void @_Z22indirect_function_callPFviE(ptr %p) #0 { 
# | check:391'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:391'1                           ?                                              possible intended match
# |           1311: entry: 
# | check:391'0     ~~~~~~~
# |           1312:  %p.addr = alloca ptr, align 8 
# | check:391'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1313:  store ptr %p, ptr %p.addr, align 8 
# | check:391'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1314:  %0 = load ptr, ptr %p.addr, align 8 
# | check:391'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1315:  %1 = getelementptr <{ i32, i32 }>, ptr %0, i32 -1, i32 0, !nosanitize !1 
# | check:391'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           1418:  tail call void @_ZN29FunctionSanitizerVirtualCalls1B1fEv(ptr nonnull align 8 dereferenceable(8) %2) 
# |           1419:  ret void 
# |           1420: } 
# |           1421:  
# |           1422: ; Function Attrs: mustprogress noinline nounwind optnone 
# |           1423: define dso_local void @_ZN29FunctionSanitizerVirtualCalls11force_irgenEv() #0 { 
# | check:473'0                                                                               X~~~~~ error: no match found
# |           1424: entry: 
# | check:473'0     ~~~~~~~
# |           1425:  %a = alloca %"struct.FunctionSanitizerVirtualCalls::A", align 8 
# | check:473'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1426:  %b = alloca %"struct.FunctionSanitizerVirtualCalls::B", align 8 
# | check:473'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1427:  %0 = call i64 @llvm.objectsize.i64.p0(ptr %a, i1 false, i1 false, i1 false), !nosanitize !1 
# | check:473'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:473'1                                                                                ?                  possible intended match
# |           1428:  %1 = icmp uge i64 %0, 8, !nosanitize !1 
# | check:473'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1429:  br i1 %1, label %cont, label %handler.type_mismatch, !prof !2, !nosanitize !1 
# | check:473'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1430:  
# | check:473'0     ~
# |           1431: handler.type_mismatch: ; preds = %entry 
# | check:473'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1432:  %2 = ptrtoint ptr %a to i64, !nosanitize !1 
# | check:473'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           1739: cont: ; preds = %handler.type_mismatch, %entry 
# |           1740:  ret void 
# |           1741: } 
# |           1742:  
# |           1743: ; Function Attrs: mustprogress noinline nounwind optnone 
# |           1744: define linkonce_odr void @_ZN29FunctionSanitizerVirtualCalls1B1qEv() #0 comdat align 2 { 
# | check:494'0                                                                       X~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |           1745: entry: 
# | check:494'0     ~~~~~~~
# |           1746:  ret void 
# | check:494'0     ~~~~~~~~~~
# |           1747: } 
# | check:494'0     ~~
# |           1748:  
# | check:494'0     ~
# |           1749: ; Function Attrs: mustprogress noinline nounwind optnone 
# | check:494'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:494'1       ?                                                       possible intended match
# |           1750: define dso_local ptr @_ZN17UpcastPointerTest14upcast_pointerEPNS_1TE(ptr %t) #0 { 
# | check:494'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1751: entry: 
# |           1752:  %t.addr = alloca ptr, align 8 
# |           1753:  store ptr %t, ptr %t.addr, align 8 
# |           1754:  %0 = load ptr, ptr %t.addr, align 8 
# |              .
# |              .
# |              .
# |           3058: attributes #7 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+cx8,+mmx,+sse,+sse2,+x87" } 
# |           3059: attributes #8 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+cx8,+mmx,+sse,+sse2,+x87" } 
# |           3060: attributes #9 = { nobuiltin allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+cx8,+mmx,+sse,+sse2,+x87" } 
# |           3061: attributes #10 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } 
# |           3062: attributes #11 = { nomerge nounwind } 
# |           3063: attributes #12 = { nomerge noreturn nounwind } 
# | check:739'0                                                   X error: match failed for invalid pattern
# | check:739'1                                                     undefined variable: FUNCSAN
# |           3064: attributes #13 = { nounwind } 
# | check:739'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           3065: attributes #14 = { builtin allocsize(0) } 
# | check:739'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           3066:  
# | check:739'0     ~
# |           3067: !llvm.ident = !{!0} 
# | check:739'0     ~~~~~~~~~~~~~~~~~~~~
# |           3068:  
# | check:739'0     ~
# |           3069: !0 = !{!"clang version 23.0.0git (https://github.com/llvm/llvm-project 01f74e68bd3b033c43a25da48065be4d38e8ca3b)"} 
# | check:739'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           3070: !1 = !{} 
# | check:739'0     ~~~~~~~~~
# |           3071: !2 = !{!"branch_weights", i32 1048575, i32 1} 
# | check:739'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:739'2                           ?                        possible intended match
# |           3072: !3 = !{i64 8} 
# | check:739'0     ~~~~~~~~~~~~~~
# |           3073: !4 = !{i64 4} 
# | check:739'0     ~~~~~~~~~~~~~~
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>Clang.CodeGenCXX/ubsan-function-noexcept.cpp</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -cc1 -internal-isystem C:\_work\llvm-project\llvm-project\build\lib\clang\23\include -nostdsysteminc -std=c++17 -fsanitize=function -emit-llvm -triple x86_64-linux-gnu C:\_work\llvm-project\llvm-project\clang\test\CodeGenCXX\ubsan-function-noexcept.cpp -o - | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\clang\test\CodeGenCXX\ubsan-function-noexcept.cpp
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -cc1 -internal-isystem 'C:\_work\llvm-project\llvm-project\build\lib\clang\23\include' -nostdsysteminc -std=c++17 -fsanitize=function -emit-llvm -triple x86_64-linux-gnu 'C:\_work\llvm-project\llvm-project\clang\test\CodeGenCXX\ubsan-function-noexcept.cpp' -o -
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\clang\test\CodeGenCXX\ubsan-function-noexcept.cpp'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\clang\test\CodeGenCXX\ubsan-function-noexcept.cpp:5:11: error: CHECK: expected string not found in input
# | // CHECK: define{{.*}} void @_Z1fv() #[[#]] !func_sanitize ![[FUNCSAN:.*]] {
# |           ^
# | <stdin>:1:1: note: scanning from here
# | ; ModuleID = 'C:\_work\llvm-project\llvm-project\clang\test\CodeGenCXX\ubsan-function-noexcept.cpp'
# | ^
# | <stdin>:11:8: note: possible intended match here
# | define dso_local void @_Z1fv() #0 {
# |        ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\clang\test\CodeGenCXX\ubsan-function-noexcept.cpp
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            1: ; ModuleID = 'C:\_work\llvm-project\llvm-project\clang\test\CodeGenCXX\ubsan-function-noexcept.cpp' 
# | check:5'0     X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |            2: source_filename = "C:\\_work\\llvm-project\\llvm-project\\clang\\test\\CodeGenCXX\\ubsan-function-noexcept.cpp" 
# | check:5'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" 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            4: target triple = "x86_64-unknown-linux-gnu" 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            5:  
# | check:5'0     ~
# |            6: @.src = private unnamed_addr constant [85 x i8] c"C:\\_work\\llvm-project\\llvm-project\\clang\\test\\CodeGenCXX\\ubsan-function-noexcept.cpp\00", align 1 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            7: @0 = private unnamed_addr constant { i16, i16, [22 x i8] } { i16 -1, i16 0, [22 x i8] c"'void (*)() noexcept'\00" } 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            8: @1 = private unnamed_addr global { { ptr, i32, i32 }, ptr } { { ptr, i32, i32 } { ptr @.src, i32 15, i32 3 }, ptr @0 } 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            9:  
# | check:5'0     ~
# |           10: ; Function Attrs: mustprogress noinline nounwind optnone 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           11: define dso_local void @_Z1fv() #0 { 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:5'1            ?                             possible intended match
# |           12: entry: 
# | check:5'0     ~~~~~~~
# |           13:  ret void 
# | check:5'0     ~~~~~~~~~~
# |           14: } 
# | check:5'0     ~~
# |           15:  
# | check:5'0     ~
# |           16: ; Function Attrs: mustprogress noinline nounwind optnone 
# | check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            .
# |            .
# |            .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>Clang.DebugInfo/Generic/ubsan-function-debuginfo.c</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -cc1 -internal-isystem C:\_work\llvm-project\llvm-project\build\lib\clang\23\include -nostdsysteminc -O2 -emit-llvm -triple x86_64 -std=c17 -fsanitize=function C:\_work\llvm-project\llvm-project\clang\test\DebugInfo\Generic\ubsan-function-debuginfo.c -o -    -fdebug-prefix-map=C:\_work\llvm-project\llvm-project\clang\test\DebugInfo\Generic/= -fno-ident -fdebug-compilation-dir=C:\_work\llvm-project\llvm-project\clang\test\DebugInfo\Generic -debug-info-kind=limited    -fsanitize-annotate-debug-info=function    | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\clang\test\DebugInfo\Generic\ubsan-function-debuginfo.c
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -cc1 -internal-isystem 'C:\_work\llvm-project\llvm-project\build\lib\clang\23\include' -nostdsysteminc -O2 -emit-llvm -triple x86_64 -std=c17 -fsanitize=function 'C:\_work\llvm-project\llvm-project\clang\test\DebugInfo\Generic\ubsan-function-debuginfo.c' -o - '-fdebug-prefix-map=C:\_work\llvm-project\llvm-project\clang\test\DebugInfo\Generic/=' -fno-ident '-fdebug-compilation-dir=C:\_work\llvm-project\llvm-project\clang\test\DebugInfo\Generic' -debug-info-kind=limited -fsanitize-annotate-debug-info=function
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\clang\test\DebugInfo\Generic\ubsan-function-debuginfo.c'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\clang\test\DebugInfo\Generic\ubsan-function-debuginfo.c:8:16: error: CHECK-SAME: expected string not found in input
# | // CHECK-SAME: ptr noundef readonly captures(none) [[F:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] !dbg [[DBG5:![0-9]+]] !func_sanitize [[META14:![0-9]+]] {
# |                ^
# | <stdin>:11:42: note: scanning from here
# | define dso_local void @call_no_prototype(ptr noundef readonly captures(none) %f) local_unnamed_addr #0 !dbg !8 {
# |                                          ^
# | C:\_work\llvm-project\llvm-project\clang\test\DebugInfo\Generic\ubsan-function-debuginfo.c:17:61: error: undefined variable: ATTR0
# | // CHECK-SAME: ptr noundef [[F:%.*]]) local_unnamed_addr #[[ATTR0]] !dbg [[DBG18:![0-9]+]] !func_sanitize [[META26:![0-9]+]] {
# |                                                             ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\clang\test\DebugInfo\Generic\ubsan-function-debuginfo.c
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |            6: @.src = private unnamed_addr constant [91 x i8] c"C:\\_work\\llvm-project\\llvm-project\\clang\\test\\DebugInfo\\Generic\\ubsan-function-debuginfo.c\00", align 1 
# |            7: @0 = private unnamed_addr constant { i16, i16, [17 x i8] } { i16 -1, i16 0, [17 x i8] c"'void (*)(void)'\00" } 
# |            8: @1 = private unnamed_addr global { { ptr, i32, i32 }, ptr } { { ptr, i32, i32 } { ptr @.src, i32 37, i32 40 }, ptr @0 } 
# |            9:  
# |           10: ; Function Attrs: nounwind 
# |           11: define dso_local void @call_no_prototype(ptr noundef readonly captures(none) %f) local_unnamed_addr #0 !dbg !8 { 
# | same:8                                                 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |           12: entry: 
# | same:8        ~~~~~~~
# |           13:  #dbg_value(ptr %f, !16, !DIExpression(), !17) 
# | same:8        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           14:  tail call void (...) %f() #2, !dbg !18 
# | same:8        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           15:  ret void, !dbg !19 
# | same:8        ~~~~~~~~~~~~~~~~~~~~
# |           16: } 
# | same:8        ~~
# |           17:  
# | same:8        ~
# |           18: ; Function Attrs: nounwind 
# | same:8        ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           19: define dso_local void @call_prototype(ptr noundef %f) local_unnamed_addr #0 !dbg !20 { 
# | same:8        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | same:17'0                                           X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match failed for invalid pattern
# | same:17'1                                                                                             undefined variable: ATTR0
# |           20: entry: 
# | same:17'0     ~~~~~~~
# |           21:  #dbg_value(ptr %f, !27, !DIExpression(), !28) 
# | same:17'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           22:  %0 = getelementptr i8, ptr %f, i64 -8, !dbg !29 
# | same:17'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           23:  %1 = load i32, ptr %0, align 4, !dbg !29, !nosanitize !33 
# | same:17'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           24:  %2 = icmp eq i32 %1, -1056584962, !dbg !29, !nosanitize !33 
# | same:17'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            .
# |            .
# |            .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>

### LLVM
<details>
<summary>LLVM.Bitcode/calling-conventions.3.2.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\llvm-dis.exe < C:\_work\llvm-project\llvm-project\llvm\test\Bitcode\calling-conventions.3.2.ll.bc| c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Bitcode\calling-conventions.3.2.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llvm-dis.exe'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Bitcode\calling-conventions.3.2.ll'
# note: command had no output on stdout or stderr
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\verify-uselistorder.exe < C:\_work\llvm-project\llvm-project\llvm\test\Bitcode\calling-conventions.3.2.ll.bc
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\verify-uselistorder.exe'
# .---command stderr------------
# | calling convention does not permit calls
# |   call ptx_kernel void @ptx_kernel()
# | c:\_work\llvm-project\llvm-project\build\bin\verify-uselistorder.exe: -: error: input module is broken!
# `-----------------------------
# 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/188872


More information about the llvm-commits mailing list