aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Analysis/PrintfFormatString.cpp
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2014-09-07 03:03:51 +0000
committerHans Wennborg <hans@hanshq.net>2014-09-07 03:03:51 +0000
commitc597b4c5291d6c5017ea24fdbdca664b258b7eb2 (patch)
tree9d4f361e75e437d740333d1094ad7438c90eda4c /clang/lib/Analysis/PrintfFormatString.cpp
parent69abd72e4985185536a600cfd40a20554f7c4951 (diff)
downloadllvm-c597b4c5291d6c5017ea24fdbdca664b258b7eb2.zip
llvm-c597b4c5291d6c5017ea24fdbdca664b258b7eb2.tar.gz
llvm-c597b4c5291d6c5017ea24fdbdca664b258b7eb2.tar.bz2
MS format strings: parse the 'Z' printf conversion specifier (PR20808)
llvm-svn: 217326
Diffstat (limited to 'clang/lib/Analysis/PrintfFormatString.cpp')
-rw-r--r--clang/lib/Analysis/PrintfFormatString.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/clang/lib/Analysis/PrintfFormatString.cpp b/clang/lib/Analysis/PrintfFormatString.cpp
index 1bb3aac..c6453b6 100644
--- a/clang/lib/Analysis/PrintfFormatString.cpp
+++ b/clang/lib/Analysis/PrintfFormatString.cpp
@@ -198,7 +198,7 @@ static PrintfSpecifierResult ParsePrintfSpecifier(FormatStringHandler &H,
case '@': k = ConversionSpecifier::ObjCObjArg; break;
// Glibc specific.
case 'm': k = ConversionSpecifier::PrintErrno; break;
- // Apple-specific
+ // Apple-specific.
case 'D':
if (Target.getTriple().isOSDarwin())
k = ConversionSpecifier::DArg;
@@ -211,6 +211,10 @@ static PrintfSpecifierResult ParsePrintfSpecifier(FormatStringHandler &H,
if (Target.getTriple().isOSDarwin())
k = ConversionSpecifier::UArg;
break;
+ // MS specific.
+ case 'Z':
+ if (Target.getTriple().isOSMSVCRT())
+ k = ConversionSpecifier::ZArg;
}
PrintfConversionSpecifier CS(conversionPosition, k);
FS.setConversionSpecifier(CS);