Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[LowerTypeTests] Add debug info to jump table entries#192736

Merged
vitalybuka merged 7 commits intomainfrom
users/vitalybuka/spr/lowertypetests-add-debug-info-to-jump-table-entries
Apr 23, 2026
Merged

[LowerTypeTests] Add debug info to jump table entries#192736
vitalybuka merged 7 commits intomainfrom
users/vitalybuka/spr/lowertypetests-add-debug-info-to-jump-table-entries

Conversation

@vitalybuka
Copy link
Copy Markdown
Collaborator

@vitalybuka vitalybuka commented Apr 17, 2026

When Control Flow Integrity (CFI) is enabled, jump tables are used to
redirect indirect calls. Previously, these jump table entries lacked
debug information, making it difficult for profilers and debuggers to
attribute execution time correctly.

Now stack trace, when stopped on jump table entry will looks like this:

#0: __ubsan_check_cfi_icall_jt at sanitizer/ubsan_interface.h:0
#1: c::c() (.cfi_jt) at sanitizer/ubsan_interface.h:0:0
#2: .cfi.jumptable.81 at sanitizer/ubsan_interface.h:0:0

Created using spr 1.3.7
@llvmbot
Copy link
Copy Markdown
Member

llvmbot commented Apr 17, 2026

@llvm/pr-subscribers-llvm-transforms

Author: Vitaly Buka (vitalybuka)

Changes

When Control Flow Integrity (CFI) is enabled, jump tables are used to
redirect indirect calls. Previously, these jump table entries lacked
debug information, making it difficult for profilers and debuggers to
attribute execution time correctly.


Full diff: https://github.com/llvm/llvm-project/pull/192736.diff

3 Files Affected:

  • (modified) llvm/lib/Transforms/IPO/LowerTypeTests.cpp (+35)
  • (modified) llvm/test/Transforms/LowerTypeTests/aarch64-jumptable.ll (+11-4)
  • (modified) llvm/test/Transforms/LowerTypeTests/x86-jumptable.ll (+22-8)
diff --git a/llvm/lib/Transforms/IPO/LowerTypeTests.cpp b/llvm/lib/Transforms/IPO/LowerTypeTests.cpp
index a390b983b1ded..cf653ab15beea 100644
--- a/llvm/lib/Transforms/IPO/LowerTypeTests.cpp
+++ b/llvm/lib/Transforms/IPO/LowerTypeTests.cpp
@@ -1529,11 +1529,46 @@ Triple::ArchType LowerTypeTestsModule::selectJumpTableArmEncoding(
   return ArmCount > ThumbCount ? Triple::arm : Triple::thumb;
 }
 
