[cfe-commits] r56767 - in /cfe/trunk: include/clang/AST/Builtins.h lib/Sema/SemaDecl.cpp

Chris Lattner sabre at nondot.org
Sat Sep 27 22:54:30 PDT 2008


Author: lattner
Date: Sun Sep 28 00:54:29 2008
New Revision: 56767

URL: http://llvm.org/viewvc/llvm-project?rev=56767&view=rev
Log:
Replace a comparison with a static list of builtins that was wrong (it
wasn't covering checking builtins like __builtin___vsnprintf_chk) with
a check that won't get out of date. 

Modified:
    cfe/trunk/include/clang/AST/Builtins.h
    cfe/trunk/lib/Sema/SemaDecl.cpp

Modified: cfe/trunk/include/clang/AST/Builtins.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/Builtins.h?rev=56767&r1=56766&r2=56767&view=diff

==============================================================================
--- cfe/trunk/include/clang/AST/Builtins.h (original)
+++ cfe/trunk/include/clang/AST/Builtins.h Sun Sep 28 00:54:29 2008
@@ -78,6 +78,12 @@
     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:

Modified: cfe/trunk/lib/Sema/SemaDecl.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDecl.cpp?rev=56767&r1=56766&r2=56767&view=diff

==============================================================================
--- cfe/trunk/lib/Sema/SemaDecl.cpp (original)
+++ cfe/trunk/lib/Sema/SemaDecl.cpp Sun Sep 28 00:54:29 2008
@@ -194,10 +194,7 @@
                                       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);  





More information about the cfe-commits mailing list