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

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


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134302 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Douglas Gregor 2011-07-02 00:59:18 +00:00
Родитель 14508ff0bf
Коммит 8ba44264e0
1 изменённых файлов: 9 добавлений и 1 удалений

Просмотреть файл

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