Commit Graph

6497 Commits

Author SHA1 Message Date
Kunqiu Chen
0aafeb8ba1 Reland [TSan] Clarify and enforce shadow end alignment (#146676)
#144648 was reverted because it failed the new sanitizer test
`munmap_clear_shadow.c` in IOS's CI.
That issue could be fixed by disabling the test on some platforms, due
to the incompatibility of the test on these platforms.

In detail, we should disable the test in FreeBSD, Apple, NetBSD,
Solaris, and Haiku, where `ReleaseMemoryPagesToOS` executes
`madvise(beg, end, MADV_FREE)`, which tags the relevant pages as 'FREE'
and does not release them immediately.
2025-07-02 20:28:30 +08:00
Kunqiu Chen
9eac5f72f6 Revert "[TSan] Clarify and enforce shadow end alignment" (#146674)
Reverts llvm/llvm-project#144648 due to a test failure of the new added
test case `munmap_clear_shadow.c` in IOS .
2025-07-02 20:11:11 +08:00
Justin King
b2b20eeb54 tsan: Support free_sized and free_aligned_sized from C23 (#144531)
Adds support to TSan for `free_sized` and `free_aligned_sized` from C23.

Other sanitizers will be handled with their own separate PRs.

For https://github.com/llvm/llvm-project/issues/144435

Signed-off-by: Justin King <jcking@google.com>
2025-06-30 11:09:46 -07:00
Qinkun Bao
3923dd4484 Fix uncaught-exception.test. (#146190)
See https://github.com/llvm/llvm-project/pull/125924
To match a literal plus sign, it must be escaped with a backslash (`\`).
2025-06-27 22:23:51 -04:00
Qinkun Bao
72060f1cfd Fix uncaught-exception.test. (#146181)
See https://github.com/llvm/llvm-project/pull/125924

I didn't test it as I don't have access to a windows machine.
2025-06-27 21:59:58 -04:00
Kunqiu Chen
bc90166a50 [TSan] Clarify and enforce shadow end alignment (#144648)
In TSan, every `k` bytes of application memory (where `k = 8`) maps to a
single shadow/meta cell. This design leads to two distinct outcomes when
calculating the end of a shadow range using `MemToShadow(addr_end)`,
depending on the alignment of `addr_end`:

- **Exclusive End:** If `addr_end` is aligned (`addr_end % k == 0`),
`MemToShadow(addr_end)` points to the first shadow cell *past* the
intended range. This address is an exclusive boundary marker, not a cell
to be operated on.
- **Inclusive End:** If `addr_end` is not aligned (`addr_end % k != 0`),
`MemToShadow(addr_end)` points to the last shadow cell that *is* part of
the range (i.e., the same cell as `MemToShadow(addr_end - 1)`).

Different TSan functions have different expectations for whether the
shadow end should be inclusive or exclusive. However, these expectations
are not always explicitly enforced, which can lead to subtle bugs or
reliance on unstated invariants.


The core of this patch is to ensure that functions ONLY requiring an
**exclusive shadow end** behave correctly.

1.  Enforcing Existing Invariants:
For functions like `MetaMap::MoveMemory` and `MapShadow`, the assumption
is that the end address is always `k`-aligned. While this holds true in
the current codebase (e.g., due to some external implicit conditions),
this invariant is not guaranteed by the function's internal context. We
add explicit assertions to make this requirement clear and to catch any
future changes that might violate this assumption.

2.  Fixing Latent Bugs:
In other cases, unaligned end addresses are possible, representing a
latent bug. This was the case in `UnmapShadow`. The `size` of a memory
region being unmapped is not always a multiple of `k`. When this
happens, `UnmapShadow` would fail to clear the final (tail) portion of
the shadow memory.

This patch fixes `UnmapShadow` by rounding up the `size` to the next
multiple of `k` before clearing the shadow memory. This is safe because
the underlying OS `unmap` operation is page-granular, and the page size
is guaranteed to be a multiple of `k`.

Notably, this fix makes `UnmapShadow` consistent with its inverse
operation, `MemoryRangeImitateWriteOrResetRange`, which already performs
a similar size round-up.

In summary, this PR:

- **Adds assertions** to `MetaMap::MoveMemory` and `MapShadow` to
enforce their implicit requirement for k-aligned end addresses.
- **Fixes a latent bug** in `UnmapShadow` by rounding up the size to
ensure the entire shadow range is cleared. Two new test cases have been
added to cover this scenario.
  - Removes a redundant assertion in `__tsan_java_move`.
- Fixes an incorrect shadow end calculation introduced in commit
4052de6. The previous logic, while fixing an overestimation issue, did
not properly account for `kShadowCell` alignment and could lead to
underestimation.
2025-06-27 14:43:34 +08:00
Kunqiu Chen
956bab0381 [TSan] Add 2 test cases related to incomplete shadow cleanup in unmap (#145472)
Once part of PR #144648, follow the reviewer's advice and split into
this separate PR.

`unmap` works at page granularity, but supports an arbitrary non-zero
size as an argument, which results in possible shadow undercleaning in
the existing TSan implementation when `size % kShadowCell != 0`.

This change introduces two test cases to verify the shadow cleaning
effect in `unmap`.

- java_heap_init2.cpp: Imitating java_heap_init cpp, verify the
incomplete cleaning of meta
- munmap_clear_shadow.c: verify the incomplete cleaning of shadow
2025-06-25 15:22:54 +08:00
Thurston Dang
c85466dcd4 Reapply "[msan] Automatically print shadow for failing outlined checks" (#145611) (#145615)
This reverts commit 5eb5f0d876 i.e.,
relands 1b71ea411a.

Test case was failing on aarch64 because the long double type is
implemented differently on x86 vs aarch64. This reland restricts the
test to x86.

----

Original CL description:
    
A commonly used aid for debugging MSan reports is
`__msan_print_shadow()`, which requires manual app code annotations
(typically of the variable in the UUM report or nearby). This is in
contrast to ASan, which automatically prints out the shadow map when a
check fails.
    
This patch changes MSan to print the shadow that failed an outlined
check (checks are outlined per function after the
`-msan-instrumentation-with-call-threshold` is exceeded) if verbosity >=
1. Note that we do not print out the shadow map of "neighboring"
variables because this is technically infeasible; see "Caveat" below.
    
This patch can be easier to use than `__msan_print_shadow()` because
this does not require manual app code annotations. Additionally, due to
optimizations, `__msan_print_shadow()` calls can sometimes spuriously
affect whether a variable is initialized.
    
As a side effect, this patch also enables outlined checks for
arbitrary-sized shadows (vs. the current hardcoded handlers for
{1,2,4,8}-byte shadows).
    
Caveat: the shadow does not necessarily correspond to an individual user
variable, because MSan instrumentation may combine and/or truncate
multiple shadows prior to emitting a check that the mangled shadow is
zero (e.g., `convertShadowToScalar()`,
`handleSSEVectorConvertIntrinsic()`, `materializeInstructionChecks()`).
OTOH it is arguably a strength that this feature emit the shadow that
directly matters for the MSan check, but which cannot be obtained using
the MSan API.
2025-06-24 20:33:11 -07:00
Thurston Dang
5eb5f0d876 Revert "[msan] Automatically print shadow for failing outlined checks" (#145611)
Reverts llvm/llvm-project#145107

Reason: buildbot breakage
(https://lab.llvm.org/buildbot/#/builders/51/builds/18512)
2025-06-24 15:53:19 -07:00
Thurston Dang
1b71ea411a [msan] Automatically print shadow for failing outlined checks (#145107)
A commonly used aid for debugging MSan reports is `__msan_print_shadow()`, which requires manual app code annotations (typically of the variable in the UUM report or nearby). This is in contrast to ASan, which automatically prints out the shadow map when a check fails.

This patch changes MSan to print the shadow that failed an outlined check (checks are outlined per function after the `-msan-instrumentation-with-call-threshold` is exceeded) if verbosity >= 1. Note that we do not print out the shadow map of "neighboring" variables because this is technically infeasible; see "Caveat" below.

This patch can be easier to use than `__msan_print_shadow()` because this does not require manual app code annotations. Additionally, due to optimizations, `__msan_print_shadow()` calls can sometimes spuriously affect whether a variable is initialized.

As a side effect, this patch also enables outlined checks for arbitrary-sized shadows (vs. the current hardcoded handlers for {1,2,4,8}-byte shadows).

Caveat: the shadow does not necessarily correspond to an individual user variable, because MSan instrumentation may combine and/or truncate multiple shadows prior to emitting a check that the mangled shadow is zero (e.g., `convertShadowToScalar()`, `handleSSEVectorConvertIntrinsic()`, `materializeInstructionChecks()`). OTOH it is arguably a strength that this feature emit the shadow that directly matters for the MSan check, but which cannot be obtained using the MSan API.
2025-06-24 15:09:44 -07:00
Justin King
bfef8732be msan: Support free_sized and free_aligned_sized from C23 (#144529)
Adds support to MSan for `free_sized` and `free_aligned_sized` from C23.

Other sanitizers will be handled with their own separate PRs.

For https://github.com/llvm/llvm-project/issues/144435

Signed-off-by: Justin King <jcking@google.com>
2025-06-20 09:16:40 -07:00
int-zjt
b6b8fa3b15 [llvm-cov][gcov] Support multi-files coverage in one basic block (#144504)
In the current gcov implementation, all lines within a basic block are
attributed to the source file of the block's containing function. This
is inaccurate when a block contains lines from other files (e.g., via
#include "foo.inc").

Commit
[406e81b](406e81b79d)
attempted to address this by filtering lines based on debug info types,
but this approach has two limitations:

* **Over-filtering**: Some valid lines belonging to the function are
incorrectly excluded.
* **Under-counting**: Lines not belonging to the function are filtered
out and omitted from coverage statistics.

**GCC Reference Behavior**
GCC's gcov implementation handles this case correctly.This change aligns
the LLVM behavior with GCC.

**Proposed Solution**
1. **GCNO Generation**:

* **Current**: Each block stores a single GCOVLines record (filename +
lines).

* **New**: Dynamically create new GCOVLines records whenever consecutive
lines in a block originate from different source files. Group subsequent
lines from the same file under one record.

2. **GCNO Parsing**:

* **Current**: Lines are directly attributed to the function's source
file.

* **New**: Introduce a GCOVLocation type to track filename/line mappings
within blocks. Statistics will reflect the actual source file for each
line.
2025-06-20 01:24:19 -07:00
David Justo
d265105b8f Augment uncaught-exception.test fuzzer test to be msvc-compatible (#125924)
Today, the `uncaught-exception.test` fuzzer test checks for the string
"libFuzzer: deadly signal" in the program output as the result of an
uncaught exception.

Although this is correct for `clang`, `msvc` reports a different error
message: "libFuzzer: uncaught C++ exception". Since `msvc` reuses the
`libFuzzer` infrastructure for ASan regression testing, it would help us
greatly if the test handled the `msvc` divergence more gracefully.

**This PR:** augments this test so check for a different string (namely
"libFuzzer: uncaught C++ exception") if the compiler target matches the
`msvc` naming scheme.

I understand if this is outside the scope of support for LLVM as well,
and I'm also open for different approaches here. Thanks!
2025-06-18 17:13:25 -07:00
Justin King
22a69a266d lsan: Support free_sized and free_aligned_sized from C23 (#144604)
Adds support to LSan for `free_sized` and `free_aligned_sized` from C23.

Other sanitizers will be handled with their own separate PRs.

For https://github.com/llvm/llvm-project/issues/144435

This is attempt number 2.

Signed-off-by: Justin King <jcking@google.com>
2025-06-18 12:57:49 -07:00
Justin King
d9f7979a63 sanitizer_common: add unsupported test for free_sized and free_aligned_sized from C23 (#144727)
Signed-off-by: Justin King <jcking@google.com>
2025-06-18 10:24:38 -07:00
Chris Apple
b983431c28 [rtsan] Fix issue when intercepted function was not execve in test (#144018) 2025-06-15 06:55:22 -07:00
Kunqiu Chen
2796c41249 [MSan] Fix minor issues in testcases (#144073)
Previously,
1. ifaddrs.cpp : mistake `size_t (xxx)` as `sizeof (xxx)`, resulting in 
inadequate checks.
2. qsort.cpp : mistake `kSize2` as `kSize1`, resulting in an unexpected
buffer overlow issue.
2025-06-14 14:59:36 +08:00
Charles Zablit
20d5d09e99 [compiler-rt] remove unused default in compiler-rt lit tests (#143738)
In https://github.com/llvm/llvm-project/pull/143183 was mistakenly added
a default value to `python_root_dir` in lit tests of compiler-rt.

This is unused by the lit tests of compiler-rt, as it was meant to be
used by `lldb`.

This patch removes this change.
2025-06-12 11:37:25 +01:00
Jameson Nash
082251bba4 [AArch64] fix trampoline implementation: use X15 (#126743)
AAPCS64 reserves any of X9-X15 for a compiler to choose to use for this
purpose, and says not to use X16 or X18 like GCC (and the previous
implementation) chose to use. The X18 register may need to get used by
the kernel in some circumstances, as specified by the platform ABI, so
it is generally an unwise choice. Simply choosing a different register
fixes the problem of this being broken on any platform that actually
follows the platform ABI (which is all of them except EABI, if I am
reading this linux kernel bug correctly
https://lkml2.uits.iu.edu/hypermail/linux/kernel/2001.2/01502.html). As
a side benefit, also generate slightly better code and avoids needing
the compiler-rt to be present. I did that by following the XCore
implementation instead of PPC (although in hindsight, following the
RISCV might have been slightly more readable). That X18 is wrong to use
for this purpose has been known for many years (e.g.
https://www.mail-archive.com/gcc@gcc.gnu.org/msg76934.html) and also
known that fixing this to use one of the correct registers is not an ABI
break, since this only appears inside of a translation unit. Some of the
other temporary registers (e.g. X9) are already reserved inside llvm for
internal use as a generic temporary register in the prologue before
saving registers, while X15 was already used in rare cases as a scratch
register in the prologue as well, so I felt that seemed the most logical
choice to choose here.
2025-06-11 21:49:01 -04:00
Aiden Grossman
3cef099ced [TySan][CMake] Depend on tysan for check-tysan in runtimes build (#143597)
The runtimes build expects libclang_rt.tysan.a to be available, but the
check-tysan target does not actually depend on it when built using a
runtimes build with LLVM_ENABLE_RUNTIMES pointing at ./llvm. This means
we get test failures when running check-compiler-rt due to the missing
static archive.

This patch also makes check-tysan depend on tysan when we are using the
runtimes build.

This is causing premerge failures currently since we recently migrated
to the runtimes build.
2025-06-10 18:06:13 -07:00
Florian Mayer
32d2b6ba47 [HWASAN] Disable LSan test on Android (#143625)
Android HWASan does not support LSan.
2025-06-10 15:58:53 -07:00
Peter Collingbourne
b3837f1392 cfi: Re-enable tests with lld on i386. NFCI.
Originally disabled because of #34200 but that bug has long since
been fixed.

Reviewers: fmayer

Reviewed By: fmayer

Pull Request: https://github.com/llvm/llvm-project/pull/143459
2025-06-09 16:41:13 -07:00
Charles Zablit
b62488f832 [lldb] make lit use the same PYTHONHOME for building and testing (#143183)
When testing LLDB, we want to make sure to use the same Python as the
one we used to build it.

This patch used the CMake variable `Python3_ROOT_DIR` to set the
`PYTHONHOME` env variable in LLDB lit tests, in order to ensure of this.

Please see https://github.com/swiftlang/swift/pull/82063 for the
original issue.
2025-06-09 10:20:39 +01:00
Florian Mayer
0eccf1385c [LSan] skip leaks from dlerror (#142876)
We have known false positives, and the return value is never
user-managed anyway.
2025-06-04 20:04:16 -07:00
Florian Mayer
dbee0d5644 [NFCI] [hwasan] Add test demonstrating hwasan lsan false positive (#142874) 2025-06-04 20:02:51 -07:00
Ellis Hoag
79da1c405d [Sanitizer] Use %device_rundir/ to fix test (#142274)
I attempted to fix this test in
https://github.com/llvm/llvm-project/pull/142235 but we a new error.


https://lab.llvm.org/buildbot/#/builders/186/builds/9524/steps/26/logs/stdio
> ERROR: Can't create directory: /var

The path we want is actually at `/data/local/tmp/Output/var/...`.

I found `%device_rundir/` evaluates to this prefix on android, and
nothing otherwise.


f057a593a7/compiler-rt/test/lit.common.cfg.py (L658)
2025-05-31 07:33:11 -07:00
Ellis Hoag
74420ce524 [Sanitizer][NFC] Remove extra env from test (#142247) 2025-05-30 21:56:03 -07:00
Ellis Hoag
c979d1f812 [Sanitizer] Fix android test env issue (#142235)
I attempted to fix android tests in
https://github.com/llvm/llvm-project/pull/142207 (broken by
https://github.com/llvm/llvm-project/pull/141820). They are still
failing but now I have more info.


https://lab.llvm.org/buildbot/#/builders/186/builds/9504/steps/16/logs/stdio

ERROR: Can't open file: //foo.8862 (reason: 30)

I believe the reason is that on android the HOME and TMPDIR environment
variables are not being set correctly, or they are not read correctly.
(https://github.com/llvm/llvm-project/pull/142234#issuecomment-2923694428)
2025-05-30 19:26:26 -07:00
Ellis Hoag
986f519d1f [Sanitizer][test] Emit to stderr to fix android (#142207)
This test is broken on android by
https://github.com/llvm/llvm-project/pull/141820

https://lab.llvm.org/buildbot/#/builders/186/builds/9498

> FileCheck error: '' is empty.

I suspect that on android printf only works if its emitted to stderr
because this use to work


a2ce564720/compiler-rt/test/sanitizer_common/TestCases/Posix/sanitizer_set_report_path_test.cpp (L21-L22)

Only emit to stderr and see if that fixes the test.
2025-05-30 13:15:59 -07:00
Ellis Hoag
5301f4c469 [Sanitizer] Use % patterns in report paths (#141820)
Support `%` patterns in sanitizer report paths, similar to the patterns
supported in IRPGO

4bf67cdf02/compiler-rt/lib/profile/InstrProfilingFile.c (L999-L1017)

* `%%` becomes `%`
* `%H` expands to the environment variable `HOME`
* `%t` expands to the environment variable `TMPDIR`
* `%p` expands to the process ID (PID)

In particular, the `%H` pattern is useful to resolve the home directory
at runtime, which is not possible before this PR.

Also, avoid using `Report()` before the report path has been set.
2025-05-30 07:57:51 -07:00
Jan Patrick Lehr
bf6cd24aaa Revert "[compiler-rt][XRay] Make xray_interface.h C compliant" (#141570)
Reverts llvm/llvm-project#140068

Failures on PPC buildbots.
2025-05-27 11:15:47 +02:00
Jan André Reuter
80da58da34 [compiler-rt][XRay] Make xray_interface.h C compliant (#140068)
The XRay interface header uses no C++ specific features aside from using
the `std` namespace and including the C++ variant of C headers. Yet,
these changes prevent using `xray_interface.h` in external tools relying
on C for different reasons. Make this header C compliant by using C
headers, removing the `std` namespace from `std::size_t` and guard
`extern "C"`.

To make sure that further changes to not break the interface
accidentally, port one test from C++ to C. This requires the C23
standard to officially support the attribute syntax used in this test
case.

Note that this only resolves this issue for `xray_interface.h`.
`xray_records.h` is also not C compliant, but requires more work to
port.

Fixes #139902

Signed-off-by: Jan André Reuter <j.reuter@fz-juelich.de>
2025-05-27 09:59:14 +02:00
Paul Kirth
1590ef3dec [asan][test] Disable asan_lsan_deadlock test (#141145)
While the current test exercised the deadlock behavior prior to #131756,
deadlock still can occur intermittently. Since this results in test
flakes in CI, we disable this test until the locking behavior can be
fixed in the runtime. See #140646 for details.
2025-05-23 12:55:12 -07:00
Martin Storsjö
a2f72ede22 [compiler-rt] [test] Don't apply the "arm" or "armhf" patterns for targets starting with "arm64" (#141226)
This fixes finding the builtins library for arm64ec in tests.

This matches a corresponding condition added in cmake in
3764ba2348.
2025-05-23 19:25:09 +03:00
Steven Wu
e9304cb7bb [TSan][Test] Disable signal_recursive.cpp test on Darwin (#141135)
Mark signal_recursive.cpp test as unsupported on Darwin due to
deprecated API `sem_init` and test receives error:

`sem_init failed (errno=78)`
2025-05-22 16:22:21 -07:00
Jakob Widauer
1aa746d300 [tsan] Fix nested signal handling (#138599)
This PR fixes the bug reported in #134358.

In the current implementation of the tsan posix interceptors, the signal
set does not get restored to the correct original set, if a signal
handler gets called, while already inside of a signal handler. This
leads to the wrong signal set being set for the thread in which the
signal handler was called.

To fix this I introduced a stack of `__sanitizer_sigset_t` to keep all
the correct old signal sets and restore them in the correct order.

There was also already an existing test that tested nested / recursive
signal handlers, but it was disabled.
I therefore reenabled it, made it more robust by waiting for the second
thread to have been properly started and added checks for the signal
sets.
This test then failed before the introduction of the interceptor fix and
didn't fail with the fix.

@dvyukov What are your thoughts?
2025-05-22 09:44:53 -07:00
Justin Cady
0931874b21 [Coverage] Add testing to validate code coverage for exceptions (#133463)
While investigating an issue with code coverage reporting around
exceptions it was useful to have a baseline of what works today.

This change adds end-to-end testing to validate code coverage behavior
that is currently working with regards to exception handling.
2025-05-20 13:43:32 -04:00
Justin Cady
025639bc39 [Coverage] Fix mapping for do-while loops with terminating statements (#139777)
The current region mapping for do-while loops that contain statements
such as break or continue results in inaccurate line coverage reports
for the line following the loop.

This change handles terminating statements the same way that other loop
constructs do, correcting the region mapping for accurate reports. It
also fixes a fragile test relying on exact line numbers.

Fixes #139122
2025-05-19 15:49:26 -04:00
Dan Blackwell
e620f10f57 [compiler-rt][sanitizer_common] Alter sanitizer_set_report_path_test to not assume a fixed file path (#139282)
Currently, `Posix/sanitizer_set_report_path_test.cpp` contains the
following check: `// CHECK: ERROR: Can't create directory:
{{.*}}Posix/Output/sanitizer_set_report_path_test.cpp.tmp`. This makes
an assumption that the test file resides in `Posix/Output`, however when
testing on a remote device, an alternative temporary directory path is
used. This patch instead checks that the path in the error message
matches the requested path dynamically.
2025-05-16 10:02:54 -07:00
Jacek Caban
3764ba2348 [compiler-rt] Add initial ARM64EC builtins support (#139279)
Use the aarch64 variants of assembly functions.

Co-authored-by: Billy Laws <blaws05@gmail.com>
2025-05-15 11:42:55 +02:00
Vitaly Buka
d1da41bf4d [ubsan_minimal] Add __ubsan_report_error_fatal (#138999)
Override may need to know if sanitizer in recover mode.
2025-05-08 09:58:48 -07:00
thetruestblue
c685355811 Unsupported zero_page_pc on iOS. (#137893) 2025-04-29 16:36:46 -07:00
thetruestblue
0864e3c8a9 [Test][Darwin] Mark zero_page_pc test as unsupported for iOS (#137858)
This is handled as a SIGKILL and can't be intercepted by ASan's signal
handler.

rdar://127512190
2025-04-29 12:08:34 -07:00
Vitaly Buka
b111da97e8 [NFC][asan] Try to deflake asan_lsan_deadlock test (#137718)
10s looks not enough. With highly parallel test
execution on VMs it's very possible that Asan
report will have no enough time to produce output.

I can reproduce locally 1s is not always enough,
but likely my workstation is faster then buildbot.

Additionally, don't use puts/CHECK to validate
timeout. We can exit with 0 and it should violate
"not" expectation.

Follow up to #131756.
2025-04-28 15:17:51 -07:00
Vitaly Buka
367b91a6f8 [NFC][CFI] Fix setup of UBSAN_TEST_HAS_CFI (#137424)
For #137245
2025-04-25 17:23:09 -07:00
Vitaly Buka
0f73e89db7 [NFC][CFI] Fix test from #137245 (#137420)
Check if arch supports CFI.

For #137245
2025-04-25 16:47:00 -07:00
Vitaly Buka
012cf4ff60 [NFC][CFI] Fix test from #137245 (#137390)
For #137245
2025-04-25 13:05:07 -07:00
Vitaly Buka
0383e545d1 [NFC][CFI] Add minimal runtime test for CFI (#137245)
It's in UBSAN dir, as diagnostic runtime for CFI,
full or minimal is UBSAN.
2025-04-25 12:25:55 -07:00
gbMattN
067067580f [TySan] Fix false positives with derived classes (#126260)
Fixes issue #125079 as well as another case I discovered while trying to
build LLVM with TySan.
2025-04-25 10:55:20 +01:00
Martin Storsjö
3e56f5f418 [compiler-rt] [test] Adjust profile tests to allow arm_aapcs_vfpcc (#137176)
This fixes these tests for Windows on armv7.
2025-04-25 12:18:17 +03:00