tbaeder updated this revision to Diff 316944.
Herald added a subscriber: martong.

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D84846/new/

https://reviews.llvm.org/D84846

Files:
  clang/include/clang/AST/Expr.h
  clang/include/clang/AST/RecursiveASTVisitor.h
  clang/include/clang/Basic/StmtNodes.td
  clang/include/clang/Basic/TokenKinds.def
  clang/include/clang/Sema/Sema.h
  clang/include/clang/Serialization/ASTBitCodes.h
  clang/lib/AST/Expr.cpp
  clang/lib/AST/ExprClassification.cpp
  clang/lib/AST/ExprConstant.cpp
  clang/lib/AST/ItaniumMangle.cpp
  clang/lib/AST/StmtPrinter.cpp
  clang/lib/AST/StmtProfile.cpp
  clang/lib/CodeGen/CGExpr.cpp
  clang/lib/CodeGen/CGExprAgg.cpp
  clang/lib/CodeGen/CodeGenFunction.h
  clang/lib/Parse/ParseExpr.cpp
  clang/lib/Sema/SemaExceptionSpec.cpp
  clang/lib/Sema/SemaExpr.cpp
  clang/lib/Sema/TreeTransform.h
  clang/lib/Serialization/ASTReaderStmt.cpp
  clang/lib/Serialization/ASTWriterStmt.cpp
  clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
  clang/tools/libclang/CXCursor.cpp

Index: clang/tools/libclang/CXCursor.cpp
===================================================================
--- clang/tools/libclang/CXCursor.cpp
+++ clang/tools/libclang/CXCursor.cpp
@@ -331,7 +331,6 @@
   case Stmt::SourceLocExprClass:
   case Stmt::ConvertVectorExprClass:
   case Stmt::VAArgExprClass:
-  case Stmt::VAArgPackExprClass:
   case Stmt::ObjCArrayLiteralClass:
   case Stmt::ObjCDictionaryLiteralClass:
   case Stmt::ObjCBoxedExprClass:
Index: clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
===================================================================
--- clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
+++ clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
@@ -1382,7 +1382,6 @@
     case Stmt::ShuffleVectorExprClass:
     case Stmt::ConvertVectorExprClass:
     case Stmt::VAArgExprClass:
-    case Stmt::VAArgPackExprClass:
     case Stmt::CUDAKernelCallExprClass:
     case Stmt::OpaqueValueExprClass:
     case Stmt::AsTypeExprClass:
Index: clang/lib/Serialization/ASTWriterStmt.cpp
===================================================================
--- clang/lib/Serialization/ASTWriterStmt.cpp
+++ clang/lib/Serialization/ASTWriterStmt.cpp
@@ -1144,13 +1144,6 @@
   Code = serialization::EXPR_VA_ARG;
 }
 
-void ASTStmtWriter::VisitVAArgPackExpr(VAArgPackExpr *E) {
-  VisitExpr(E);
-  Record.AddSourceLocation(E->getBuiltinLoc());
-  Record.AddSourceLocation(E->getRParenLoc());
-  Code = serialization::EXPR_VA_ARG_PACK;
-}
-
 void ASTStmtWriter::VisitSourceLocExpr(SourceLocExpr *E) {
   VisitExpr(E);
   Record.AddDeclRef(cast_or_null<Decl>(E->getParentContext()));
Index: clang/lib/Serialization/ASTReaderStmt.cpp
===================================================================
--- clang/lib/Serialization/ASTReaderStmt.cpp
+++ clang/lib/Serialization/ASTReaderStmt.cpp
@@ -1284,12 +1284,6 @@
   E->setIsMicrosoftABI(Record.readInt());
 }
 
-void ASTStmtReader::VisitVAArgPackExpr(VAArgPackExpr *E) {
-  VisitExpr(E);
-  E->setBuiltinLoc(readSourceLocation());
-  E->setRParenLoc(readSourceLocation());
-}
-
 void ASTStmtReader::VisitSourceLocExpr(SourceLocExpr *E) {
   VisitExpr(E);
   E->ParentContext = readDeclAs<DeclContext>();
@@ -2960,10 +2954,6 @@
       S = new (Context) VAArgExpr(Empty);
       break;
 
-    case EXPR_VA_ARG_PACK:
-      S = new (Context) VAArgPackExpr(Empty);
-      break;
-
     case EXPR_SOURCE_LOC:
       S = new (Context) SourceLocExpr(Empty);
       break;
Index: clang/lib/Sema/TreeTransform.h
===================================================================
--- clang/lib/Sema/TreeTransform.h
+++ clang/lib/Sema/TreeTransform.h
@@ -3248,11 +3248,6 @@
     return getSema().BuildSourceLocExpr(Kind, BuiltinLoc, RPLoc, ParentContext);
   }
 
