================ @@ -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 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits