diff options
author | Simon Tatham <simon.tatham@arm.com> | 2025-08-05 08:45:54 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-08-05 08:45:54 +0100 |
commit | 87283db54852a899a52e4e01aa01b471ffa34a1d (patch) | |
tree | c29113576bc90ba89cb95eba3bcea8ca8810117a /lldb/unittests/ScriptInterpreter/Python | |
parent | c5e6938c6710a1c34a32830c743f19a29ffef6e5 (diff) | |
download | llvm-87283db54852a899a52e4e01aa01b471ffa34a1d.zip llvm-87283db54852a899a52e4e01aa01b471ffa34a1d.tar.gz llvm-87283db54852a899a52e4e01aa01b471ffa34a1d.tar.bz2 |
[clang][ARM] Fix build failure in <arm_acle.h> for __swp (#151354)
In commit d5985905ae8e5b2 I introduced a Sema check that prohibits
`__builtin_arm_ldrex` and `__builtin_arm_strex` for data sizes not
supported by the target architecture version. However, `arm_acle.h`
unconditionally uses those builtins with a 32-bit data size. So now
including that header will cause a build failure on Armv6-M, or historic
architectures like Armv5.
To fix it, `arm_acle.h` now queries the compiler-defined
`__ARM_FEATURE_LDREX` macro (also fixed recently in commit
34f59d79209268e so that it matches the target architecture). If 32-bit
LDREX isn't available it will fall back to the older SWP instruction, or
failing that (on Armv6-M), a libcall.
While I was modifying the header anyway, I also renamed the local
variable `v` inside `__swp` so that it starts with `__`, avoiding any
risk of user code having #defined `v`.
Diffstat (limited to 'lldb/unittests/ScriptInterpreter/Python')
0 files changed, 0 insertions, 0 deletions