From 0f94d97cba9d3600ca8eeb501017db9fddae44b4 Mon Sep 17 00:00:00 2001 From: Jordan Rose Date: Fri, 11 Nov 2016 00:23:59 +0000 Subject: [PATCH] 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. llvm-svn: 286531 --- clang/lib/Sema/SemaType.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/clang/lib/Sema/SemaType.cpp b/clang/lib/Sema/SemaType.cpp index 0fbf97f..e987379 100644 --- a/clang/lib/Sema/SemaType.cpp +++ b/clang/lib/Sema/SemaType.cpp @@ -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(); } while (typedefTy); return false; -- 2.7.4