diff options
author | Ted Kremenek <kremenek@apple.com> | 2011-01-08 05:28:38 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2011-01-08 05:28:38 +0000 |
commit | bd18d4584aae0ed6f7111ef5713784cf29fe663f (patch) | |
tree | 6a18805b7e708ea0f35198955901c71bb52da059 /include/clang/Analysis/Analyses/FormatString.h | |
parent | 0574c78c5a9d1258b3584ad04596e85aaa6c6f8b (diff) |
Add printf format string parsing support for '
prefix to format conversions (POSIX extension).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123054 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Analysis/Analyses/FormatString.h')
-rw-r--r-- | include/clang/Analysis/Analyses/FormatString.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/include/clang/Analysis/Analyses/FormatString.h b/include/clang/Analysis/Analyses/FormatString.h index 280b1260ac..cc1d3427e7 100644 --- a/include/clang/Analysis/Analyses/FormatString.h +++ b/include/clang/Analysis/Analyses/FormatString.h @@ -379,6 +379,7 @@ using analyze_format_string::OptionalAmount; using analyze_format_string::OptionalFlag; class PrintfSpecifier : public analyze_format_string::FormatSpecifier { + OptionalFlag HasThousandsGrouping; // ''', POSIX extension. OptionalFlag IsLeftJustified; // '-' OptionalFlag HasPlusPrefix; // '+' OptionalFlag HasSpacePrefix; // ' ' @@ -388,8 +389,8 @@ class PrintfSpecifier : public analyze_format_string::FormatSpecifier { public: PrintfSpecifier() : FormatSpecifier(/* isPrintf = */ true), - IsLeftJustified("-"), HasPlusPrefix("+"), HasSpacePrefix(" "), - HasAlternativeForm("#"), HasLeadingZeroes("0") {} + HasThousandsGrouping("'"), IsLeftJustified("-"), HasPlusPrefix("+"), + HasSpacePrefix(" "), HasAlternativeForm("#"), HasLeadingZeroes("0") {} static PrintfSpecifier Parse(const char *beg, const char *end); @@ -397,6 +398,10 @@ public: void setConversionSpecifier(const PrintfConversionSpecifier &cs) { CS = cs; } + void setHasThousandsGrouping(const char *position) { + HasThousandsGrouping = true; + HasThousandsGrouping.setPosition(position); + } void setIsLeftJustified(const char *position) { IsLeftJustified = true; IsLeftJustified.setPosition(position); |