-  ExprResult RebuildVAArgPackExpr(SourceLocation BuiltinLoc,
-                                  SourceLocation RPLoc) {
-    return getSema().BuildVAArgPackExpr (BuiltinLoc, RPLoc);
-  }
-
   /// Build a new Objective-C boxed expression.
   ///
   /// By default, performs semantic analysis to build the new expression.
@@ -11184,14 +11179,6 @@
                                            getSema().CurContext);
 }
 
-template <typename Derived>
-ExprResult TreeTransform<Derived>::TransformVAArgPackExpr(VAArgPackExpr *E) {
-  if (!getDerived().AlwaysRebuild())
-    return E;
-
-  return getDerived().RebuildVAArgPackExpr(E->getBeginLoc(), E->getEndLoc());
-}
-
 template<typename Derived>
 ExprResult
 TreeTransform<Derived>::TransformCUDAKernelCallExpr(CUDAKernelCallExpr *E) {
Index: clang/lib/Sema/SemaExpr.cpp
===================================================================
--- clang/lib/Sema/SemaExpr.cpp
+++ clang/lib/Sema/SemaExpr.cpp
@@ -15621,17 +15621,6 @@
   return new (Context) VAArgExpr(BuiltinLoc, E, TInfo, RPLoc, T, IsMS);
 }
 
-ExprResult Sema::ActOnVAArgPack(SourceLocation BuiltinLoc, SourceLocation RPLoc) {
-  return BuildVAArgPackExpr(BuiltinLoc, RPLoc);
-}
-
-ExprResult Sema::BuildVAArgPackExpr(SourceLocation BuiltinLoc, SourceLocation RPLoc) {
-  QualType VaListType = Context.getBuiltinVaListType();
-  llvm::errs() << __FUNCTION__ << "\n";
-  //return ExprError();
-  return new (Context) VAArgPackExpr(BuiltinLoc, RPLoc, VaListType);
-}
-
 ExprResult Sema::ActOnGNUNullExpr(SourceLocation TokenLoc) {
   // The type of __null will be int or long, depending on the size of
   // pointers on the target.
Index: clang/lib/Sema/SemaExceptionSpec.cpp
===================================================================
--- clang/lib/Sema/SemaExceptionSpec.cpp
+++ clang/lib/Sema/SemaExceptionSpec.cpp
@@ -1282,7 +1282,6 @@
   case Expr::StmtExprClass:
   case Expr::ConvertVectorExprClass:
   case Expr::VAArgExprClass:
-  case Expr::VAArgPackExprClass:
     return canSubStmtsThrow(*this, S);
 
   case Expr::CompoundLiteralExprClass:
Index: clang/lib/Parse/ParseExpr.cpp
===================================================================
--- clang/lib/Parse/ParseExpr.cpp
+++ clang/lib/Parse/ParseExpr.cpp
@@ -30,7 +30,6 @@
 #include "clang/Sema/Scope.h"
 #include "clang/Sema/TypoCorrection.h"
 #include "llvm/ADT/SmallVector.h"
-#include <iostream>
 using namespace clang;
 
 /// Simple precedence-based parser for binary/ternary operators.
@@ -1296,7 +1295,6 @@
     Res = ParseAvailabilityCheckExpr(Tok.getLocation());
     break;
   case tok::kw___builtin_va_arg:
-  case tok::kw___builtin_va_arg_pack:
   case tok::kw___builtin_offsetof:
   case tok::kw___builtin_choose_expr:
   case tok::kw___builtin_astype: // primary-expression: [OCL] as_type()
@@ -2669,18 +2667,6 @@
                                          ConsumeParen());
     break;
   }
-  case tok::kw___builtin_va_arg_pack: {
-    std::cout << "OMG BUILTIN VA ARG PACK" << std::endl;
-    if (Tok.isNot(tok::r_paren)) {
-      Diag(Tok, diag::err_expected) << tok::r_paren;
-      SkipUntil(tok::r_paren, StopAtSemi);
-    }
-
-    // Parse
-
-    Res = Actions.ActOnVAArgPack(StartLoc, ConsumeParen());
-    break;
-  }
   case tok::kw___builtin_COLUMN:
   case tok::kw___builtin_FILE:
   case tok::kw___builtin_FUNCTION:
