diff options
author | Simon Tatham <simon.tatham@arm.com> | 2025-07-29 09:01:37 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-07-29 09:01:37 +0100 |
commit | d5985905ae8e5b2e108d1b2772b554134db162dd (patch) | |
tree | 3acca8ad10b08c47c6d1b7f708c2c9a241680b22 /lldb/unittests/ScriptInterpreter/Python | |
parent | fc90685354ca36c935ebb0f315bb18592598a83b (diff) | |
download | llvm-d5985905ae8e5b2e108d1b2772b554134db162dd.zip llvm-d5985905ae8e5b2e108d1b2772b554134db162dd.tar.gz llvm-d5985905ae8e5b2e108d1b2772b554134db162dd.tar.bz2 |
[Clang][ARM][Sema] Reject bad sizes of __builtin_arm_ldrex (#150419)
Depending on the particular version of the AArch32 architecture,
load/store exclusive operations might be available for various subset of
8, 16, 32, and 64-bit quantities. Sema knew nothing about this and was
accepting all four sizes, leading to a compiler crash at isel time if
you used a size not available on the target architecture.
Now the Sema checking stage emits a more sensible diagnostic, pointing
at the location in the code.
In order to allow Sema to query the set of supported sizes, I've moved
the enum of LDREX_x sizes out of its Arm-specific header into
`TargetInfo.h`.
Also, in order to allow the diagnostic to specify the correct list of
supported sizes, I've filled it with `%select{}`. (The alternative was
to make separate error messages for each different list of sizes.)
Diffstat (limited to 'lldb/unittests/ScriptInterpreter/Python')
0 files changed, 0 insertions, 0 deletions