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

Reply via email to