diff options
author | Jordan Rose <jordan_rose@apple.com> | 2012-09-08 04:00:12 +0000 |
---|---|---|
committer | Jordan Rose <jordan_rose@apple.com> | 2012-09-08 04:00:12 +0000 |
commit | 2f9cc0425101db67c73c4f2f4b63eb79aacc89ee (patch) | |
tree | f2cf711b0d4083f2fa42bb19f60f91b6279f2861 /clang/lib/Analysis/FormatString.cpp | |
parent | 92303592c32434e6f8d8f321d1e78fcfec7ac7a4 (diff) | |
download | llvm-2f9cc0425101db67c73c4f2f4b63eb79aacc89ee.zip llvm-2f9cc0425101db67c73c4f2f4b63eb79aacc89ee.tar.gz llvm-2f9cc0425101db67c73c4f2f4b63eb79aacc89ee.tar.bz2 |
Format strings: suggest %lld instead of %qd and %Ld with -Wformat-non-iso.
As a corollary to the previous commit, even when an extension is
available, we can still offer a fixit to the standard modifier.
llvm-svn: 163453
Diffstat (limited to 'clang/lib/Analysis/FormatString.cpp')
-rw-r--r-- | clang/lib/Analysis/FormatString.cpp | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/clang/lib/Analysis/FormatString.cpp b/clang/lib/Analysis/FormatString.cpp index 45c722a..c6ba6fa 100644 --- a/clang/lib/Analysis/FormatString.cpp +++ b/clang/lib/Analysis/FormatString.cpp @@ -723,21 +723,13 @@ bool FormatSpecifier::hasStandardLengthConversionCombination() const { llvm::Optional<LengthModifier> FormatSpecifier::getCorrectedLengthModifier() const { - if (LM.getKind() == LengthModifier::AsLongDouble) { - switch (CS.getKind()) { - case ConversionSpecifier::dArg: - case ConversionSpecifier::iArg: - case ConversionSpecifier::oArg: - case ConversionSpecifier::uArg: - case ConversionSpecifier::xArg: - case ConversionSpecifier::XArg: { + if (CS.isAnyIntArg() || CS.getKind() == ConversionSpecifier::nArg) { + if (LM.getKind() == LengthModifier::AsLongDouble || + LM.getKind() == LengthModifier::AsQuad) { LengthModifier FixedLM(LM); FixedLM.setKind(LengthModifier::AsLongLong); return FixedLM; } - default: - break; - } } return llvm::Optional<LengthModifier>(); |