wasn't covering checking builtins like __builtin___vsnprintf_chk) with
a check that won't get out of date.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56767
91177308-0d34-0410-b5e6-
96231b3b80d8
return strchr(GetRecord(ID).Attributes, 'F') != 0;
}
+ /// hasVAListUse - Return true of the specified builtin uses __builtin_va_list
+ /// as an operand or return type.
+ bool hasVAListUse(unsigned ID) const {
+ return strchr(GetRecord(ID).Type, 'a') != 0;
+ }
+
/// GetBuiltinType - Return the type for the specified builtin.
QualType GetBuiltinType(unsigned ID, ASTContext &Context) const;
private:
Scope *S) {
Builtin::ID BID = (Builtin::ID)bid;
- if (BID == Builtin::BI__builtin_va_start ||
- BID == Builtin::BI__builtin_va_copy ||
- BID == Builtin::BI__builtin_va_end ||
- BID == Builtin::BI__builtin_stdarg_start)
+ if (Context.BuiltinInfo.hasVAListUse(BID))
InitBuiltinVaListType();
QualType R = Context.BuiltinInfo.GetBuiltinType(BID, Context);