]> granicus.if.org Git - clang/commitdiff
Don't require nullability on 'va_list' harder.
authorJordan Rose <jordan_rose@apple.com>
Fri, 11 Nov 2016 00:23:59 +0000 (00:23 +0000)
committerJordan Rose <jordan_rose@apple.com>
Fri, 11 Nov 2016 00:23:59 +0000 (00:23 +0000)
Platform headers don't always define 'va_list' in terms of Clang's
'__builtin_va_list', so in addition to checking for our own
synthesized decl, also just look for typedefs literally named
'va_list'. Better to err on the side of false negatives here.

Fix-up for rdar://problem/25846421.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@286531 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaType.cpp

index 0fbf97ff0e3a78237891afad1f7603f1a4990e50..e98737946b7856ee75a815237940f69e93864aab 100644 (file)
@@ -3928,6 +3928,9 @@ static TypeSourceInfo *GetFullTypeForDeclarator(TypeProcessingState &state,
       do {
         if (typedefTy->getDecl() == vaListTypedef)
           return true;
+        if (auto *name = typedefTy->getDecl()->getIdentifier())
+          if (name->isStr("va_list"))
+            return true;
         typedefTy = typedefTy->desugar()->getAs<TypedefType>();
       } while (typedefTy);
       return false;