[compiler-rt] [llvm] [HWASan][Fuchsia] Have Fuchsia use a dynamic shadow start (PR #180881)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Feb 10 21:14:18 PST 2026
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results
* 130757 tests passed
* 2929 tests skipped
* 2 tests failed
## Failed Tests
(click on a test name to see its output)
### LLVM
<details>
<summary>LLVM.Instrumentation/HWAddressSanitizer/fuchsia.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=hwasan -S -mtriple=aarch64-unknown-fuchsia < C:\_work\llvm-project\llvm-project\llvm\test\Instrumentation\HWAddressSanitizer\fuchsia.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Instrumentation\HWAddressSanitizer\fuchsia.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=hwasan -S -mtriple=aarch64-unknown-fuchsia
# 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\Instrumentation\HWAddressSanitizer\fuchsia.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Instrumentation\HWAddressSanitizer\fuchsia.ll:5:10: error: CHECK: expected string not found in input
# | ; CHECK: %.hwasan.shadow = call ptr asm "", "=r,0"(ptr null)
# | ^
# | <stdin>:1:1: note: scanning from here
# | ; ModuleID = '<stdin>'
# | ^
# | <stdin>:18:2: note: possible intended match here
# | @__hwasan_shadow = external global [0 x i8]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Instrumentation\HWAddressSanitizer\fuchsia.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: ; ModuleID = '<stdin>'
# | check:5'0 X~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | 2: source_filename = "<stdin>"
# | check:5'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 3: target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32"
# | check:5'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 4: target triple = "aarch64-unknown-fuchsia"
# | check:5'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 5:
# | check:5'0 ~
# | 6: $hwasan.module_ctor = comdat any
# | check:5'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 13: @__stop_hwasan_globals = external hidden constant [0 x i8]
# | check:5'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 14: @hwasan.note = private constant { i32, i32, i32, [8 x i8], i32, i32 } { i32 8, i32 8, i32 3, [8 x i8] c"LLVM\00\00\00\00", i32 trunc (i64 sub (i64 ptrtoint (ptr @__start_hwasan_globals to i64), i64 ptrtoint (ptr @hwasan.note to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint (ptr @__stop_hwasan_globals to i64), i64 ptrtoint (ptr @hwasan.note to i64)) to i32) }, section ".note.hwasan.globals", comdat($hwasan.module_ctor), align 4
# | check:5'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 15: @hwasan.dummy.global = private constant [0 x i8] zeroinitializer, section "hwasan_globals", comdat($hwasan.module_ctor), !associated !0
# | check:5'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 16: @__hwasan_tls = external thread_local(initialexec) global i64
# | check:5'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 17: @llvm.compiler.used = appending global [3 x ptr] [ptr @hwasan.note, ptr @hwasan.dummy.global, ptr @__hwasan_tls], section "llvm.metadata"
# | check:5'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 18: @__hwasan_shadow = external global [0 x i8]
# | check:5'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:5'1 ? possible intended match
# | 19: @__hwasan_shadow_memory_dynamic_address = external global ptr
# | check:5'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 20:
# | check:5'0 ~
# | 21: ; Function Attrs: sanitize_hwaddress
# | check:5'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 22: define i32 @test_load(ptr %a) #0 {
# | check:5'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 23: entry:
# | check:5'0 ~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Instrumentation/HWAddressSanitizer/prologue.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 4
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=hwasan -S < C:\_work\llvm-project\llvm-project\llvm\test\Instrumentation\HWAddressSanitizer\prologue.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Instrumentation\HWAddressSanitizer\prologue.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=hwasan -S
# 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\Instrumentation\HWAddressSanitizer\prologue.ll'
# note: command had no output on stdout or stderr
# RUN: at line 5
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=hwasan -S -hwasan-mapping-offset-dynamic=tls -hwasan-record-stack-history=instr < C:\_work\llvm-project\llvm-project\llvm\test\Instrumentation\HWAddressSanitizer\prologue.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Instrumentation\HWAddressSanitizer\prologue.ll --check-prefixes=NOIFUNC-TLS-HISTORY
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=hwasan -S -hwasan-mapping-offset-dynamic=tls -hwasan-record-stack-history=instr
# 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\Instrumentation\HWAddressSanitizer\prologue.ll' --check-prefixes=NOIFUNC-TLS-HISTORY
# note: command had no output on stdout or stderr
# RUN: at line 6
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=hwasan -S -hwasan-mapping-offset-dynamic=tls -hwasan-record-stack-history=none < C:\_work\llvm-project\llvm-project\llvm\test\Instrumentation\HWAddressSanitizer\prologue.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Instrumentation\HWAddressSanitizer\prologue.ll --check-prefixes=NOIFUNC-TLS-NOHISTORY
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=hwasan -S -hwasan-mapping-offset-dynamic=tls -hwasan-record-stack-history=none
# 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\Instrumentation\HWAddressSanitizer\prologue.ll' --check-prefixes=NOIFUNC-TLS-NOHISTORY
# note: command had no output on stdout or stderr
# RUN: at line 7
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=hwasan -S -hwasan-mapping-offset-dynamic=global -hwasan-with-frame-record=0 < C:\_work\llvm-project\llvm-project\llvm\test\Instrumentation\HWAddressSanitizer\prologue.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Instrumentation\HWAddressSanitizer\prologue.ll --check-prefixes=NOIFUNC-NOTLS
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=hwasan -S -hwasan-mapping-offset-dynamic=global -hwasan-with-frame-record=0
# 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\Instrumentation\HWAddressSanitizer\prologue.ll' --check-prefixes=NOIFUNC-NOTLS
# note: command had no output on stdout or stderr
# RUN: at line 8
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=hwasan -S -hwasan-mapping-offset-dynamic=ifunc -hwasan-with-frame-record=0 < C:\_work\llvm-project\llvm-project\llvm\test\Instrumentation\HWAddressSanitizer\prologue.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Instrumentation\HWAddressSanitizer\prologue.ll --check-prefixes=IFUNC-NOTLS
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=hwasan -S -hwasan-mapping-offset-dynamic=ifunc -hwasan-with-frame-record=0
# 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\Instrumentation\HWAddressSanitizer\prologue.ll' --check-prefixes=IFUNC-NOTLS
# note: command had no output on stdout or stderr
# RUN: at line 9
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=hwasan -S -mtriple=aarch64-fuchsia < C:\_work\llvm-project\llvm-project\llvm\test\Instrumentation\HWAddressSanitizer\prologue.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Instrumentation\HWAddressSanitizer\prologue.ll --check-prefixes=FUCHSIA
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=hwasan -S -mtriple=aarch64-fuchsia
# 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\Instrumentation\HWAddressSanitizer\prologue.ll' --check-prefixes=FUCHSIA
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Instrumentation\HWAddressSanitizer\prologue.ll:64:17: error: FUCHSIA-NEXT: expected string not found in input
# | ; FUCHSIA-NEXT: [[DOTHWASAN_SHADOW:%.*]] = call ptr asm "", "=r,0"(ptr null)
# | ^
# | <stdin>:23:7: note: scanning from here
# | entry:
# | ^
# | <stdin>:25:54: note: possible intended match here
# | call void @llvm.hwasan.check.memaccess.shortgranules(ptr %0, ptr %a, i32 2)
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Instrumentation\HWAddressSanitizer\prologue.ll:276:17: error: FUCHSIA-NEXT: expected string not found in input
# | ; FUCHSIA-NEXT: [[DOTHWASAN_SHADOW:%.*]] = call ptr asm "", "=r,0"(ptr null)
# | ^
# | <stdin>:34:7: note: scanning from here
# | entry:
# | ^
# | <stdin>:94:57: note: possible intended match here
# | %5 = tail call i32 @__hwasan_personality_wrapper(i32 %0, i32 %1, i64 %2, ptr %3, ptr %4, ptr null, ptr @_Unwind_GetGR, ptr @_Unwind_GetCFA)
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Instrumentation\HWAddressSanitizer\prologue.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 18: @__hwasan_shadow = external global [0 x i8]
# | 19: @__hwasan_shadow_memory_dynamic_address = external global ptr
# | 20:
# | 21: ; Function Attrs: sanitize_hwaddress
# | 22: define i32 @test_load(ptr %a) #0 {
# | 23: entry:
# | next:64'0 X error: no match found
# | 24: %0 = load ptr, ptr @__hwasan_shadow_memory_dynamic_address, align 8
# | next:64'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 25: call void @llvm.hwasan.check.memaccess.shortgranules(ptr %0, ptr %a, i32 2)
# | next:64'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:64'1 ? possible intended match
# | 26: %x = load i32, ptr %a, align 4
# | next:64'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 27: ret i32 %x
# | next:64'0 ~~~~~~~~~~~~
# | 28: }
# | next:64'0 ~~
# | 29:
# | next:64'0 ~
# | 30: declare void @use(ptr)
# | next:64'0 ~~~~~~~~~~~~~~~~~~~~~~~
# | 31:
# | next:64'0 ~
# | 32: ; Function Attrs: sanitize_hwaddress
# | next:64'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 33: define void @test_alloca() #0 personality ptr @__hwasan_personality_thunk {
# | next:64'0 ~~~~~~~~~~~~~~~~~~~~~~~~
# | 34: entry:
# | next:276'0 X error: no match found
# | 35: %0 = load ptr, ptr @__hwasan_shadow_memory_dynamic_address, align 8
# | next:276'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 36: %1 = load i64, ptr @__hwasan_tls, align 8
# | next:276'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 37: %2 = ashr i64 %1, 3
# | next:276'0 ~~~~~~~~~~~~~~~~~~~~~
# | 38: %3 = call i64 @llvm.read_register.i64(metadata !2)
# | next:276'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 39: %4 = call ptr @llvm.frameaddress.p0(i32 0)
# | next:276'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 89:
# | next:276'0 ~
# | 90: declare void @_Unwind_GetCFA()
# | next:276'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 91:
# | next:276'0 ~
# | 92: define linkonce_odr hidden i32 @__hwasan_personality_thunk(i32 %0, i32 %1, i64 %2, ptr %3, ptr %4) comdat {
# | next:276'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 93: entry:
# | next:276'0 ~~~~~~~
# | 94: %5 = tail call i32 @__hwasan_personality_wrapper(i32 %0, i32 %1, i64 %2, ptr %3, ptr %4, ptr null, ptr @_Unwind_GetGR, ptr @_Unwind_GetCFA)
# | next:276'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:276'1 ? possible intended match
# | 95: ret i32 %5
# | next:276'0 ~~~~~~~~~~~~
# | 96: }
# | next:276'0 ~~
# | 97:
# | next:276'0 ~
# | 98: declare void @__hwasan_loadN(i64, i64)
# | next:276'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 99:
# | next:276'0 ~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# 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/180881
More information about the llvm-commits
mailing list