[clang] [clang] Catch missing format attributes (PR #105479)

via cfe-commits cfe-commits at lists.llvm.org
Fri May 16 07:06:08 PDT 2025


================
@@ -5918,6 +5918,181 @@ static void handlePreferredTypeAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
   D->addAttr(::new (S.Context) PreferredTypeAttr(S.Context, AL, ParmTSI));
 }
 
+// Diagnosing missing format attributes is implemented in two steps:
+// 1. Detect missing format attributes while checking function calls.
+// 2. Emit diagnostic in part that processes function body.
+// For this purpose it is created vector that stores information about format
+// attributes. There are no two format attributes with same arguments in a
+// vector. Vector could contains attributes that only store information about
+// format type (format string and first to check argument are set to -1).
+namespace {
+std::vector<FormatAttr *> MissingAttributes;
----------------
apple-fcloutier wrote:

Clang does not use global mutable state. You need to find some other way to keep that around.

https://github.com/llvm/llvm-project/pull/105479


More information about the cfe-commits mailing list