Index: clang/lib/CodeGen/CodeGenFunction.h
===================================================================
--- clang/lib/CodeGen/CodeGenFunction.h
+++ clang/lib/CodeGen/CodeGenFunction.h
@@ -3772,7 +3772,6 @@
   LValue EmitCallExprLValue(const CallExpr *E);
   // Note: only available for agg return types
   LValue EmitVAArgExprLValue(const VAArgExpr *E);
-  LValue EmitVAArgPackExprLValue(const VAArgPackExpr *E);
   LValue EmitDeclRefLValue(const DeclRefExpr *E);
   LValue EmitStringLiteralLValue(const StringLiteral *E);
   LValue EmitObjCEncodeExprLValue(const ObjCEncodeExpr *E);
Index: clang/lib/CodeGen/CGExprAgg.cpp
===================================================================
--- clang/lib/CodeGen/CGExprAgg.cpp
+++ clang/lib/CodeGen/CGExprAgg.cpp
@@ -203,7 +203,6 @@
   }
 
   void VisitVAArgExpr(VAArgExpr *E);
-  void VisitVAArgPackExpr(VAArgPackExpr *E);
 
   void EmitInitializationToLValue(Expr *E, LValue Address);
   void EmitNullInitializationToLValue(LValue Address);
@@ -1289,26 +1288,6 @@
   EmitFinalDestCopy(VE->getType(), CGF.MakeAddrLValue(ArgPtr, VE->getType()));
 }
 
-
-#include <iostream>
-void AggExprEmitter::VisitVAArgPackExpr(VAArgPackExpr *E) {
-  std::cout << "EMITTING VA ARG PACK EXPR"  << std::endl;
-  //Address ArgValue = Address::invalid();
-  //Address ArgPtr = CGF.EmitVAArg(VE, ArgValue);
-
-  //CGF.EmitVAArg(
-
-  // If EmitVAArg fails, emit an error.
-  //if (!ArgPtr.isValid()) {
-    //CGF.ErrorUnsupported(VE, "aggregate va_arg expression");
-    //return;
-  //}
-
-  //EmitFinalDestCopy(VE->getType(), CGF.MakeAddrLValue(ArgPtr, VE->getType()));
-
-}
-
-
 void AggExprEmitter::VisitCXXBindTemporaryExpr(CXXBindTemporaryExpr *E) {
   // Ensure that we have a slot, but if we already do, remember
   // whether it was externally destructed.
Index: clang/lib/CodeGen/CGExpr.cpp
===================================================================
--- clang/lib/CodeGen/CGExpr.cpp
+++ clang/lib/CodeGen/CGExpr.cpp
@@ -40,7 +40,6 @@
 #include "llvm/Transforms/Utils/SanitizerStats.h"
 
 #include <string>
-#include <iostream>
 
 using namespace clang;
 using namespace CodeGen;
@@ -1314,9 +1313,6 @@
     return EmitLValue(cast<CXXRewrittenBinaryOperator>(E)->getSemanticForm());
   case Expr::VAArgExprClass:
     return EmitVAArgExprLValue(cast<VAArgExpr>(E));
-  case Expr::VAArgPackExprClass:
-    std::cout << __FUNCTION__ << std::endl;
-    return EmitVAArgPackExprLValue(cast<VAArgPackExpr>(E));
   case Expr::DeclRefExprClass:
     return EmitDeclRefLValue(cast<DeclRefExpr>(E));
   case Expr::ConstantExprClass: {
@@ -4998,10 +4994,6 @@
   return MakeNaturalAlignPointeeAddrLValue(RV.getScalarVal(), E->getType());
 }
 
-LValue CodeGenFunction::EmitVAArgPackExprLValue(const VAArgPackExpr *E) {
-  return EmitAggExprToLValue(E);
-}
-
 LValue CodeGenFunction::EmitVAArgExprLValue(const VAArgExpr *E) {
   // FIXME: This shouldn't require another copy.
   return EmitAggExprToLValue(E);
Index: clang/lib/AST/StmtProfile.cpp
===================================================================
--- clang/lib/AST/StmtProfile.cpp
+++ clang/lib/AST/StmtProfile.cpp
@@ -1324,10 +1324,6 @@
   VisitExpr(S);
 }
 
-void StmtProfiler::VisitVAArgPackExpr(const VAArgPackExpr *S) {
-  VisitExpr(S);
-}
-
 void StmtProfiler::VisitInitListExpr(const InitListExpr *S) {
   if (S->getSyntacticForm()) {
     VisitInitListExpr(S->getSyntacticForm());
Index: clang/lib/AST/StmtPrinter.cpp
===================================================================
--- clang/lib/AST/StmtPrinter.cpp
+++ clang/lib/AST/StmtPrinter.cpp
@@ -1652,10 +1652,6 @@
   OS << ")";
 }
 
-void StmtPrinter::VisitVAArgPackExpr(VAArgPackExpr *Node) {
-  OS << "__builtin_va_arg_pack()";
-}
-
 void StmtPrinter::VisitPseudoObjectExpr(PseudoObjectExpr *Node) {
   PrintExpr(Node->getSyntacticForm());
 }
Index: clang/lib/AST/ItaniumMangle.cpp
===================================================================
--- clang/lib/AST/ItaniumMangle.cpp
+++ clang/lib/AST/ItaniumMangle.cpp
@@ -3983,7 +3983,6 @@
   case Expr::ArrayTypeTraitExprClass:
   case Expr::ExpressionTraitExprClass:
   case Expr::VAArgExprClass:
-  case Expr::VAArgPackExprClass:
   case Expr::CUDAKernelCallExprClass:
   case Expr::AsTypeExprClass:
   case Expr::PseudoObjectExprClass:
Index: clang/lib/AST/ExprConstant.cpp
===================================================================
--- clang/lib/AST/ExprConstant.cpp
+++ clang/lib/AST/ExprConstant.cpp
@@ -15079,7 +15079,6 @@
   case Expr::ImplicitValueInitExprClass:
   case Expr::ParenListExprClass:
   case Expr::VAArgExprClass:
-  case Expr::VAArgPackExprClass:
   case Expr::AddrLabelExprClass:
   case Expr::StmtExprClass:
   case Expr::CXXMemberCallExprClass:
Index: clang/lib/AST/ExprClassification.cpp
===================================================================
--- clang/lib/AST/ExprClassification.cpp
+++ clang/lib/AST/ExprClassification.cpp
@@ -401,9 +401,6 @@
   case Expr::VAArgExprClass:
     return ClassifyUnnamed(Ctx, E->getType());
 
-  case Expr::VAArgPackExprClass:
-    return ClassifyUnnamed(Ctx, E->getType());
-
   case Expr::DesignatedInitExprClass:
     return ClassifyInternal(Ctx, cast<DesignatedInitExpr>(E)->getInit());
 
Index: clang/lib/AST/Expr.cpp
===================================================================
--- clang/lib/AST/Expr.cpp
+++ clang/lib/AST/Expr.cpp
@@ -2412,9 +2412,6 @@
   case AtomicExprClass:
     return false;
 
-  case VAArgPackExprClass:
-    return true;
-
   case ConditionalOperatorClass: {
     // If only one of the LHS or RHS is a warning, the operator might
     // be being used for control flow. Only warn if both the LHS and
@@ -3345,9 +3342,6 @@
     // These always have a side-effect.
     return true;
 
-  case VAArgPackExprClass:
-    return false;
-
   case StmtExprClass: {
     // StmtExprs have a side-effect if any substatement does.
     SideEffectFinder Finder(Ctx, IncludePossibleEffects);
Index: clang/include/clang/Serialization/ASTBitCodes.h
===================================================================
--- clang/include/clang/Serialization/ASTBitCodes.h
+++ clang/include/clang/Serialization/ASTBitCodes.h
@@ -1669,8 +1669,6 @@
       /// A VAArgExpr record.
       EXPR_VA_ARG,
 
-      EXPR_VA_ARG_PACK,
-
       /// An AddrLabelExpr record.
       EXPR_ADDR_LABEL,
 
Index: clang/include/clang/Sema/Sema.h
===================================================================
--- clang/include/clang/Sema/Sema.h
+++ clang/include/clang/Sema/Sema.h
@@ -5474,9 +5474,6 @@
   ExprResult BuildVAArgExpr(SourceLocation BuiltinLoc, Expr *E,
                             TypeSourceInfo *TInfo, SourceLocation RPLoc);
 
-  ExprResult ActOnVAArgPack(SourceLocation BuiltinLoc, SourceLocation RPLoc);
-  ExprResult BuildVAArgPackExpr(SourceLocation BuiltinLoc, SourceLocation RPLoc);
-
   // __builtin_LINE(), __builtin_FUNCTION(), __builtin_FILE(),
   // __builtin_COLUMN()
   ExprResult ActOnSourceLocExpr(SourceLocExpr::IdentKind Kind,
Index: clang/include/clang/Basic/TokenKinds.def
===================================================================
--- clang/include/clang/Basic/TokenKinds.def
+++ clang/include/clang/Basic/TokenKinds.def
@@ -434,7 +434,6 @@
 // type trait.
 TYPE_TRAIT_2(__builtin_types_compatible_p, TypeCompatible, KEYNOCXX)
 KEYWORD(__builtin_va_arg            , KEYALL)
-KEYWORD(__builtin_va_arg_pack       , KEYALL)
 KEYWORD(__extension__               , KEYALL)
 KEYWORD(__float128                  , KEYALL)
 KEYWORD(__imag                      , KEYALL)
Index: clang/include/clang/Basic/StmtNodes.td
===================================================================
--- clang/include/clang/Basic/StmtNodes.td
+++ clang/include/clang/Basic/StmtNodes.td
@@ -95,7 +95,6 @@
 def ArrayInitIndexExpr : StmtNode<Expr>;
 def ParenListExpr : StmtNode<Expr>;
 def VAArgExpr : StmtNode<Expr>;
-def VAArgPackExpr : StmtNode<Expr>;
 def GenericSelectionExpr : StmtNode<Expr>;
 def PseudoObjectExpr : StmtNode<Expr>;
 def SourceLocExpr : StmtNode<Expr>;
Index: clang/include/clang/AST/RecursiveASTVisitor.h
===================================================================
--- clang/include/clang/AST/RecursiveASTVisitor.h
+++ clang/include/clang/AST/RecursiveASTVisitor.h
@@ -2482,8 +2482,6 @@
   TRY_TO(TraverseTypeLoc(S->getWrittenTypeInfo()->getTypeLoc()));
 })
 
-DEF_TRAVERSE_STMT(VAArgPackExpr, {})
-
 DEF_TRAVERSE_STMT(CXXTemporaryObjectExpr, {
   // This is called for code like 'return T()' where T is a class type.
   TRY_TO(TraverseTypeLoc(S->getTypeSourceInfo()->getTypeLoc()));
Index: clang/include/clang/AST/Expr.h
===================================================================
--- clang/include/clang/AST/Expr.h
+++ clang/include/clang/AST/Expr.h
@@ -4597,43 +4597,6 @@
   }
 };
 
-class VAArgPackExpr : public Expr {
-  SourceLocation BuiltinLoc;
-  SourceLocation RParenLoc;
-public:
-  VAArgPackExpr(SourceLocation BLoc, SourceLocation RPLoc, QualType t) :
-      Expr(VAArgPackExprClass, t, VK_RValue, OK_Ordinary),
-      BuiltinLoc(BLoc), RParenLoc(RPLoc) {
-    setDependence(ExprDependence::None);
-  }
-  explicit VAArgPackExpr(EmptyShell Empty)
-      : Expr(VAArgPackExprClass, Empty) {}
-
-  SourceLocation getBuiltinLoc() const { return BuiltinLoc; }
-  void setBuiltinLoc(SourceLocation L) { BuiltinLoc = L; }
-
-  SourceLocation getRParenLoc() const { return RParenLoc; }
-  void setRParenLoc(SourceLocation L) { RParenLoc = L; }
-
-  SourceLocation getBeginLoc() const LLVM_READONLY { return BuiltinLoc; }
-  SourceLocation getEndLoc() const LLVM_READONLY { return RParenLoc; }
-
-  static bool classof(const Stmt *T) {
-    return T->getStmtClass() == VAArgPackExprClass;
-  }
-
-  SourceLocation getLocation() const { return BuiltinLoc; }
-
-  child_range children() {
-    return child_range(child_iterator(), child_iterator());
-  }
-
-  const_child_range children() const {
-    return const_child_range(child_iterator(), child_iterator());
-  }
-
-};
-
 /// Represents a function call to one of __builtin_LINE(), __builtin_COLUMN(),
 /// __builtin_FUNCTION(), or __builtin_FILE().
 class SourceLocExpr final : public Expr {
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
  • [PATCH] D84846: [MC] Add suppo... Timm Bäder via Phabricator via cfe-commits

Reply via email to