20005 Commits

Author SHA1 Message Date
Christopher Ferris
a816f922fa
[scudo] Add new fast purge option. (#175266)
This adds a new option to do a faster of a purge.

When doing a release to OS due to a purge call, if another thread is
also doing a release, the call can be blocked while that operation
concludes. In some cases, code wants a fast version that releases as
fast as possible and the call will not block.

For example, on Android, when destroying a Bitmap a purge occurs to save
memory. But this can cause some jank if the purge takes too long.

In the future, I envision that this option will also do a calculation to
stop purging after some cutoff value to avoid being blocked in this call
for too long.
2026-02-11 14:22:29 -08:00
PiJoules
0b1b6c2258
[hwasan][Fuchsia] Use GetCurrentThread (#180602)
The hook passed to __sanitizer_thread_exit_hook will be null if we ever
call thrd/pthread_exit from the initial thread since
__sanitizer_before_thread_create_hook is never called on the initial
thread. Rather than using the hook, we can use the normal hwasan
machinery for getting the current pointer rather than the hook.
2026-02-10 14:39:17 -08:00
Matthew Nagy
c9753859d1
[TySan] Add skeleton for adding interface functions (#170859)
This pr has the more straightforward changes from the initial interfaces
pr (https://github.com/llvm/llvm-project/pull/169023). By supporting
interfaces, it also will help me fix [this
issue](https://github.com/llvm/llvm-project/issues/169024) where we
don't test tysan with the sanitizer_common codebase
2026-02-10 10:48:46 +00:00
Marina Taylor
cd47ae9f8f
[Profile] Enable binary profile correlation for Mach-O binaries (#179937)
The existing ELF/COFF correlation code mostly "just works" on Mach-O
files, with one gotcha: on disk, the pointers in `__llvm_covdata` are
stored in an encoded format due to dyld fixup chains. (In memory, they
would normally be fixed up at load time in a running binary, but the
correlator only looks at the on-disk values.)

LLVM's Mach-O reader knows how to decode the format, so this patch walks
the fixup table to create a set of mappings that the correlator can use
to resolve the values.

rdar://168259786
2026-02-09 18:31:04 +00:00
Jake Egan
839676bef1
[asan][AIX] Add vec_malloc and vec_calloc interceptors (#175584)
On AIX, when both the `__VEC__` and `_ALL_SOURCE` macros are defined
(they are defined by default), the malloc and calloc system calls are
mapped to vec_malloc and vec_calloc respectively, so we need the
following vec_malloc and vec_calloc interceptors.

Issue: #138916
2026-02-09 13:09:41 -05:00
Michał Górny
806ad8860c
[compiler-rt] [ubsan] Fix missing include directory (#180341)
Fixes missing `-I` path that broke standalone builds in #179011. Matches
`include_directories()` in other compiler-rt libraries.

Signed-off-by: Michał Górny <mgorny@gentoo.org>
2026-02-07 12:33:21 +01:00
Ganesh
a362593e0d
[X86] AMD Zen 6 Initial enablement (#179150)
This patch adds initial support for AMD Zen 6 architecture (znver6):

- Added znver6 CPU target recognition in Clang and LLVM
- Updated compiler-rt CPU model detection for znver6
- Added znver6 to target parser and host CPU detection
- Added znver6 to various optimizer tests

znver6 features: FP16, AVXVNNIINT8, AVXNECONVERT, AVXIFMA (without BMM).
2026-02-07 09:38:10 +05:30
Peter Collingbourne
fae1cc06e6
ubsan: Add loop detection runtime and e2e tests for -fsanitize-trap-loop.
Reviewers: fmayer, vitalybuka

Reviewed By: vitalybuka, fmayer

Pull Request: https://github.com/llvm/llvm-project/pull/179011
2026-02-06 17:14:14 -08:00
Jake Egan
a4c8e7537c
[asan][AIX] Change #ifdef to #if for AIX guard (#180280)
When `SANITIZER_AIX` is introduced in #131866, it will always be defined
to either 0 or 1, so this guard should use `#if`.
2026-02-06 15:52:41 -05:00
Rainer Orth
5c2b510f88
[ubsan][test] Skip Misc/Posix/static-link.cpp on Solaris (#175464)
The `UBSan-Standalone-x86_64 :: TestCases/Misc/Posix/static-link.cpp`
test currently `FAIL`s on Solaris/x86_64 with
```
ld: fatal: option '-z record' is incompatible with building a static executable
```
One cannot create static executables on Solaris since no `libc.a` is
delivered, so this patch skips the test.

Tested on `x86_64-pc-solaris2.11`.
2026-02-05 20:07:17 -08:00
Jake Egan
f00584dbec
[asan] Disable strict init checking on AIX (#178012)
The `__cxa_atexit` interceptor is disabled for `SANITIZER_AIX` because
Clang on AIX neither uses `__cxa_atexit` nor links against a library
with such. This interceptor calls `StopInitOrderChecking()`, which is
needed to prevent false positives for the `initialization-order-fiasco`
error observed in the asan test `init-order-atexit.cpp` that uses the
`strict_init_order` flag. For now, we'll disable the `strict_init_order`
flag, but we'll look to support it in the future by implementing an
`exit` interceptor or some other alternative. With the flag disabled, we
won't update `init-order-atexit.cpp` to ensure it continues to pass and
the false positive doesn't show up.
2026-02-04 22:39:47 -05:00
Wael Yehia
e1f69ee8e8
[AIX] Implement the ifunc attribute. (#153049)
Currently, the AIX linker and loader do not provide a mechanism to
implement ifuncs similar to GNU_ifunc on ELF Linux.
On AIX, we will lower `__attribute__((ifunc("resolver"))` to the llvm
`ifunc` as other platforms do. The llvm `ifunc` in turn will get lowered
at late stages of the optimization pipeline to an AIX-specific
implementation. No special linkage or relocations are needed when
generating assembly/object output.

On AIX, a function `foo` has two symbols associated with it: a function
descriptor (`foo`) residing in the `.data` section, and an entry point
(`.foo`) residing in the `.text` section. The first field of the
descriptor is the address of the entry point. Typically, the address
field in the descriptor is initialized once: statically, at load time
(?), or at runtime if runtime linking is enabled.

Here we would like to use the address field in the descriptor to
implement the `ifunc` semantics. Specifically, the ifunc function will
become a stub that jumps to the entry point in the address field. A
constructor function is linked into every linkage module. The
constructor walks an array of `{descriptor, resolver}` pairs, calling
the resolver and saving the result in the address field in the
descriptor (thus setting `foo`'s descriptor to point to the resolved
version early during program runtime).

Known limitations:
- Due to bug #161576, which affects object generation path, you will
need either `-ffunction-sections` or `-fno-integrated-as` to generate a
correct/linkable object file.
- aliases to ifuncs are not supported, a testcase has been added and
marked XFAIL. I'm planning to address in a follow-up PR because it's not
important enough, IMHO, for this PR
- dead ifuncs in a CU that contains at least one live ifunc, will result
in all ifuncs being kept by the linker. The fix for this is common with
a similar problem we have with PGO. PR #159435 is trying to provide a
mechanism that will allow the ifunc and PGO implementations to avoid the
dead code retention at the link step.
- the resolver must return a function that is in the same DSO as the
ifunc; the compiler will try to detect if this condition is violated and
report it, but it cannot detect it in general. To be safe, all candidate
functions (returned by a particular resolver) must either be static or
have hidden/protected visibility. This is so that the ifunc stub doesn't
have to save and restore the TOC register r2. In future work, this case
will be supported and the requirement will be lifted.

---------

Co-authored-by: Wael Yehia <wyehia@ca.ibm.com>
2026-02-03 14:15:16 -05:00
Sadaf Ebrahimi
c3a2597f8c
[scudo] Add resident pages info to getStats (#178969)
Adding resident pages field to the primary allocator's getStats function
makes it consistent with the secondary allocator's getStats function.
2026-02-02 14:35:02 -08:00
Simi Pallipurath
39413af931
[Compiler-rt] Implement AEABI Unaligned Read/Write Helpers in compiler-rt (#167913)
This patch adds implementations for the __aeabi_uread and __aeabi_uwrite
helper functions to compiler-rt.

Without these helpers, LLVM would need to inline byte wise sequences ,
which can increases code size, especially at -Os/-Oz. Using the helper
functions allows to retain correctness while avoiding the code-size
growth.

GCC-based toolchains already provide these AEABI helpers, so supporting
them in compiler-rt ensures parity and avoids accidental dependencies on
libgcc when LLVM begins emitting these calls.
2026-02-02 16:32:46 +00:00
Winnie Gitau
1ce7a81593
fuzzer: modernize FuzzedDataProvider conversions (#177794)
This change modernizes FuzzedDataProvider.h now that C++17+ is standard
in LLVM.
Replace the runtime if with if constexpr in ConvertUnsignedToSigned
Make the unsigned/signed comparison explicit by casting TS::max() to TU
2026-01-30 12:42:11 +01:00
YunQiang Su
b52591b329
comipler-rt: add atomic to SANITIZER_COMMON_LINK_LIBS for MIPS (#178819)
atomic is needed explicitly for MIPS.
2026-01-30 11:20:57 +08:00
Sadaf Ebrahimi
8d26233e3d
[scudo] Add missing space to getStats (#178537) 2026-01-29 14:19:27 -08:00
Andrew Haberlandt
bdb74d23c7
[sanitizers] [Darwin] Fix erroneous warning when external_symbolizer_path="" (#178743)
Some tools pass external_symbolizer_path="", which means it is not
expected to have any symbolizers in the list at the point we inserted a
(Darwin-only) warning.

This moves the symbolizer warning into ChooseExternalSymbolizer, after
the external_symbolizer_path="" case has been handled.

rdar://169137614
2026-01-29 13:27:04 -08:00
Andrew Haberlandt
6826f1a6f3
[ASan] Fix UnpoisonDefaultStack stack bottom estimation (#178137)
UnpoisonDefaultStack estimates the stack bottom as:

```
    bottom = ((uptr)&local_stack - page_size) & ~(page_size - 1);
```

However, this can try to poision memory that doesn't have a shadow (i.e.
AddrIsInMem(x) is false) if the local_stack variable is within two pages
of the actual bottom of the space available for stack. This causes the
unpoison-alternate-stack.cpp test (which allocates a very small stack)
to fail.

This PR changes this computation to check AddrIsInMem before subtracting
the additional page.

rdar://82645815
2026-01-27 10:17:10 -08:00
Benjamin Maxwell
84882630c1
[compiler-rt][aarch64][sme] Add SVE/FP variant of __arm_sc_memcpy (#127093)
When SVE is available use the `-sve` variant of memcpy from AOR for
`__arm_sc_memcpy`. From:
71e3640385/string/aarch64/memcpy-sve.S

This implementation uses FPR/ZPR load/store instructions to do the copy,
so should not cause memory hazards if called in streaming mode (with the
memory later being accessed in the streaming mode with SVE/SME
instructions).

The implementation has been slightly modified from AOR to use local
labels (matching other compiler-rt functions) but still passes the
memcpy and memmove tests from AOR.
2026-01-27 09:01:43 +00:00
Christopher Ferris
be318eb63b
[scudo] Add flags to secondary cache entries. (#177506)
Instead of setting a cache entry back to read-write based on whether MTE
is enabled, add a flag that indicates if this entry was made
inaccessible. On Android, we have seen strange crashes were MTE is
disabled for a process, but the cache entry is inaccessible, causing an
access error. This indicates MTE was enabled at some point, then
disabled again. There is likely some race, or method to disable without
making inaccessible entries read-writable again. Adding the flags should
avoid this happening in the future.

Remove the resetting of the secondary cache entries when disabling MTE
since it can be done as necessary.

This change will also allow us to always make the secondary cache
entries inaccessible in the future to increase security measures even
when MTE is not enabled.

Current unit tests already cover this change.
2026-01-23 13:28:33 -08:00
Yaxing Cai
1b37911f1a
[ORC] Fix missing support of deinitialize on ELF platform and execution order by priority (#175981)
This PR fixes
1. issue #175509 about missing support of deinitialize on ELF platform. 
2. missing support of execution order by proirity at both initialize and
deinitialize stage.

cc: @tqchen @joker-eph
2026-01-22 17:31:28 +11:00
Mariusz Borsa
5bcfe6e606
[Sanitizers] Remove unused variable (#177061)
Must've remained from debugging the test case.

rdar://119958411

Co-authored-by: Mariusz Borsa <m_borsa@apple.com>
2026-01-21 15:58:16 -08:00
Jonathan Wakely
0e5ab0f4f4
[asan] Fix -Wformat warning for %zx with pointer argument (#177219)
Fixes #175045
2026-01-21 12:34:58 -08:00
Tharo
32d21326f3
[HWASAN] [RISC-V] Update EnableTaggingAbi for RISC-V linux. (#176616)
Enabling pointer tagging in the userspace ABI for RISC-V kernels differs
to that of Aarch64. It requires requesting a particular number of masked
pointer bits, an error is returned if the platform could not accommodate
the request:
https://docs.kernel.org/arch/riscv/uabi.html#pointer-masking

While experimenting with enabling RISC-V HWASAN on GCC I was hitting the
error

> HWAddressSanitizer failed to enable tagged address syscall ABI

when attempting to run instrumented programs in the spike simulator
running kernel release 6.18. This patch successfully allows the tagged
address syscall ABI to be enabled by the support runtime.
2026-01-21 01:20:07 +00:00
Thurston Dang
05f5ce5c69
[asan] Reduce stack usage of DescribeThread() (#176540)
Manually eliminate tail calls, because the compiler didn't.

This fixes some rare crashes (stack overflows) that can occur during
ASan's error reporting, if there is a deep nesting structure to thread
creation. Besides that, it has no change to ASan's output.
2026-01-20 15:49:08 -08:00
Alison Zhang
90895531cc
Update sanitizer_coverage_allowlist_ignorelist.cpp to use POSIX-compliant regex (#176396)
As `\+` is a GNU extension, it is not supported by the system grep on
AIX. This change replaces `%[0-9]\+` with `%[0-9][0-9]*`, which is
POSIX-compliant and therefore compatible with AIX.
2026-01-20 10:58:25 -05:00
Dan Blackwell
b3212adae0
[TSan][Darwin] Fix error message for invalid lock_during_write flag (#176347)
Currently giving an invalid value for this flag logs the error message
"Invalid value for signal handler option" - which is misleading.

This patch fixes that error message.

rdar://157565672
2026-01-20 14:53:39 +00:00
Hristo Hristov
bbdb80a1b1
[libc++][NFC] Remove LIBCXX_ENABLE_ASSERTIONS (#176574)
Remove remnants of an obsolete (and removed) macro.
2026-01-19 15:15:51 -05:00
anoopkg6
fb953283af
[dfsan] Add dataflow sanitizer support for SystemZ (#168991)
Add SystemZ specific changes for dataflow sanitizer on top of following
two common code changes
i) Fix Endianness issue
[#162881](https://github.com/llvm/llvm-project/pull/162881)
ii) Fix ShadowAddress computation
[#162864](https://github.com/llvm/llvm-project/pull/162864[](url))

See conversation in original
pr#[#162195](https://github.com/llvm/llvm-project/pull/162195)
2026-01-19 15:28:34 +01:00
Nick Hutchinson
46de320038
[compiler-rt][rtsan] Fix build failures when building against in-tree libc++ (#175638)
When building compiler-rt against an in-tree libc++, intermittent build
failures could occur: some rtsan sources referenced c++ stdlib includes
(i.e. `#include <new>`), but there was no CMake dependency enforcing
that the libc++ headers were copied into place before the rtsan sources
were built.

https://github.com/llvm/llvm-project/issues/127764#issue-2862550745
proposed adding the dependency on the `cxx-headers` target to resolve
the issue. But my understanding is that compiler-rt sanitizer runtimes
aren't expected to bring in C++ stdlib includes in the first place --
`SANITIZER_COMMON_CFLAGS`, used by the other sanitizer runtimes,
contains `-nostdinc++`.

Rtsan only included `<new>` to get support for placement new.
`sanitizer_common/sanitizer_placement_new.h` can provide this without
the need for C++ stdlib headers.

Move from `COMPILER_RT_COMMON_CFLAGS`/`COMPILER_RT_CXX_CFLAGS` to
`SANITIZER_COMMON_CFLAGS`, and from `COMPILER_RT_COMMON_LINK_FLAGS` to
`SANITIZER_COMMON_LINK_FLAGS` to be consistent with the other
sanitizers.

Fixes #127764.
2026-01-14 11:18:30 -08:00
Austin Jiang
e6cdfb75ac
Fix typos and spelling errors across codebase (#156270)
Corrected various spelling mistakes such as 'occurred', 'receiver',
'initialized', 'length', and others in comments, variable names,
function names, and documentation throughout the project. These
changes improve code readability and maintain consistency in naming
and documentation.

Co-authored-by: Louis Dionne <ldionne.2@gmail.com>
2026-01-13 11:52:46 -05:00
Andrew Haberlandt
12ecbfb59b
[Darwin] [compiler-rt] Normalize DYLD_LIBRARY_PATH to workaround LD bug (#175685)
There is an issue in certain versions of LD which causes the wrong
libLTO to be used if the DYLD_LIBRARY_PATH is not normalized.

Will fix these failures:
```
AddressSanitizer-x86_64-darwin.TestCases/Darwin.odr-lto.cpp
AddressSanitizer-x86_64h-darwin.TestCases/Darwin.odr-lto.cpp
```

https://green.lab.llvm.org/job/llvm.org/job/clang-stage1-cmake-RA-incremental/13428/

rdar://168024431
2026-01-13 00:44:41 +00:00
Thurston Dang
71293e4495
[lsan] Fix flaky test in swapcontext.cpp (#175635)
LSan, by design, can have false negatives, making it unreliable to check
that the leak was found in the stack-allocated case:
```
==123685==Scanning STACK range 0x7ffe6e554ca0-0x7ffe6e557000.
==123685==0x7ffe6e554de0: found 0x51e0000009f0 pointing into chunk 0x51e000000000-0x51e000000c00 of size 3072.
==123685==0x7ffe6e554e30: found 0x51e000000c00 pointing into chunk 0x51e000000c00-0x51e000001668 of size 2664. <- this prevented the leak from being found
```

This has led to flakiness on the buildbots e.g.,
https://lab.llvm.org/buildbot/#/builders/66/builds/24669
```
# | /home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/lsan/TestCases/swapcontext.cpp:44:11: error: CHECK: expected string not found in input
# | // CHECK: SUMMARY: {{.*}}Sanitizer: 2664 byte(s) leaked in 1 allocation(s)
...
Failed Tests (2):
  LeakSanitizer-HWAddressSanitizer-x86_64 :: TestCases/swapcontext.cpp
  LeakSanitizer-Standalone-x86_64 :: TestCases/swapcontext.cpp
```

This patch fixes the issue by clearing the buffer, as suggested by
Vitaly.
2026-01-12 13:56:18 -08:00
Jake Egan
54a1e05d3c
[asan][AIX] Set allocator size and beginning (#144784)
On 64-bit AIX, set allocator size to 256G and set beginning to
0x0a00000000000000.

Issue: #138916

---------

Co-authored-by: Hubert Tong <hubert.reinterpretcast@gmail.com>
2026-01-09 12:49:45 -05:00
Andrew Haberlandt
b5a5276ca7
[compiler-rt] [Darwin] VerifyMemoryMapping should ignore zero-size sections (#175083)
Zero size sections cause VerifyMemoryMapping to falsely report
overlapping mappings.

rdar://167467041
2026-01-09 08:34:45 -08:00
Sean Fertile
781677eca0
[PPC] Disable some ORC-powerpc64le-linux tests. (#175100)
Tests fail to link when using LLVM C++ library. Disabling the tests
until they can be investigated and the underlying cause identified and
fixed.
2026-01-09 07:00:17 -05:00
Andrew Haberlandt
65945ec2cc
[compiler-rt] [Darwin] Add darwin-remote feature for remote darwin test targets (#174905)
Some tests are already supported on "remote" devices and simulators.
However, there is currently no way to distinguish a remote macOS host
from a local one.

This adds the darwin-remote feature which is common to all test targets
which use a wrapper script (e.g. iossim_run.py).

rdar://167735355

---------

Co-authored-by: Dan Blackwell <danblackwell95@gmail.com>
2026-01-08 10:03:30 -08:00
Sander de Smalen
012097d4fe
[compiler-rt][AArch64] Exit early from __arm_za_disable. (#174942)
Because `__arm_za_disable` is a private-ZA function, it's only ever
entered with ZA state `off` or `dormant`. If the state is `off` then we
can safely return and there is no need to call `__arm_tpidr2_save` or to
explicitly set PSTATE.ZA or TPIDR2_EL0 to zero.
2026-01-08 15:00:25 +00:00
Volodymyr Turanskyy
3b68fd58b0
[compiler-rt] Add supported Arm arches for the baremetal profile lib (#172984)
Following https://github.com/llvm/llvm-project/pull/167998 add the list
of supported baremetal Arm architectures to be able to build compiler_rt
profile library for all variants in Arm Toolchain for Embedded, the list
comes from architectures used in multilib configuration files in
https://github.com/arm/arm-toolchain/tree/arm-software/arm-software/embedded/arm-multilib/json/variants
2026-01-08 10:34:15 +00:00
Andrew Haberlandt
0aea22f13e
[compiler-rt] Support default-True lit config options (follow up to #174522) (#174642)
The option added in #174522 breaks simulator tests, since `set_default`
overrides `False` values with the default.

Since these options are either string or boolean, this patches
set_default to override only un-set or empty string values (empty string
is not truth-y and therefore would be overwritten by defaults currently,
so this is NFCI)
2026-01-06 12:47:56 -08:00
Andrew Haberlandt
305c413c92
[NFCI] [Darwin] Add APPLE_TARGET_IS_HOST lit option to compiler-rt (#174522)
Darwin supports running tests on targets other than the host machine
e.g. simulators. In such configurations, tests are run via a wrapper
script (e.g. iossim_run.py).

This refactors the lit test config to use a dedicated option to
distinguish test suites that run on the host from those that run in any
other configuration. This will allow the test suites to distinguish a
local osx configuration from a "remote" one.

rdar://167591463
2026-01-06 09:10:16 -08:00
Andrew Haberlandt
e9ba0e6bf0
[compiler-rt] Fix check-builtins buildbot failures (#174443)
After #171941, there are two issues:

First, some buildbots that use the old-style build are failing at:

```
Target ${BUILTIN_LIB_TARGET_NAME} does not exist"
```

Example failure:
https://lab.llvm.org/buildbot/#/builders/139/builds/25097

...during CMake configure. This appears to be caused by mismatch between
the builtin library's _target_ name and the output name from
set_output_name. This reverts the change to BUILTIN_LIB_TARGET_NAME made
by #171941, but still use the output name for naming the .sources.txt
file used for configuring builtins tests.

Second, this speculatively fixes an issue caused by two builtins
libraries that are produced with the same name in different directories
because of `LLVM_ENABLE_PER_TARGET_RUNTIME_DIR` (e.g.
`lib/clang/22/lib/i386-unknown-linux-gnu/libclang_rt.builtins.a` and
`lib/clang/22/lib/x86_64-unknown-linux-gnu/libclang_rt.builtins.a`), and
thus the `.sources.txt` paths alias. This causes us to run the wrong
tests against one of the builtins libraries. The chosen fix is to store
the .sources.txt files in `get_compiler_rt_output_dir` (which takes
`LLVM_ENABLE_PER_TARGET_RUNTIME_DIR` into account) rather than
`CMAKE_BINARY_DIR`.

As a side-effect, this allows for the replacement of
`COMPILER_RT_TEST_BUILTINS_DIR` with a simpler boolean option
`COMPILER_RT_TEST_EXTERNAL_BUILTINS`.

Example failure:
https://lab.llvm.org/buildbot/#/builders/66/builds/24433
2026-01-05 14:59:53 -08:00
Zequan Wu
2f06623953
[compiler-rt] fix crt target dependency. (#174475)
This fixes cmake error from
https://github.com/llvm/llvm-project/pull/171941 in chrome's llvm build
where we have `COMPILER_RT_BUILD_BUILTINS=OFF` and have
`COMPILER_RT_TEST_BUILTINS_DIR` set. That change makes it to depend on
`crt` even if we don't have it in the prebuilt dir.

Log:
```
 CMake Error at CMakeLists.txt:349 (add_dependencies):
  The dependency target "crt" of target "runtimes-test-depends" does not
  exist.


CMake Error at /b/s/w/ir/cache/builder/src/third_party/llvm/llvm/cmake/modules/AddLLVM.cmake:2104 (add_dependencies):
  The dependency target "crt" of target "check-runtimes" does not exist.
Call Stack (most recent call first):
  /b/s/w/ir/cache/builder/src/third_party/llvm/llvm/cmake/modules/AddLLVM.cmake:2145 (add_lit_target)
  CMakeLists.txt:353 (umbrella_lit_testsuite_end)


CMake Error at /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/test/CMakeLists.txt:127 (add_dependencies):
  The dependency target "crt" of target "compiler-rt-test-depends" does not
  exist.


CMake Error at /b/s/w/ir/cache/builder/src/third_party/llvm/llvm/cmake/modules/AddLLVM.cmake:2104 (add_dependencies):
  The dependency target "crt" of target "check-compiler-rt" does not exist.
Call Stack (most recent call first):
  /b/s/w/ir/cache/builder/src/third_party/llvm/llvm/cmake/modules/AddLLVM.cmake:2145 (add_lit_target)
  /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/test/CMakeLists.txt:129 (umbrella_lit_testsuite_end)


CMake Error at /b/s/w/ir/cache/builder/src/third_party/llvm/llvm/cmake/modules/AddLLVM.cmake:2104 (add_dependencies):
  The dependency target "crt" of target "check-builtins" does not exist.
Call Stack (most recent call first):
  /b/s/w/ir/cache/builder/src/third_party/llvm/llvm/cmake/modules/AddLLVM.cmake:2171 (add_lit_target)
  /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/test/builtins/CMakeLists.txt:137 (add_lit_testsuite)
```
2026-01-05 14:47:46 -08:00
Andrew Haberlandt
d1aca4b147
Reland check-builtins target for LLVM_ENABLE_RUNTIMES (#171941)
Reland https://github.com/llvm/llvm-project/pull/166837 and
https://github.com/llvm/llvm-project/pull/171741

(Reverts the revert in #171940)

---------

Co-authored-by: Petr Hosek <phosek@google.com>
2026-01-05 08:01:56 -08:00
Wael Yehia
4cba804249 [unrelated][upstream-separately] XFAIL multc3_test.c fixunstfdi_test.c on AIX 64-bit 2026-01-05 16:04:21 +00:00
Jake Egan
5ec319119f
[asan] Adjust interception compatibility for AIX (#131870)
Adjust asan interceptor compatbility for AIX. AIX uses dlsym to retrieve
addresses of exported functions. However, some functions in libc.a, such
as memcpy, are not exported, so we currently have a limitation in
retrieving these addresses.

Issue: https://github.com/llvm/llvm-project/issues/138916
2026-01-02 17:31:26 -05:00
Jake Egan
c777c60419
[asan][NFC] Fix formatting of asan_interceptors.cpp (#173088)
To prepare for changes in
https://github.com/llvm/llvm-project/pull/131870.
2026-01-02 11:42:52 -05:00
Aiden Grossman
9553f119b0
[lit] Drop shell feature from all upstream projects (#173341)
Now that no tests actually use the shell feature to conditionally run,
drop the feature altogether to prevent backslide.
2025-12-31 11:06:36 -08:00
Keith Randall
b5d2e9afe9
lib/tsan/go: add mechanism to skip frames
Some Go frames are wrapper functions that we don't want to report to
users. Add a mechanism for the Go runtime to tell the tsan runtime not
to report those frames.

For https://github.com/golang/go/issues/73915
2025-12-31 10:05:47 +01:00