================ @@ -851,6 +851,50 @@ class ScanfDiagnosticFormatHandler } }; +/// `I` points to the next character of `%p` format. +/// This functon checks if the subsequent character can be linux kernel's +/// extnded format specifier +static inline constexpr bool canBeLinuxFormatExtension(const char *I, + const char *E) { + assert(I < E && "format string not yet exhausted"); + // Kernel Document: https://docs.kernel.org/core-api/printk-formats.html + switch (*I) { ---------------- hazohelet wrote:
These switch cases correspond to https://github.com/torvalds/linux/blob/0bb80ecc33a8fb5a682236443c1e740d5c917d1d/lib/vsprintf.c#L2406-L2412 Note that kernel extension `%pA` is for Rust and thus excluded here. ref: https://docs.kernel.org/core-api/printk-formats.html https://github.com/llvm/llvm-project/pull/65969 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits