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 | dcfb360f6e1aaab0754a98e1e245c2607c46058a (patch) | |
tree | 4430dd63e55ec49c77fa67e1d838bd77ea50479e /lib/Sema/AnalysisBasedWarnings.cpp | |
parent | 72dfa27b415b15157a9d1fc33b6ed21f0085bed2 (diff) |
Provide -Wuninitialized-experimental fixits
for floats, and also check if 'nil' is declared
when suggesting it for initializing ObjC pointers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124004 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/AnalysisBasedWarnings.cpp')
-rw-r--r-- | lib/Sema/AnalysisBasedWarnings.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/lib/Sema/AnalysisBasedWarnings.cpp b/lib/Sema/AnalysisBasedWarnings.cpp index 91f95a762a..38284f6627 100644 --- a/lib/Sema/AnalysisBasedWarnings.cpp +++ b/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"; } |