aboutsummaryrefslogtreecommitdiff
path: root/lib/Analysis/FormatString.cpp
diff options
context:
space:
mode:
authorJordan Rose <jordan_rose@apple.com>2012-09-08 04:00:12 +0000
committerJordan Rose <jordan_rose@apple.com>2012-09-08 04:00:12 +0000
commit8be066e6733364cd34f25c4f7b7344f72aa23369 (patch)
tree0831a6c6016ee62155c9ed3bc1e1a61d27b2e7db /lib/Analysis/FormatString.cpp
parentbbb6bb4952b77e57b842b4d3096848123ae690e7 (diff)
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163453 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/FormatString.cpp')
-rw-r--r--lib/Analysis/FormatString.cpp14
1 files changed, 3 insertions, 11 deletions
diff --git a/lib/Analysis/FormatString.cpp b/lib/Analysis/FormatString.cpp
index 45c722a5d5..c6ba6fab07 100644
--- a/lib/Analysis/FormatString.cpp
+++ b/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>();