================
@@ -7001,6 +7005,85 @@ bool Sema::CheckFormatString(const FormatMatchesAttr
*Format,
return false;
}
+static void CheckMissingFormatAttributes(Sema *S, FormatStringType FormatType,
+ unsigned FormatIdx, unsigned FirstArg,
+ ArrayRef<const Expr *> Args,
+ Sema::FormatArgumentPassingKind APK,
+ unsigned CallerParamIdx,
+ SourceLocation Loc) {
+ const FunctionDecl *Caller = S->getCurFunctionDecl();
+ if (!Caller)
+ return;
----------------
apple-fcloutier wrote:
This will always fail in Objective-C because ObjCMethodDecl does not inherit
from FunctionDecl. Would you add an Objective-C test to ensure this works? If
you're not super familiar with it, the declaration/use syntax should be:
```
#include <stdarg.h>
@interface Foo
-(void)myprintf:(const char *)fmt, ... __attribute__((format(printf, 1, 2)));
-(void)myvprintf:(const char *)fmt list:(va_list)ap
__attribute__((format(printf, 1, 0)));
@end
void bar(Foo *f) {
[f myprintf:"hello %i", 123];
}
void baz(Foo *f, const char *fmt, va_list ap) {
[f myvprintf:fmt list:ap];
}
```
Happy to answer other questions you may have.
https://github.com/llvm/llvm-project/pull/166738
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits