Add code generation and sema checking for __builtin_va_arg.

llvm-svn: 43006
diff --git a/clang/Sema/Sema.h b/clang/Sema/Sema.h
index a7db5b9..c45bbf8 100644
--- a/clang/Sema/Sema.h
+++ b/clang/Sema/Sema.h
@@ -418,6 +418,11 @@
                                      ExprTy *cond, ExprTy *expr1, ExprTy *expr2,
                                      SourceLocation RPLoc);
   
+  // __builtin_va_arg(expr, type)
+  virtual ExprResult ActOnVAArg(SourceLocation BuiltinLoc,
+                                ExprTy *expr, TypeTy *type,
+                                SourceLocation RPLoc);
+  
   /// ActOnCXXCasts - Parse {dynamic,static,reinterpret,const}_cast's.
   virtual ExprResult ActOnCXXCasts(SourceLocation OpLoc, tok::TokenKind Kind,
                                    SourceLocation LAngleBracketLoc, TypeTy *Ty,
@@ -624,6 +629,8 @@
                                           unsigned NewWidth, bool NewSign,
                                           SourceLocation Loc, unsigned DiagID);
   
+  void InitBuiltinVaListType();
+  
   //===--------------------------------------------------------------------===//
   // Extra semantic analysis beyond the C type system
   private: