llvm-project
e3750fb6 - [Clang] Add diagnostic about "%P" specifier with Objective-C pointers (#89977)

Commit
1 year ago
[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>
Author
Parents
Loading