Printf argument checking now supports dynamically-passed precision
specifiers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42886 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Sema/SemaChecking.cpp b/Sema/SemaChecking.cpp
index 863882e..ea63b7d 100644
--- a/Sema/SemaChecking.cpp
+++ b/Sema/SemaChecking.cpp
@@ -282,11 +282,16 @@
// Seen '%'. Now processing a format conversion.
switch (Str[StrIdx]) {
+ // Handle dynamic precision specifier.
+ case '*':
+ if (Str[StrIdx-1] == '.') ++numConversions;
+ break;
+
// Characters which can terminate a format conversion
// (e.g. "%d"). Characters that specify length modifiers or
// other flags are handled by the default case below.
//
- // TODO: additional checks will go into the following cases.
+ // FIXME: additional checks will go into the following cases.
case 'i':
case 'd':
case 'o':