r286531 - Don't require nullability on 'va_list' harder.

Jordan Rose via cfe-commits cfe-commits at lists.llvm.org
Thu Nov 10 16:23:59 PST 2016


Author: jrose
Date: Thu Nov 10 18:23:59 2016
New Revision: 286531

URL: http://llvm.org/viewvc/llvm-project?rev=286531&view=rev
Log:
Don't require nullability on 'va_list' harder.

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.

Modified:
    cfe/trunk/lib/Sema/SemaType.cpp

Modified: cfe/trunk/lib/Sema/SemaType.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaType.cpp?rev=286531&r1=286530&r2=286531&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaType.cpp (original)
+++ cfe/trunk/lib/Sema/SemaType.cpp Thu Nov 10 18:23:59 2016
@@ -3928,6 +3928,9 @@ static TypeSourceInfo *GetFullTypeForDec
       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;




More information about the cfe-commits mailing list