llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: Daniel Thornburgh (mysterymath) <details> <summary>Changes</summary> This fixes an oversight discovered in #<!-- -->147431. --- Full diff: https://github.com/llvm/llvm-project/pull/178322.diff 2 Files Affected: - (modified) clang/lib/Sema/SemaDeclAttr.cpp (+5) - (modified) clang/test/Sema/attr-modular-format.c (+2) ``````````diff diff --git a/clang/lib/Sema/SemaDeclAttr.cpp b/clang/lib/Sema/SemaDeclAttr.cpp index d762bcd789bf5..3f0ea5c8f3eba 100644 --- a/clang/lib/Sema/SemaDeclAttr.cpp +++ b/clang/lib/Sema/SemaDeclAttr.cpp @@ -7035,6 +7035,11 @@ ModularFormatAttr *Sema::mergeModularFormatAttr( static void handleModularFormat(Sema &S, Decl *D, const ParsedAttr &AL) { bool Valid = true; + if (!AL.isArgIdent(0)) { + S.Diag(AL.getLoc(), diag::err_attribute_argument_n_type) + << AL << 1 << AANT_ArgumentIdentifier; + Valid = false; + } StringRef ImplName; if (!S.checkStringLiteralArgumentAttr(AL, 1, ImplName)) Valid = false; diff --git a/clang/test/Sema/attr-modular-format.c b/clang/test/Sema/attr-modular-format.c index b7ae519cedbeb..9d7e1ac1b485a 100644 --- a/clang/test/Sema/attr-modular-format.c +++ b/clang/test/Sema/attr-modular-format.c @@ -3,6 +3,8 @@ int printf(const char *fmt, ...) __attribute__((modular_format(__modular_printf, "__printf", "float"))); // no-error int myprintf(const char *fmt, ...) __attribute__((modular_format(__modular_printf, "__printf", "float"))); // expected-error {{'modular_format' attribute requires 'format' attribute}} +int string_impl_fn(const char *fmt, ...) __attribute__((modular_format("__modular_printf", "__printf", "float"), format(printf, 1, 2))); // expected-error {{'modular_format' attribute requires parameter 1 to be an identifier}} + int lprintf(const char *fmt, ...) __attribute__((modular_format(__modular_printf, L"__printf", L"float"), format(printf, 1, 2))); // expected-warning@-1 2{{encoding prefix 'L' on an unevaluated string literal has no effect}} `````````` </details> https://github.com/llvm/llvm-project/pull/178322 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
