[compiler-rt] [llvm] [asan] Catch `initialization-order-fiasco` in modules without globals (PR #104621)

LLVM Continuous Integration via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 16 21:35:47 PDT 2024


llvm-ci wrote:

LLVM Buildbot has detected a new failure on builder `llvm-clang-win-x-aarch64` running on `as-builder-2` while building `compiler-rt,llvm` at step 10 "test-check-clang".

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

Here is the relevant piece of the build log for the reference:
```
Step 10 (test-check-clang) failure: Test just built components: check-clang completed (failure)
******************** TEST 'Clang :: CodeGen/sanitize-ignorelist-mainfile.c' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
rm -rf C:\buildbot\as-builder-2\x-aarch64\build\tools\clang\test\CodeGen\Output\sanitize-ignorelist-mainfile.c.tmp && split-file C:\buildbot\as-builder-2\x-aarch64\llvm-project\clang\test\CodeGen\sanitize-ignorelist-mainfile.c C:\buildbot\as-builder-2\x-aarch64\build\tools\clang\test\CodeGen\Output\sanitize-ignorelist-mainfile.c.tmp && cd C:\buildbot\as-builder-2\x-aarch64\build\tools\clang\test\CodeGen\Output\sanitize-ignorelist-mainfile.c.tmp
# executed command: rm -rf 'C:\buildbot\as-builder-2\x-aarch64\build\tools\clang\test\CodeGen\Output\sanitize-ignorelist-mainfile.c.tmp'
# executed command: split-file 'C:\buildbot\as-builder-2\x-aarch64\llvm-project\clang\test\CodeGen\sanitize-ignorelist-mainfile.c' 'C:\buildbot\as-builder-2\x-aarch64\build\tools\clang\test\CodeGen\Output\sanitize-ignorelist-mainfile.c.tmp'
# executed command: cd 'C:\buildbot\as-builder-2\x-aarch64\build\tools\clang\test\CodeGen\Output\sanitize-ignorelist-mainfile.c.tmp'
# RUN: at line 3
c:\buildbot\as-builder-2\x-aarch64\build\bin\clang.exe -cc1 -internal-isystem C:\buildbot\as-builder-2\x-aarch64\build\lib\clang\20\include -nostdsysteminc -emit-llvm -triple x86_64 -fsanitize=address,alignment a.c -o - | c:\buildbot\as-builder-2\x-aarch64\build\bin\filecheck.exe C:\buildbot\as-builder-2\x-aarch64\llvm-project\clang\test\CodeGen\sanitize-ignorelist-mainfile.c --check-prefixes=CHECK,DEFAULT
# executed command: 'c:\buildbot\as-builder-2\x-aarch64\build\bin\clang.exe' -cc1 -internal-isystem 'C:\buildbot\as-builder-2\x-aarch64\build\lib\clang\20\include' -nostdsysteminc -emit-llvm -triple x86_64 -fsanitize=address,alignment a.c -o -
# executed command: 'c:\buildbot\as-builder-2\x-aarch64\build\bin\filecheck.exe' 'C:\buildbot\as-builder-2\x-aarch64\llvm-project\clang\test\CodeGen\sanitize-ignorelist-mainfile.c' --check-prefixes=CHECK,DEFAULT
# RUN: at line 4
c:\buildbot\as-builder-2\x-aarch64\build\bin\clang.exe -cc1 -internal-isystem C:\buildbot\as-builder-2\x-aarch64\build\lib\clang\20\include -nostdsysteminc -emit-llvm -triple x86_64 -fsanitize=address,alignment -fsanitize-ignorelist=a.list a.c -o - | c:\buildbot\as-builder-2\x-aarch64\build\bin\filecheck.exe C:\buildbot\as-builder-2\x-aarch64\llvm-project\clang\test\CodeGen\sanitize-ignorelist-mainfile.c --check-prefixes=CHECK,IGNORE
# executed command: 'c:\buildbot\as-builder-2\x-aarch64\build\bin\clang.exe' -cc1 -internal-isystem 'C:\buildbot\as-builder-2\x-aarch64\build\lib\clang\20\include' -nostdsysteminc -emit-llvm -triple x86_64 -fsanitize=address,alignment -fsanitize-ignorelist=a.list a.c -o -
# executed command: 'c:\buildbot\as-builder-2\x-aarch64\build\bin\filecheck.exe' 'C:\buildbot\as-builder-2\x-aarch64\llvm-project\clang\test\CodeGen\sanitize-ignorelist-mainfile.c' --check-prefixes=CHECK,IGNORE
# .---command stderr------------
# | C:\buildbot\as-builder-2\x-aarch64\llvm-project\clang\test\CodeGen\sanitize-ignorelist-mainfile.c:35:16: error: IGNORE-NOT: excluded string found in input
# | // IGNORE-NOT: @___asan_gen_
# |                ^
# | <stdin>:9:1: note: found here
# | @___asan_gen_ = private constant [4 x i8] c"a.c\00", align 1
# | ^~~~~~~~~~~~~
# | 
# | Input file: <stdin>
# | Check file: C:\buildbot\as-builder-2\x-aarch64\llvm-project\clang\test\CodeGen\sanitize-ignorelist-mainfile.c
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |         1: ; ModuleID = 'a.c' 
# |         2: source_filename = "a.c" 
# |         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" 
# |         4: target triple = "x86_64" 
# |         5:  
# |         6: @global_h = global i32 0, no_sanitize_address, align 4 
# |         7: @global_c = global i32 0, no_sanitize_address, align 4 
# |         8: @llvm.used = appending global [1 x ptr] [ptr @asan.module_ctor], section "llvm.metadata" 
# |         9: @___asan_gen_ = private constant [4 x i8] c"a.c\00", align 1 
# | not:35     !~~~~~~~~~~~~                                                 error: no match expected
# |        10: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 1, ptr @asan.module_ctor, ptr null }] 
# |        11:  
# |        12: ; Function Attrs: noinline nounwind optnone 
# |        13: define dso_local i32 @foo(ptr noundef %x) #0 { 
# |        14: entry: 
# |         .
# |         .
...

```

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


More information about the llvm-commits mailing list