[clang] [clang] "modular_format" attribute for functions using format strings (PR #147431)

Erich Keane via cfe-commits cfe-commits at lists.llvm.org
Mon Dec 1 11:52:32 PST 2025


================
@@ -5317,3 +5317,11 @@ def NonString : InheritableAttr {
   let Subjects = SubjectList<[Var, Field]>;
   let Documentation = [NonStringDocs];
 }
+
+def ModularFormat : InheritableAttr {
+  let Spellings = [Clang<"modular_format">];
+  let Args = [IdentifierArgument<"ModularImplFn">, StringArgument<"ImplName">,
+              VariadicStringArgument<"Aspects">];
----------------
erichkeane wrote:

IS there a good reason they should be string format aspects rather than identifiers?  We can do non-looked up identifiers, but the string arguments always look sorta bizarre.

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


More information about the cfe-commits mailing list