When producing -Wuninitialized Fix-Its for pointers, prefer " = NULL"

over "= 0". Fixes <rdar://problem/9714386>.

llvm-svn: 134302
This commit is contained in:
Douglas Gregor 2011-07-02 00:59:18 +00:00
parent 73a44f6b99
commit 4326dd9bcc
1 changed files with 9 additions and 1 deletions

View File

@ -486,7 +486,8 @@ static void SuggestInitializationFixit(Sema &S, const VarDecl *VD) {
const char *initialization = 0;
QualType VariableTy = VD->getType().getCanonicalType();
if (VariableTy->getAs<ObjCObjectPointerType>()) {
if (VariableTy->isObjCObjectPointerType() ||
VariableTy->isBlockPointerType()) {
// Check if 'nil' is defined.
if (S.PP.getMacroInfo(&S.getASTContext().Idents.get("nil")))
initialization = " = nil";
@ -499,6 +500,13 @@ static void SuggestInitializationFixit(Sema &S, const VarDecl *VD) {
initialization = " = false";
else if (VariableTy->isEnumeralType())
return;
else if (VariableTy->isPointerType() || VariableTy->isMemberPointerType()) {
// Check if 'NULL' is defined.
if (S.PP.getMacroInfo(&S.getASTContext().Idents.get("NULL")))
initialization = " = NULL";
else
initialization = " = 0";
}
else if (VariableTy->isScalarType())
initialization = " = 0";