diff options
author | Ahmed Bougacha <ahmed@bougacha.org> | 2025-05-08 14:29:24 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-05-08 14:29:24 -0700 |
commit | 0df1a52852f570fb72c25f88f94f9b51e4689f1d (patch) | |
tree | 144860f0730abe25cf40eb996718af2f45ab410e /llvm/tools/llvm-objdump/llvm-objdump.cpp | |
parent | 03896403d3bf330c8163aa9ae3fe2aa284e273be (diff) | |
download | llvm-0df1a52852f570fb72c25f88f94f9b51e4689f1d.zip llvm-0df1a52852f570fb72c25f88f94f9b51e4689f1d.tar.gz llvm-0df1a52852f570fb72c25f88f94f9b51e4689f1d.tar.bz2 |
[AArch64][FastISel] Fallback on atomic stlr/cas with non-reg operands. (#133987)
This has been a latent bug for almost 10 years, but is relatively hard
to trigger, needing an address operand that isn't handled by
getRegForValue (in the test here, constexpr casts). When that happens,
it returns 0, which FastISel happily uses as a register operand, all the
way to asm, where we either get a crash on an invalid register, or a
silently corrupt instruction.
Unfortunately, FastISel is still enabled at -O0 for at least
ILP32/arm64_32.
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.cpp')
0 files changed, 0 insertions, 0 deletions