diff options
author | Jared Grubb <jaredgrubb@gmail.com> | 2024-04-29 09:16:00 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-29 17:16:00 +0100 |
commit | e3750fb65acf0f7447f6a49a0ba5d3197f4d9766 (patch) | |
tree | 5529d52427c12bb77959947876e8c8c51721303c /llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp | |
parent | 2903df02fb3c057849aaa796a91289b01950a5f0 (diff) | |
download | llvm-e3750fb65acf0f7447f6a49a0ba5d3197f4d9766.zip llvm-e3750fb65acf0f7447f6a49a0ba5d3197f4d9766.tar.gz llvm-e3750fb65acf0f7447f6a49a0ba5d3197f4d9766.tar.bz2 |
[Clang] Add diagnostic about "%P" specifier with Objective-C pointers (#89977)
A Darwin extension '%P' combined with an Objective-C pointer seems to
always be a bug.
'%P' will dump bytes at the pointed-to address (in contrast to '%p'
which dumps the pointer itself). This extension is only allowed in "OS
Log" contexts and is intended to be used like `%{uuid_t}.*16P` or
`%{timeval}.*P`. If an ObjC pointer is used, then the internal runtime
structure (aka, the is-a pointer and other runtime metadata) will be
dumped, which (IMO) is never the expectation.
A simple diagnostic can help flag these scenarios.
Resolves https://github.com/llvm/llvm-project/issues/89968
Co-authored-by: Jared Grubb <jgrubb@apple.com>
Diffstat (limited to 'llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp')
0 files changed, 0 insertions, 0 deletions