+static llvm::DILocation *createDebugInfo(Function *F) {
+  Module &M = *F->getParent();
+  DICompileUnit *CU = nullptr;
+  auto CUs = M.debug_compile_units();
+  if (!CUs.empty())
+    CU = *CUs.begin();
+
+  DIBuilder DIB(M, /*AllowUnresolved=*/true, CU);
+  llvm::DIFile *File = DIB.createFile("ubsan_interface.h", "sanitizer");
+  if (!CU) {
+    CU = DIB.createCompileUnit(
+        DISourceLanguageName(dwarf::DW_LANG_C), File, "llvm", true, "", 0, "",
+        DICompileUnit::DebugEmissionKind::LineTablesOnly);
+  }
+
+  DISubroutineType *DIFnTy = DIB.createSubroutineType(nullptr);
+
+  llvm::DISubprogram *NormalSP = DIB.createFunction(
+      File, F->getName(), StringRef(), File, 0, DIFnTy, 0,
+      DINode::FlagArtificial, DISubprogram::SPFlagDefinition);
+  F->setSubprogram(NormalSP);
+
+  llvm::DISubprogram *InlineSP = DIB.createFunction(
+      File, "__ubsan_check_cfi_icall_jt", StringRef(), File, 0, DIFnTy, 0,
+      DINode::FlagArtificial, DISubprogram::SPFlagDefinition);
+
+  DIB.finalize();
+
+  return llvm::DILocation::get(
+      M.getContext(), 0, 0, InlineSP,
+      llvm::DILocation::get(M.getContext(), 0, 0, NormalSP));
+}
+
 void LowerTypeTestsModule::createJumpTable(
     Function *F, ArrayRef<GlobalTypeMember *> Functions,
     Triple::ArchType JumpTableArch) {
   BasicBlock *BB = BasicBlock::Create(M.getContext(), "entry", F);
   IRBuilder<> IRB(BB);
+  if (ClAnnotateDebugInfo)
+    IRB.SetCurrentDebugLocation(createDebugInfo(F));
 
   InlineAsm *JumpTableAsm = createJumpTableEntryAsm(JumpTableArch);
 
diff --git a/llvm/test/Transforms/LowerTypeTests/aarch64-jumptable.ll b/llvm/test/Transforms/LowerTypeTests/aarch64-jumptable.ll
index 00c11b5b85bc7..e3e6de3d76c31 100644
--- a/llvm/test/Transforms/LowerTypeTests/aarch64-jumptable.ll
+++ b/llvm/test/Transforms/LowerTypeTests/aarch64-jumptable.ll
@@ -85,9 +85,9 @@ define i1 @foo(ptr %p) {
 ; AARCH64_DBG: Function Attrs: naked noinline
 ; AARCH64_DBG-LABEL: @.cfi.jumptable(
 ; AARCH64_DBG-NEXT:  entry:
-; AARCH64_DBG-NEXT:    call void asm sideeffect "bti c\0Ab $0\0A", "s"(ptr @f.cfi)
-; AARCH64_DBG-NEXT:    call void asm sideeffect "bti c\0Ab $0\0A", "s"(ptr @g.cfi)
-; AARCH64_DBG-NEXT:    unreachable
+; AARCH64_DBG-NEXT:    call void asm sideeffect "bti c\0Ab $0\0A", "s"(ptr @f.cfi), !dbg [[DBG6:![0-9]+]]
+; AARCH64_DBG-NEXT:    call void asm sideeffect "bti c\0Ab $0\0A", "s"(ptr @g.cfi), !dbg [[DBG6]]
+; AARCH64_DBG-NEXT:    unreachable, !dbg [[DBG6]]
 ;
 ;.
 ; AARCH64: attributes #[[ATTR0:[0-9]+]] = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
@@ -102,5 +102,12 @@ define i1 @foo(ptr %p) {
 ; AARCH64: [[META1:![0-9]+]] = !{i32 0, !"typeid1"}
 ;.
 ; AARCH64_DBG: [[META0:![0-9]+]] = !{i32 4, !"branch-target-enforcement", i32 1}
-; AARCH64_DBG: [[META1:![0-9]+]] = !{i32 0, !"typeid1"}
+; AARCH64_DBG: [[META1:![0-9]+]] = distinct !DICompileUnit(language: DW_LANG_C, file: [[META2:![0-9]+]], producer: "llvm", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly)
+; AARCH64_DBG: [[META2]] = !DIFile(filename: "{{.*}}ubsan_interface.h", directory: {{.*}})
+; AARCH64_DBG: [[META3:![0-9]+]] = !{i32 0, !"typeid1"}
+; AARCH64_DBG: [[META4:![0-9]+]] = distinct !DISubprogram(name: ".cfi.jumptable", scope: [[META2]], file: [[META2]], type: [[META5:![0-9]+]], flags: DIFlagArtificial, spFlags: DISPFlagDefinition, unit: [[META1]])
+; AARCH64_DBG: [[META5]] = !DISubroutineType(types: null)
+; AARCH64_DBG: [[DBG6]] = !DILocation(line: 0, scope: [[META7:![0-9]+]], inlinedAt: [[META8:![0-9]+]])
+; AARCH64_DBG: [[META7]] = distinct !DISubprogram(name: "__ubsan_check_cfi_icall_jt", scope: [[META2]], file: [[META2]], type: [[META5]], flags: DIFlagArtificial, spFlags: DISPFlagDefinition, unit: [[META1]])
+; AARCH64_DBG: [[META8]] = !DILocation(line: 0, scope: [[META4]])
 ;.
diff --git a/llvm/test/Transforms/LowerTypeTests/x86-jumptable.ll b/llvm/test/Transforms/LowerTypeTests/x86-jumptable.ll
index 4a8cb0166cc12..e752392b1f058 100644
--- a/llvm/test/Transforms/LowerTypeTests/x86-jumptable.ll
+++ b/llvm/test/Transforms/LowerTypeTests/x86-jumptable.ll
@@ -112,9 +112,9 @@ define i1 @foo(ptr %p) {
 ;
 ; X86_32_DBG-LABEL: @.cfi.jumptable(
 ; X86_32_DBG-NEXT:  entry:
-; X86_32_DBG-NEXT:    call void asm sideeffect "endbr32\0Ajmp ${0:c}@plt\0A.balign 16, 0xcc\0A", "s"(ptr @f.cfi)
-; X86_32_DBG-NEXT:    call void asm sideeffect "endbr32\0Ajmp ${0:c}@plt\0A.balign 16, 0xcc\0A", "s"(ptr @g.cfi)
-; X86_32_DBG-NEXT:    unreachable
+; X86_32_DBG-NEXT:    call void asm sideeffect "endbr32\0Ajmp ${0:c}@plt\0A.balign 16, 0xcc\0A", "s"(ptr @f.cfi), !dbg [[DBG6:![0-9]+]]
+; X86_32_DBG-NEXT:    call void asm sideeffect "endbr32\0Ajmp ${0:c}@plt\0A.balign 16, 0xcc\0A", "s"(ptr @g.cfi), !dbg [[DBG6]]
+; X86_32_DBG-NEXT:    unreachable, !dbg [[DBG6]]
 ;
 ;
 ; X86_64_DBG-LABEL: @f.cfi(
@@ -135,9 +135,9 @@ define i1 @foo(ptr %p) {
 ;
 ; X86_64_DBG-LABEL: @.cfi.jumptable(
 ; X86_64_DBG-NEXT:  entry:
-; X86_64_DBG-NEXT:    call void asm sideeffect "endbr64\0Ajmp ${0:c}@plt\0A.balign 16, 0xcc\0A", "s"(ptr @f.cfi)
-; X86_64_DBG-NEXT:    call void asm sideeffect "endbr64\0Ajmp ${0:c}@plt\0A.balign 16, 0xcc\0A", "s"(ptr @g.cfi)
-; X86_64_DBG-NEXT:    unreachable
+; X86_64_DBG-NEXT:    call void asm sideeffect "endbr64\0Ajmp ${0:c}@plt\0A.balign 16, 0xcc\0A", "s"(ptr @f.cfi), !dbg [[DBG6:![0-9]+]]
+; X86_64_DBG-NEXT:    call void asm sideeffect "endbr64\0Ajmp ${0:c}@plt\0A.balign 16, 0xcc\0A", "s"(ptr @g.cfi), !dbg [[DBG6]]
+; X86_64_DBG-NEXT:    unreachable, !dbg [[DBG6]]
 ;
 ;.
 ; X86_32: attributes #[[ATTR0:[0-9]+]] = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
@@ -163,8 +163,22 @@ define i1 @foo(ptr %p) {
 ; X86_64: [[META1:![0-9]+]] = !{i32 0, !"typeid1"}
 ;.
 ; X86_32_DBG: [[META0:![0-9]+]] = !{i32 8, !"cf-protection-branch", i32 1}
-; X86_32_DBG: [[META1:![0-9]+]] = !{i32 0, !"typeid1"}
+; X86_32_DBG: [[META1:![0-9]+]] = distinct !DICompileUnit(language: DW_LANG_C, file: [[META2:![0-9]+]], producer: "llvm", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly)
+; X86_32_DBG: [[META2]] = !DIFile(filename: "{{.*}}ubsan_interface.h", directory: {{.*}})
+; X86_32_DBG: [[META3:![0-9]+]] = !{i32 0, !"typeid1"}
+; X86_32_DBG: [[META4:![0-9]+]] = distinct !DISubprogram(name: ".cfi.jumptable", scope: [[META2]], file: [[META2]], type: [[META5:![0-9]+]], flags: DIFlagArtificial, spFlags: DISPFlagDefinition, unit: [[META1]])
+; X86_32_DBG: [[META5]] = !DISubroutineType(types: null)
+; X86_32_DBG: [[DBG6]] = !DILocation(line: 0, scope: [[META7:![0-9]+]], inlinedAt: [[META8:![0-9]+]])
+; X86_32_DBG: [[META7]] = distinct !DISubprogram(name: "__ubsan_check_cfi_icall_jt", scope: [[META2]], file: [[META2]], type: [[META5]], flags: DIFlagArtificial, spFlags: DISPFlagDefinition, unit: [[META1]])
+; X86_32_DBG: [[META8]] = !DILocation(line: 0, scope: [[META4]])
 ;.
 ; X86_64_DBG: [[META0:![0-9]+]] = !{i32 8, !"cf-protection-branch", i32 1}
-; X86_64_DBG: [[META1:![0-9]+]] = !{i32 0, !"typeid1"}
+; X86_64_DBG: [[META1:![0-9]+]] = distinct !DICompileUnit(language: DW_LANG_C, file: [[META2:![0-9]+]], producer: "llvm", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly)
+; X86_64_DBG: [[META2]] = !DIFile(filename: "{{.*}}ubsan_interface.h", directory: {{.*}})
+; X86_64_DBG: [[META3:![0-9]+]] = !{i32 0, !"typeid1"}
+; X86_64_DBG: [[META4:![0-9]+]] = distinct !DISubprogram(name: ".cfi.jumptable", scope: [[META2]], file: [[META2]], type: [[META5:![0-9]+]], flags: DIFlagArtificial, spFlags: DISPFlagDefinition, unit: [[META1]])
+; X86_64_DBG: [[META5]] = !DISubroutineType(types: null)
+; X86_64_DBG: [[DBG6]] = !DILocation(line: 0, scope: [[META7:![0-9]+]], inlinedAt: [[META8:![0-9]+]])
+; X86_64_DBG: [[META7]] = distinct !DISubprogram(name: "__ubsan_check_cfi_icall_jt", scope: [[META2]], file: [[META2]], type: [[META5]], flags: DIFlagArtificial, spFlags: DISPFlagDefinition, unit: [[META1]])
+; X86_64_DBG: [[META8]] = !DILocation(line: 0, scope: [[META4]])
 ;.

@vitalybuka vitalybuka requested review from fmayer, pcc and thurstond April 17, 2026 20:56
vitalybuka added a commit that referenced this pull request Apr 21, 2026
…als (#192734)

Debug information will be updated in the
#192736,
so we want to track the difference.
llvm-sync Bot pushed a commit to arm/arm-toolchain that referenced this pull request Apr 21, 2026
…-check-globals (#192734)

Debug information will be updated in the
llvm/llvm-project#192736,
so we want to track the difference.
cpullvm-upstream-sync Bot pushed a commit to navaneethshan/cpullvm-toolchain-1 that referenced this pull request Apr 21, 2026
…-check-globals (#192734)

Debug information will be updated in the
llvm/llvm-project#192736,
so we want to track the difference.
Created using spr 1.3.7

[skip ci]
Created using spr 1.3.7
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 21, 2026

🐧 Linux x64 Test Results

  • 194071 tests passed
  • 5107 tests skipped

✅ The build succeeded and all tests passed.

Copy link
Copy Markdown
Contributor

@pcc pcc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Won't this make the debug info more confusing? Previously debuggers would see the jump table entry symbols from the ELF symbol table, but now it looks like they will just see a symbol name ".cfi.jumptable"? I think I would expect each jump table entry to have separate .debug_line entry named after the function, with the __ubsan_check_cfi_icall_jt inlined inside it.

vitalybuka added a commit that referenced this pull request Apr 21, 2026
… info (#192735)

It just recommits test copied from non dbg version.

Implementation is #192736.
vitalybuka added a commit that referenced this pull request Apr 22, 2026
… info (#192735) (#193358)

It just recommits test copied from non dbg version.

Implementation is #192736.

This is the same as #192735, accidentally merged into spr/users branch.
llvm-sync Bot pushed a commit to arm/arm-toolchain that referenced this pull request Apr 22, 2026
… with debug info (#192735) (#193358)

It just recommits test copied from non dbg version.

Implementation is llvm/llvm-project#192736.

This is the same as #192735, accidentally merged into spr/users branch.
kastiglione and others added 2 commits April 21, 2026 20:21
Created using spr 1.3.7

[skip ci]
Created using spr 1.3.7
@vitalybuka vitalybuka changed the base branch from users/vitalybuka/spr/main.lowertypetests-add-debug-info-to-jump-table-entries to main April 22, 2026 03:22
@vitalybuka vitalybuka requested a review from pcc April 22, 2026 03:23
@vitalybuka
Copy link
Copy Markdown
Collaborator Author

Won't this make the debug info more confusing? Previously debuggers would see the jump table entry symbols from the ELF symbol table, but now it looks like they will just see a symbol name ".cfi.jumptable"? I think I would expect each jump table entry to have separate .debug_line entry named after the function, with the __ubsan_check_cfi_icall_jt inlined inside it.

done

cpullvm-upstream-sync Bot pushed a commit to navaneethshan/cpullvm-toolchain-1 that referenced this pull request Apr 22, 2026
… with debug info (#192735) (#193358)

It just recommits test copied from non dbg version.

Implementation is llvm/llvm-project#192736.

This is the same as #192735, accidentally merged into spr/users branch.
Copy link
Copy Markdown
Contributor

@pcc pcc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/llvm;://g throughout the patch

Created using spr 1.3.7
@vitalybuka vitalybuka enabled auto-merge (squash) April 23, 2026 03:08
@vitalybuka vitalybuka merged commit abb4ff5 into main Apr 23, 2026
9 of 10 checks passed
@vitalybuka vitalybuka deleted the users/vitalybuka/spr/lowertypetests-add-debug-info-to-jump-table-entries branch April 23, 2026 03:43
@llvm-ci
Copy link
Copy Markdown

llvm-ci commented Apr 23, 2026

LLVM Buildbot has detected a new failure on builder llvm-clang-x86_64-gcc-ubuntu running on sie-linux-worker3 while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/174/builds/34818

Here is the relevant piece of the build log for the reference
Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'cfi-devirt-lld-thinlto-traploop-x86_64 :: cross-dso/icall/diag.cpp' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 9
mkdir -p /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-lld-thinlto-traploop-x86_64/cross-dso/icall/Output/diag.cpp.tmp.dir && cd /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-lld-thinlto-traploop-x86_64/cross-dso/icall/Output/diag.cpp.tmp.dir
# executed command: mkdir -p /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-lld-thinlto-traploop-x86_64/cross-dso/icall/Output/diag.cpp.tmp.dir
# note: command had no output on stdout or stderr
# executed command: cd /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-lld-thinlto-traploop-x86_64/cross-dso/icall/Output/diag.cpp.tmp.dir
# note: command had no output on stdout or stderr
# RUN: at line 10
/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/./bin/clang   -m64 -fuse-ld=lld -flto=thin  -fsanitize=cfi -fwhole-program-vtables --driver-mode=g++ -fsanitize-cfi-cross-dso -fvisibility=default -fno-sanitize-trap=cfi -fsanitize-recover=cfi -g -DSHARED_LIB /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp -fPIC -shared -o /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-lld-thinlto-traploop-x86_64/cross-dso/icall/Output/diag.cpp.tmp.dir/libdiag.cpp.dynamic.so
# executed command: /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/./bin/clang -m64 -fuse-ld=lld -flto=thin -fsanitize=cfi -fwhole-program-vtables --driver-mode=g++ -fsanitize-cfi-cross-dso -fvisibility=default -fno-sanitize-trap=cfi -fsanitize-recover=cfi -g -DSHARED_LIB /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp -fPIC -shared -o /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-lld-thinlto-traploop-x86_64/cross-dso/icall/Output/diag.cpp.tmp.dir/libdiag.cpp.dynamic.so
# note: command had no output on stdout or stderr
# RUN: at line 11
/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/./bin/clang   -m64 -fuse-ld=lld -flto=thin  -fsanitize=cfi -fwhole-program-vtables --driver-mode=g++ -fsanitize-cfi-cross-dso -fvisibility=default -fno-sanitize-trap=cfi -fsanitize-recover=cfi -g /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp -o /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-lld-thinlto-traploop-x86_64/cross-dso/icall/Output/diag.cpp.tmp.dir/exe -Wl,-rpath,\$ORIGIN -L/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-lld-thinlto-traploop-x86_64/cross-dso/icall/Output/diag.cpp.tmp.dir -ldiag.cpp.dynamic
# executed command: /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/./bin/clang -m64 -fuse-ld=lld -flto=thin -fsanitize=cfi -fwhole-program-vtables --driver-mode=g++ -fsanitize-cfi-cross-dso -fvisibility=default -fno-sanitize-trap=cfi -fsanitize-recover=cfi -g /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp -o /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-lld-thinlto-traploop-x86_64/cross-dso/icall/Output/diag.cpp.tmp.dir/exe '-Wl,-rpath,$ORIGIN' -L/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-lld-thinlto-traploop-x86_64/cross-dso/icall/Output/diag.cpp.tmp.dir -ldiag.cpp.dynamic
# note: command had no output on stdout or stderr
# RUN: at line 13
/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-lld-thinlto-traploop-x86_64/cross-dso/icall/Output/diag.cpp.tmp.dir/exe icv 2>&1 | FileCheck /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp --check-prefix=ICALL-DIAG --check-prefix=CAST-DIAG                                     --check-prefix=VCALL-DIAG --check-prefix=ALL-RECOVER
# executed command: /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-lld-thinlto-traploop-x86_64/cross-dso/icall/Output/diag.cpp.tmp.dir/exe icv
# note: command had no output on stdout or stderr
# executed command: FileCheck /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp --check-prefix=ICALL-DIAG --check-prefix=CAST-DIAG --check-prefix=VCALL-DIAG --check-prefix=ALL-RECOVER
# .---command stderr------------
# | �[1m/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp:116:22: �[0m�[0;1;31merror: �[0m�[1mICALL-DIAG-NEXT: expected string not found in input
�[0m# | �[1m�[0m // ICALL-DIAG-NEXT: note: create_B() defined here
# | �[0;1;32m                     ^
�[0m# | �[0;1;32m�[0m�[1m<stdin>:2:228: �[0m�[0;1;30mnote: �[0m�[1mscanning from here
�[0m# | �[1m�[0m/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp:118:9: runtime error: control flow integrity check for type 'void *(int)' failed during indirect function call
# | �[0;1;32m                                                                                                                                                                                                                                   ^
�[0m# | �[0;1;32m�[0m�[1m<stdin>:3:49: �[0m�[0;1;30mnote: �[0m�[1mpossible intended match here
�[0m# | �[1m�[0msanitizer/ubsan_interface.h: note: __ubsan_check_cfi_icall_jt defined here
# | �[0;1;32m                                                ^
�[0m# | �[0;1;32m�[0m
# | Input file: <stdin>
# | Check file: /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# | �[1m�[0m�[0;1;30m            1: �[0m�[1m�[0;1;46m�[0m=0=�[0;1;46m �[0m
# | �[0;1;32mcheck:110      ^~~
�[0m# | �[0;1;32m�[0m�[0;1;30m            2: �[0m�[1m�[0;1;46m/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp:118:9: �[0mruntime error: control flow integrity check for type 'void *(int)' failed during indirect function call�[0;1;46m �[0m
# | �[0;1;32mcheck:115                                                                                                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
�[0m# | �[0;1;32m�[0m�[0;1;31mnext:116'0                                                                                                                                                                                                                                        X error: no match found
�[0m# | �[0;1;31m�[0m�[0;1;30m            3: �[0m�[1m�[0;1;46msanitizer/ubsan_interface.h: note: __ubsan_check_cfi_icall_jt defined here �[0m
# | �[0;1;31mnext:116'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
�[0m# | �[0;1;31m�[0m�[0;1;35mnext:116'1                                                     ?                           possible intended match
...

@llvm-ci
Copy link
Copy Markdown

llvm-ci commented Apr 23, 2026

LLVM Buildbot has detected a new failure on builder sanitizer-x86_64-linux running on sanitizer-buildbot1 while building llvm at step 2 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/66/builds/29795

Here is the relevant piece of the build log for the reference
Step 2 (annotate) failure: 'python ../sanitizer_buildbot/sanitizers/zorg/buildbot/builders/sanitizers/buildbot_selector.py' (failure)
...
[415/421] Generating MSAN_INST_GTEST.gtest-all.cc.x86_64-with-call.o
[416/421] Generating MSAN_INST_GTEST.gtest-all.cc.x86_64.o
[417/421] Generating MSAN_INST_TEST_OBJECTS.msan_test.cpp.x86_64-with-call.o
[418/421] Generating Msan-x86_64-with-call-Test
[419/421] Generating MSAN_INST_TEST_OBJECTS.msan_test.cpp.x86_64.o
[420/421] Generating Msan-x86_64-Test
[420/421] Running compiler_rt regression tests
llvm-lit: /home/b/sanitizer-x86_64-linux/build/llvm-project/llvm/utils/lit/lit/main.py:74: note: The test suite configuration requested an individual test timeout of 0 seconds but a timeout of 900 seconds was requested on the command line. Forcing timeout to be 900 seconds.
-- Testing: 11523 tests, 64 workers --
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80
FAIL: cfi-devirt-i386 :: cross-dso/icall/diag.cpp (9879 of 11523)
******************** TEST 'cfi-devirt-i386 :: cross-dso/icall/diag.cpp' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 9
mkdir -p /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir && cd /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir
# executed command: mkdir -p /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir
# note: command had no output on stdout or stderr
# executed command: cd /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir
# note: command had no output on stdout or stderr
# RUN: at line 10
/home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang   -m32 -fuse-ld=gold -flto  -fsanitize=cfi -fwhole-program-vtables --driver-mode=g++ -fsanitize-cfi-cross-dso -fvisibility=default -fno-sanitize-trap=cfi -fsanitize-recover=cfi -g -DSHARED_LIB /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp -fPIC -shared -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir/libdiag.cpp.dynamic.so
# executed command: /home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang -m32 -fuse-ld=gold -flto -fsanitize=cfi -fwhole-program-vtables --driver-mode=g++ -fsanitize-cfi-cross-dso -fvisibility=default -fno-sanitize-trap=cfi -fsanitize-recover=cfi -g -DSHARED_LIB /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp -fPIC -shared -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir/libdiag.cpp.dynamic.so
# note: command had no output on stdout or stderr
# RUN: at line 11
/home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang   -m32 -fuse-ld=gold -flto  -fsanitize=cfi -fwhole-program-vtables --driver-mode=g++ -fsanitize-cfi-cross-dso -fvisibility=default -fno-sanitize-trap=cfi -fsanitize-recover=cfi -g /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir/exe -Wl,-rpath,\$ORIGIN -L/home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir -ldiag.cpp.dynamic
# executed command: /home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang -m32 -fuse-ld=gold -flto -fsanitize=cfi -fwhole-program-vtables --driver-mode=g++ -fsanitize-cfi-cross-dso -fvisibility=default -fno-sanitize-trap=cfi -fsanitize-recover=cfi -g /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir/exe '-Wl,-rpath,$ORIGIN' -L/home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir -ldiag.cpp.dynamic
# note: command had no output on stdout or stderr
# RUN: at line 13
/home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir/exe icv 2>&1 | FileCheck /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp --check-prefix=ICALL-DIAG --check-prefix=CAST-DIAG                                     --check-prefix=VCALL-DIAG --check-prefix=ALL-RECOVER
# executed command: /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir/exe icv
# note: command had no output on stdout or stderr
# executed command: FileCheck /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp --check-prefix=ICALL-DIAG --check-prefix=CAST-DIAG --check-prefix=VCALL-DIAG --check-prefix=ALL-RECOVER
# .---command stderr------------
# | /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp:116:22: error: ICALL-DIAG-NEXT: expected string not found in input
# |  // ICALL-DIAG-NEXT: note: create_B() defined here
# |                      ^
# | <stdin>:2:207: note: scanning from here
# | /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp:118:9: runtime error: control flow integrity check for type 'void *(int)' failed during indirect function call
# |                                                                                                                                                                                                               ^
# | <stdin>:3:196: note: possible intended match here
# | /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir/sanitizer/ubsan_interface.h: note: __ubsan_check_cfi_icall_jt defined here
# |                                                                                                                                                                                                    ^
# | 
# | Input file: <stdin>
# | Check file: /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp
# | 
Step 9 (test compiler-rt symbolizer) failure: test compiler-rt symbolizer (failure)
...
[415/421] Generating MSAN_INST_GTEST.gtest-all.cc.x86_64-with-call.o
[416/421] Generating MSAN_INST_GTEST.gtest-all.cc.x86_64.o
[417/421] Generating MSAN_INST_TEST_OBJECTS.msan_test.cpp.x86_64-with-call.o
[418/421] Generating Msan-x86_64-with-call-Test
[419/421] Generating MSAN_INST_TEST_OBJECTS.msan_test.cpp.x86_64.o
[420/421] Generating Msan-x86_64-Test
[420/421] Running compiler_rt regression tests
llvm-lit: /home/b/sanitizer-x86_64-linux/build/llvm-project/llvm/utils/lit/lit/main.py:74: note: The test suite configuration requested an individual test timeout of 0 seconds but a timeout of 900 seconds was requested on the command line. Forcing timeout to be 900 seconds.
-- Testing: 11523 tests, 64 workers --
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80
FAIL: cfi-devirt-i386 :: cross-dso/icall/diag.cpp (9879 of 11523)
******************** TEST 'cfi-devirt-i386 :: cross-dso/icall/diag.cpp' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 9
mkdir -p /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir && cd /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir
# executed command: mkdir -p /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir
# note: command had no output on stdout or stderr
# executed command: cd /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir
# note: command had no output on stdout or stderr
# RUN: at line 10
/home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang   -m32 -fuse-ld=gold -flto  -fsanitize=cfi -fwhole-program-vtables --driver-mode=g++ -fsanitize-cfi-cross-dso -fvisibility=default -fno-sanitize-trap=cfi -fsanitize-recover=cfi -g -DSHARED_LIB /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp -fPIC -shared -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir/libdiag.cpp.dynamic.so
# executed command: /home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang -m32 -fuse-ld=gold -flto -fsanitize=cfi -fwhole-program-vtables --driver-mode=g++ -fsanitize-cfi-cross-dso -fvisibility=default -fno-sanitize-trap=cfi -fsanitize-recover=cfi -g -DSHARED_LIB /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp -fPIC -shared -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir/libdiag.cpp.dynamic.so
# note: command had no output on stdout or stderr
# RUN: at line 11
/home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang   -m32 -fuse-ld=gold -flto  -fsanitize=cfi -fwhole-program-vtables --driver-mode=g++ -fsanitize-cfi-cross-dso -fvisibility=default -fno-sanitize-trap=cfi -fsanitize-recover=cfi -g /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir/exe -Wl,-rpath,\$ORIGIN -L/home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir -ldiag.cpp.dynamic
# executed command: /home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang -m32 -fuse-ld=gold -flto -fsanitize=cfi -fwhole-program-vtables --driver-mode=g++ -fsanitize-cfi-cross-dso -fvisibility=default -fno-sanitize-trap=cfi -fsanitize-recover=cfi -g /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir/exe '-Wl,-rpath,$ORIGIN' -L/home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir -ldiag.cpp.dynamic
# note: command had no output on stdout or stderr
# RUN: at line 13
/home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir/exe icv 2>&1 | FileCheck /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp --check-prefix=ICALL-DIAG --check-prefix=CAST-DIAG                                     --check-prefix=VCALL-DIAG --check-prefix=ALL-RECOVER
# executed command: /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir/exe icv
# note: command had no output on stdout or stderr
# executed command: FileCheck /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp --check-prefix=ICALL-DIAG --check-prefix=CAST-DIAG --check-prefix=VCALL-DIAG --check-prefix=ALL-RECOVER
# .---command stderr------------
# | /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp:116:22: error: ICALL-DIAG-NEXT: expected string not found in input
# |  // ICALL-DIAG-NEXT: note: create_B() defined here
# |                      ^
# | <stdin>:2:207: note: scanning from here
# | /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp:118:9: runtime error: control flow integrity check for type 'void *(int)' failed during indirect function call
# |                                                                                                                                                                                                               ^
# | <stdin>:3:196: note: possible intended match here
# | /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir/sanitizer/ubsan_interface.h: note: __ubsan_check_cfi_icall_jt defined here
# |                                                                                                                                                                                                    ^
# | 
# | Input file: <stdin>
# | Check file: /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp
# | 
Step 11 (test compiler-rt debug) failure: test compiler-rt debug (failure)
...
[414/421] Generating MSAN_INST_GTEST.gtest-all.cc.x86_64-with-call.o
[416/421] Generating MSAN_INST_GTEST.gtest-all.cc.x86_64.o
[417/421] Generating MSAN_INST_TEST_OBJECTS.msan_test.cpp.x86_64-with-call.o
[418/421] Generating Msan-x86_64-with-call-Test
[419/421] Generating MSAN_INST_TEST_OBJECTS.msan_test.cpp.x86_64.o
[420/421] Generating Msan-x86_64-Test
[420/421] Running compiler_rt regression tests
llvm-lit: /home/b/sanitizer-x86_64-linux/build/llvm-project/llvm/utils/lit/lit/main.py:74: note: The test suite configuration requested an individual test timeout of 0 seconds but a timeout of 900 seconds was requested on the command line. Forcing timeout to be 900 seconds.
-- Testing: 5426 of 11502 tests, 64 workers --
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 
FAIL: cfi-devirt-i386 :: cross-dso/icall/diag.cpp (3851 of 5426)
******************** TEST 'cfi-devirt-i386 :: cross-dso/icall/diag.cpp' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 9
mkdir -p /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir && cd /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir
# executed command: mkdir -p /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir
# note: command had no output on stdout or stderr
# executed command: cd /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir
# note: command had no output on stdout or stderr
# RUN: at line 10
/home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang   -m32 -fuse-ld=gold -flto  -fsanitize=cfi -fwhole-program-vtables --driver-mode=g++ -fsanitize-cfi-cross-dso -fvisibility=default -fno-sanitize-trap=cfi -fsanitize-recover=cfi -g -DSHARED_LIB /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp -fPIC -shared -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir/libdiag.cpp.dynamic.so
# executed command: /home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang -m32 -fuse-ld=gold -flto -fsanitize=cfi -fwhole-program-vtables --driver-mode=g++ -fsanitize-cfi-cross-dso -fvisibility=default -fno-sanitize-trap=cfi -fsanitize-recover=cfi -g -DSHARED_LIB /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp -fPIC -shared -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir/libdiag.cpp.dynamic.so
# note: command had no output on stdout or stderr
# RUN: at line 11
/home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang   -m32 -fuse-ld=gold -flto  -fsanitize=cfi -fwhole-program-vtables --driver-mode=g++ -fsanitize-cfi-cross-dso -fvisibility=default -fno-sanitize-trap=cfi -fsanitize-recover=cfi -g /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir/exe -Wl,-rpath,\$ORIGIN -L/home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir -ldiag.cpp.dynamic
# executed command: /home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang -m32 -fuse-ld=gold -flto -fsanitize=cfi -fwhole-program-vtables --driver-mode=g++ -fsanitize-cfi-cross-dso -fvisibility=default -fno-sanitize-trap=cfi -fsanitize-recover=cfi -g /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir/exe '-Wl,-rpath,$ORIGIN' -L/home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir -ldiag.cpp.dynamic
# note: command had no output on stdout or stderr
# RUN: at line 13
/home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir/exe icv 2>&1 | FileCheck /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp --check-prefix=ICALL-DIAG --check-prefix=CAST-DIAG                                     --check-prefix=VCALL-DIAG --check-prefix=ALL-RECOVER
# executed command: /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir/exe icv
# note: command had no output on stdout or stderr
# executed command: FileCheck /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp --check-prefix=ICALL-DIAG --check-prefix=CAST-DIAG --check-prefix=VCALL-DIAG --check-prefix=ALL-RECOVER
# .---command stderr------------
# | /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp:116:22: error: ICALL-DIAG-NEXT: expected string not found in input
# |  // ICALL-DIAG-NEXT: note: create_B() defined here
# |                      ^
# | <stdin>:2:207: note: scanning from here
# | /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp:118:9: runtime error: control flow integrity check for type 'void *(int)' failed during indirect function call
# |                                                                                                                                                                                                               ^
# | <stdin>:3:196: note: possible intended match here
# | /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir/sanitizer/ubsan_interface.h: note: __ubsan_check_cfi_icall_jt defined here
# |                                                                                                                                                                                                    ^
# | 
# | Input file: <stdin>
# | Check file: /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp
# | 
Step 14 (test compiler-rt default) failure: test compiler-rt default (failure)
...
[415/421] Generating MSAN_INST_GTEST.gtest-all.cc.x86_64-with-call.o
[416/421] Generating MSAN_INST_GTEST.gtest-all.cc.x86_64.o
[417/421] Generating MSAN_INST_TEST_OBJECTS.msan_test.cpp.x86_64-with-call.o
[418/421] Generating Msan-x86_64-with-call-Test
[419/421] Generating MSAN_INST_TEST_OBJECTS.msan_test.cpp.x86_64.o
[420/421] Generating Msan-x86_64-Test
[420/421] Running compiler_rt regression tests
llvm-lit: /home/b/sanitizer-x86_64-linux/build/llvm-project/llvm/utils/lit/lit/main.py:74: note: The test suite configuration requested an individual test timeout of 0 seconds but a timeout of 900 seconds was requested on the command line. Forcing timeout to be 900 seconds.
-- Testing: 11523 tests, 64 workers --
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80
FAIL: cfi-devirt-i386 :: cross-dso/icall/diag.cpp (9876 of 11523)
******************** TEST 'cfi-devirt-i386 :: cross-dso/icall/diag.cpp' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 9
mkdir -p /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir && cd /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir
# executed command: mkdir -p /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir
# note: command had no output on stdout or stderr
# executed command: cd /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir
# note: command had no output on stdout or stderr
# RUN: at line 10
/home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang   -m32 -fuse-ld=gold -flto  -fsanitize=cfi -fwhole-program-vtables --driver-mode=g++ -fsanitize-cfi-cross-dso -fvisibility=default -fno-sanitize-trap=cfi -fsanitize-recover=cfi -g -DSHARED_LIB /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp -fPIC -shared -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir/libdiag.cpp.dynamic.so
# executed command: /home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang -m32 -fuse-ld=gold -flto -fsanitize=cfi -fwhole-program-vtables --driver-mode=g++ -fsanitize-cfi-cross-dso -fvisibility=default -fno-sanitize-trap=cfi -fsanitize-recover=cfi -g -DSHARED_LIB /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp -fPIC -shared -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir/libdiag.cpp.dynamic.so
# note: command had no output on stdout or stderr
# RUN: at line 11
/home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang   -m32 -fuse-ld=gold -flto  -fsanitize=cfi -fwhole-program-vtables --driver-mode=g++ -fsanitize-cfi-cross-dso -fvisibility=default -fno-sanitize-trap=cfi -fsanitize-recover=cfi -g /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir/exe -Wl,-rpath,\$ORIGIN -L/home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir -ldiag.cpp.dynamic
# executed command: /home/b/sanitizer-x86_64-linux/build/build_default/./bin/clang -m32 -fuse-ld=gold -flto -fsanitize=cfi -fwhole-program-vtables --driver-mode=g++ -fsanitize-cfi-cross-dso -fvisibility=default -fno-sanitize-trap=cfi -fsanitize-recover=cfi -g /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp -o /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir/exe '-Wl,-rpath,$ORIGIN' -L/home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir -ldiag.cpp.dynamic
# note: command had no output on stdout or stderr
# RUN: at line 13
/home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir/exe icv 2>&1 | FileCheck /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp --check-prefix=ICALL-DIAG --check-prefix=CAST-DIAG                                     --check-prefix=VCALL-DIAG --check-prefix=ALL-RECOVER
# executed command: /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir/exe icv
# note: command had no output on stdout or stderr
# executed command: FileCheck /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp --check-prefix=ICALL-DIAG --check-prefix=CAST-DIAG --check-prefix=VCALL-DIAG --check-prefix=ALL-RECOVER
# .---command stderr------------
# | /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp:116:22: error: ICALL-DIAG-NEXT: expected string not found in input
# |  // ICALL-DIAG-NEXT: note: create_B() defined here
# |                      ^
# | <stdin>:2:207: note: scanning from here
# | /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp:118:9: runtime error: control flow integrity check for type 'void *(int)' failed during indirect function call
# |                                                                                                                                                                                                               ^
# | <stdin>:3:196: note: possible intended match here
# | /home/b/sanitizer-x86_64-linux/build/build_default/runtimes/runtimes-bins/compiler-rt/test/cfi/Devirt-i386/cross-dso/icall/Output/diag.cpp.tmp.dir/sanitizer/ubsan_interface.h: note: __ubsan_check_cfi_icall_jt defined here
# |                                                                                                                                                                                                    ^
# | 
# | Input file: <stdin>
# | Check file: /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp
# | 
Step 16 (test standalone compiler-rt) failure: test standalone compiler-rt (failure)
...
[230/236] Generating MSAN_INST_GTEST.gtest-all.cc.x86_64-with-call.o
[231/236] Generating MSAN_INST_GTEST.gtest-all.cc.x86_64.o
[232/236] Generating MSAN_INST_TEST_OBJECTS.msan_test.cpp.x86_64-with-call.o
[233/236] Generating Msan-x86_64-with-call-Test
[234/236] Generating MSAN_INST_TEST_OBJECTS.msan_test.cpp.x86_64.o
[235/236] Generating Msan-x86_64-Test
[235/236] Running compiler_rt regression tests
llvm-lit: /home/b/sanitizer-x86_64-linux/build/llvm-project/llvm/utils/lit/lit/main.py:74: note: The test suite configuration requested an individual test timeout of 0 seconds but a timeout of 900 seconds was requested on the command line. Forcing timeout to be 900 seconds.
-- Testing: 6228 tests, 64 workers --
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90
FAIL: cfi-devirt-thinlto-x86_64 :: cross-dso/icall/diag.cpp (5935 of 6228)
******************** TEST 'cfi-devirt-thinlto-x86_64 :: cross-dso/icall/diag.cpp' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 9
mkdir -p /home/b/sanitizer-x86_64-linux/build/compiler_rt_build/test/cfi/Devirt-thinlto-x86_64/cross-dso/icall/Output/diag.cpp.tmp.dir && cd /home/b/sanitizer-x86_64-linux/build/compiler_rt_build/test/cfi/Devirt-thinlto-x86_64/cross-dso/icall/Output/diag.cpp.tmp.dir
# executed command: mkdir -p /home/b/sanitizer-x86_64-linux/build/compiler_rt_build/test/cfi/Devirt-thinlto-x86_64/cross-dso/icall/Output/diag.cpp.tmp.dir
# note: command had no output on stdout or stderr
# executed command: cd /home/b/sanitizer-x86_64-linux/build/compiler_rt_build/test/cfi/Devirt-thinlto-x86_64/cross-dso/icall/Output/diag.cpp.tmp.dir
# note: command had no output on stdout or stderr
# RUN: at line 10
/home/b/sanitizer-x86_64-linux/build/build_default/bin/clang   -m64 -nobuiltininc -I/home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/include -idirafter /home/b/sanitizer-x86_64-linux/build/build_default/lib/clang/23/include -resource-dir=/home/b/sanitizer-x86_64-linux/build/compiler_rt_build -Wl,-rpath,/home/b/sanitizer-x86_64-linux/build/compiler_rt_build/lib/linux -fuse-ld=gold -flto=thin  -fsanitize=cfi -fwhole-program-vtables --driver-mode=g++ -fsanitize-cfi-cross-dso -fvisibility=default -fno-sanitize-trap=cfi -fsanitize-recover=cfi -g -DSHARED_LIB /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp -fPIC -shared -o /home/b/sanitizer-x86_64-linux/build/compiler_rt_build/test/cfi/Devirt-thinlto-x86_64/cross-dso/icall/Output/diag.cpp.tmp.dir/libdiag.cpp.dynamic.so
# executed command: /home/b/sanitizer-x86_64-linux/build/build_default/bin/clang -m64 -nobuiltininc -I/home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/include -idirafter /home/b/sanitizer-x86_64-linux/build/build_default/lib/clang/23/include -resource-dir=/home/b/sanitizer-x86_64-linux/build/compiler_rt_build -Wl,-rpath,/home/b/sanitizer-x86_64-linux/build/compiler_rt_build/lib/linux -fuse-ld=gold -flto=thin -fsanitize=cfi -fwhole-program-vtables --driver-mode=g++ -fsanitize-cfi-cross-dso -fvisibility=default -fno-sanitize-trap=cfi -fsanitize-recover=cfi -g -DSHARED_LIB /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp -fPIC -shared -o /home/b/sanitizer-x86_64-linux/build/compiler_rt_build/test/cfi/Devirt-thinlto-x86_64/cross-dso/icall/Output/diag.cpp.tmp.dir/libdiag.cpp.dynamic.so
# note: command had no output on stdout or stderr
# RUN: at line 11
/home/b/sanitizer-x86_64-linux/build/build_default/bin/clang   -m64 -nobuiltininc -I/home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/include -idirafter /home/b/sanitizer-x86_64-linux/build/build_default/lib/clang/23/include -resource-dir=/home/b/sanitizer-x86_64-linux/build/compiler_rt_build -Wl,-rpath,/home/b/sanitizer-x86_64-linux/build/compiler_rt_build/lib/linux -fuse-ld=gold -flto=thin  -fsanitize=cfi -fwhole-program-vtables --driver-mode=g++ -fsanitize-cfi-cross-dso -fvisibility=default -fno-sanitize-trap=cfi -fsanitize-recover=cfi -g /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp -o /home/b/sanitizer-x86_64-linux/build/compiler_rt_build/test/cfi/Devirt-thinlto-x86_64/cross-dso/icall/Output/diag.cpp.tmp.dir/exe -Wl,-rpath,\$ORIGIN -L/home/b/sanitizer-x86_64-linux/build/compiler_rt_build/test/cfi/Devirt-thinlto-x86_64/cross-dso/icall/Output/diag.cpp.tmp.dir -ldiag.cpp.dynamic
# executed command: /home/b/sanitizer-x86_64-linux/build/build_default/bin/clang -m64 -nobuiltininc -I/home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/include -idirafter /home/b/sanitizer-x86_64-linux/build/build_default/lib/clang/23/include -resource-dir=/home/b/sanitizer-x86_64-linux/build/compiler_rt_build -Wl,-rpath,/home/b/sanitizer-x86_64-linux/build/compiler_rt_build/lib/linux -fuse-ld=gold -flto=thin -fsanitize=cfi -fwhole-program-vtables --driver-mode=g++ -fsanitize-cfi-cross-dso -fvisibility=default -fno-sanitize-trap=cfi -fsanitize-recover=cfi -g /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp -o /home/b/sanitizer-x86_64-linux/build/compiler_rt_build/test/cfi/Devirt-thinlto-x86_64/cross-dso/icall/Output/diag.cpp.tmp.dir/exe '-Wl,-rpath,$ORIGIN' -L/home/b/sanitizer-x86_64-linux/build/compiler_rt_build/test/cfi/Devirt-thinlto-x86_64/cross-dso/icall/Output/diag.cpp.tmp.dir -ldiag.cpp.dynamic
# note: command had no output on stdout or stderr
# RUN: at line 13
/home/b/sanitizer-x86_64-linux/build/compiler_rt_build/test/cfi/Devirt-thinlto-x86_64/cross-dso/icall/Output/diag.cpp.tmp.dir/exe icv 2>&1 | FileCheck /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp --check-prefix=ICALL-DIAG --check-prefix=CAST-DIAG                                     --check-prefix=VCALL-DIAG --check-prefix=ALL-RECOVER
# executed command: /home/b/sanitizer-x86_64-linux/build/compiler_rt_build/test/cfi/Devirt-thinlto-x86_64/cross-dso/icall/Output/diag.cpp.tmp.dir/exe icv
# note: command had no output on stdout or stderr
# executed command: FileCheck /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp --check-prefix=ICALL-DIAG --check-prefix=CAST-DIAG --check-prefix=VCALL-DIAG --check-prefix=ALL-RECOVER
# .---command stderr------------
# | /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp:116:22: error: ICALL-DIAG-NEXT: expected string not found in input
# |  // ICALL-DIAG-NEXT: note: create_B() defined here
# |                      ^
# | <stdin>:2:207: note: scanning from here
# | /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp:118:9: runtime error: control flow integrity check for type 'void *(int)' failed during indirect function call
# |                                                                                                                                                                                                               ^
# | <stdin>:3:49: note: possible intended match here
# | sanitizer/ubsan_interface.h: note: __ubsan_check_cfi_icall_jt defined here
# |                                                 ^
# | 
# | Input file: <stdin>
# | Check file: /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/cfi/cross-dso/icall/diag.cpp
# | 

@boomanaiden154 boomanaiden154 restored the users/vitalybuka/spr/lowertypetests-add-debug-info-to-jump-table-entries branch April 23, 2026 05:03
boomanaiden154 added a commit that referenced this pull request Apr 23, 2026
Reverts #192736

Seems to cause buildbot failures in cross-project-tests, including on
the premerge postcommit builder.

https://lab.llvm.org/staging/#/builders/192/builds/28251
cpullvm-upstream-sync Bot pushed a commit to navaneethshan/cpullvm-toolchain-1 that referenced this pull request Apr 23, 2026
…ies" (#193663)

Reverts llvm/llvm-project#192736

Seems to cause buildbot failures in cross-project-tests, including on
the premerge postcommit builder.

https://lab.llvm.org/staging/#/builders/192/builds/28251
llvm-sync Bot pushed a commit to arm/arm-toolchain that referenced this pull request Apr 23, 2026
…ies" (#193663)

Reverts llvm/llvm-project#192736

Seems to cause buildbot failures in cross-project-tests, including on
the premerge postcommit builder.

https://lab.llvm.org/staging/#/builders/192/builds/28251
linuxlonelyeagle pushed a commit to linuxlonelyeagle/llvm-project that referenced this pull request Apr 23, 2026
… info (llvm#192735) (llvm#193358)

It just recommits test copied from non dbg version.

Implementation is llvm#192736.

This is the same as llvm#192735, accidentally merged into spr/users branch.
vitalybuka added a commit that referenced this pull request Apr 23, 2026
When Control Flow Integrity (CFI) is enabled, jump tables are used to
redirect indirect calls. Previously, these jump table entries lacked
debug information, making it difficult for profilers and debuggers to
attribute execution time correctly.

Now stack trace, when stopped on jump table entry will looks like this:
```
#0: __ubsan_check_cfi_icall_jt at sanitizer/ubsan_interface.h:0
#1: c::c() (.cfi_jt) at sanitizer/ubsan_interface.h:0:0
#2: .cfi.jumptable.81 at sanitizer/ubsan_interface.h:0:0
```

This is reland of #192736, reverted with #193663.
This version don't update debug info for "Cross-DSO CFI" mode.
@github-actions github-actions Bot deleted the users/vitalybuka/spr/lowertypetests-add-debug-info-to-jump-table-entries branch April 23, 2026 08:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants