diff options
| author | Ted Kremenek <kremenek@apple.com> | 2011-01-21 22:49:49 +0000 |
|---|---|---|
| committer | Ted Kremenek <kremenek@apple.com> | 2011-01-21 22:49:49 +0000 |
| commit | 33d4b5eb6622197257bd069f42f8bf007c658515 (patch) | |
| tree | d9525bd409ad8802cb94a403ae5054544e446ec3 /clang/lib/Sema/AnalysisBasedWarnings.cpp | |
| parent | dfeab068f5ee77a2e2d2eba840d7a5ca44a3cdba (diff) | |
| download | bcm5719-llvm-33d4b5eb6622197257bd069f42f8bf007c658515.tar.gz bcm5719-llvm-33d4b5eb6622197257bd069f42f8bf007c658515.zip | |
Provide -Wuninitialized-experimental fixits
for floats, and also check if 'nil' is declared
when suggesting it for initializing ObjC pointers.
llvm-svn: 124004
Diffstat (limited to 'clang/lib/Sema/AnalysisBasedWarnings.cpp')
| -rw-r--r-- | clang/lib/Sema/AnalysisBasedWarnings.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/clang/lib/Sema/AnalysisBasedWarnings.cpp b/clang/lib/Sema/AnalysisBasedWarnings.cpp index 91f95a762ac..38284f66273 100644 --- a/clang/lib/Sema/AnalysisBasedWarnings.cpp +++ b/clang/lib/Sema/AnalysisBasedWarnings.cpp @@ -421,12 +421,19 @@ public: // Suggest possible initialization (if any). const char *initialization = 0; - QualType vdTy = vd->getType(); + QualType vdTy = vd->getType().getCanonicalType(); if (vdTy->getAs<ObjCObjectPointerType>()) { - initialization = " = nil"; + // Check if 'nil' is defined. + if (S.PP.getMacroInfo(&S.getASTContext().Idents.get("nil"))) + initialization = " = nil"; + else + initialization = " = 0"; } - else if (vdTy->getAs<PointerType>()) { + else if (vdTy->isRealFloatingType()) { + initialization = " = 0.0"; + } + else if (vdTy->isScalarType()) { initialization = " = 0"; } |

