[cfe-commits] r81839 - in /cfe/trunk: include/clang/AST/Expr.h include/clang/AST/ExprCXX.h lib/Sema/Sema.cpp lib/Sema/Sema.h

Anders Carlsson andersca at mac.com
Mon Sep 14 22:13:45 PDT 2009


Author: andersca
Date: Tue Sep 15 00:13:45 2009
New Revision: 81839

URL: http://llvm.org/viewvc/llvm-project?rev=81839&view=rev
Log:
Get rid of the CastInfo struct.

Modified:
    cfe/trunk/include/clang/AST/Expr.h
    cfe/trunk/include/clang/AST/ExprCXX.h
    cfe/trunk/lib/Sema/Sema.cpp
    cfe/trunk/lib/Sema/Sema.h

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

==============================================================================
--- cfe/trunk/include/clang/AST/Expr.h (original)
+++ cfe/trunk/include/clang/AST/Expr.h Tue Sep 15 00:13:45 2009
@@ -1377,20 +1377,11 @@
     CK_PointerToIntegral
   };
 
-  struct CastInfo {
-    const CastKind Kind;
-
-    // FIXME: This should assert that the CastKind does not require extra
-    // information.
-    CastInfo(CastKind Kind)
-      : Kind(Kind) { }
-  };
-
 private:
   CastKind Kind;
   Stmt *Op;
 protected:
-  CastExpr(StmtClass SC, QualType ty, const CastInfo &info, Expr *op) :
+  CastExpr(StmtClass SC, QualType ty, const CastKind kind, Expr *op) :
     Expr(SC, ty,
          // Cast expressions are type-dependent if the type is
          // dependent (C++ [temp.dep.expr]p3).
@@ -1398,7 +1389,7 @@
          // Cast expressions are value-dependent if the type is
          // dependent or if the subexpression is value-dependent.
          ty->isDependentType() || (op && op->isValueDependent())),
-    Kind(info.Kind), Op(op) {}
+    Kind(kind), Op(op) {}
 
   /// \brief Construct an empty cast.
   CastExpr(StmtClass SC, EmptyShell Empty)
@@ -1451,8 +1442,8 @@
   bool LvalueCast;
 
 public:
-  ImplicitCastExpr(QualType ty, const CastInfo &info, Expr *op, bool Lvalue) :
-    CastExpr(ImplicitCastExprClass, ty, info, op), LvalueCast(Lvalue) { }
+  ImplicitCastExpr(QualType ty, CastKind kind, Expr *op, bool Lvalue) :
+    CastExpr(ImplicitCastExprClass, ty, kind, op), LvalueCast(Lvalue) { }
 
   /// \brief Construct an empty implicit cast.
   explicit ImplicitCastExpr(EmptyShell Shell)
@@ -1497,9 +1488,9 @@
   QualType TypeAsWritten;
 
 protected:
-  ExplicitCastExpr(StmtClass SC, QualType exprTy, const CastInfo &info,
+  ExplicitCastExpr(StmtClass SC, QualType exprTy, CastKind kind,
                    Expr *op, QualType writtenTy)
-    : CastExpr(SC, exprTy, info, op), TypeAsWritten(writtenTy) {}
+    : CastExpr(SC, exprTy, kind, op), TypeAsWritten(writtenTy) {}
 
   /// \brief Construct an empty explicit cast.
   ExplicitCastExpr(StmtClass SC, EmptyShell Shell)

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

==============================================================================
--- cfe/trunk/include/clang/AST/ExprCXX.h (original)
+++ cfe/trunk/include/clang/AST/ExprCXX.h Tue Sep 15 00:13:45 2009
@@ -113,9 +113,9 @@
   SourceLocation Loc; // the location of the casting op
 
 protected:
-  CXXNamedCastExpr(StmtClass SC, QualType ty, const CastInfo &info, Expr *op,
+  CXXNamedCastExpr(StmtClass SC, QualType ty, CastKind kind, Expr *op,
                    QualType writtenTy, SourceLocation l)
-    : ExplicitCastExpr(SC, ty, info, op, writtenTy), Loc(l) {}
+    : ExplicitCastExpr(SC, ty, kind, op, writtenTy), Loc(l) {}
 
 public:
   const char *getCastName() const;
@@ -149,9 +149,9 @@
 /// @c static_cast<int>(1.0).
 class CXXStaticCastExpr : public CXXNamedCastExpr {
 public:
-  CXXStaticCastExpr(QualType ty, const CastInfo &info, Expr *op,
+  CXXStaticCastExpr(QualType ty, CastKind kind, Expr *op,
                     QualType writtenTy, SourceLocation l)
-    : CXXNamedCastExpr(CXXStaticCastExprClass, ty, info, op, writtenTy, l) {}
+    : CXXNamedCastExpr(CXXStaticCastExprClass, ty, kind, op, writtenTy, l) {}
 
   static bool classof(const Stmt *T) {
     return T->getStmtClass() == CXXStaticCastExprClass;

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

==============================================================================
--- cfe/trunk/lib/Sema/Sema.cpp (original)
+++ cfe/trunk/lib/Sema/Sema.cpp Tue Sep 15 00:13:45 2009
@@ -210,7 +210,7 @@
 /// If there is already an implicit cast, merge into the existing one.
 /// If isLvalue, the result of the cast is an lvalue.
 void Sema::ImpCastExprToType(Expr *&Expr, QualType Ty,
-                             const CastExpr::CastInfo &Info, bool isLvalue) {
+                             CastExpr::CastKind Kind, bool isLvalue) {
   QualType ExprTy = Context.getCanonicalType(Expr->getType());
   QualType TypeTy = Context.getCanonicalType(Ty);
 
@@ -233,8 +233,7 @@
     ImpCast->setType(Ty);
     ImpCast->setLvalueCast(isLvalue);
   } else
-    Expr = new (Context) ImplicitCastExpr(Ty, Info, Expr,
-                                          isLvalue);
+    Expr = new (Context) ImplicitCastExpr(Ty, Kind, Expr, isLvalue);
 }
 
 void Sema::DeleteExpr(ExprTy *E) {

Modified: cfe/trunk/lib/Sema/Sema.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/Sema.h?rev=81839&r1=81838&r2=81839&view=diff

==============================================================================
--- cfe/trunk/lib/Sema/Sema.h (original)
+++ cfe/trunk/lib/Sema/Sema.h Tue Sep 15 00:13:45 2009
@@ -3289,9 +3289,8 @@
   /// ImpCastExprToType - If Expr is not of type 'Type', insert an implicit
   /// cast.  If there is already an implicit cast, merge into the existing one.
   /// If isLvalue, the result of the cast is an lvalue.
-  void ImpCastExprToType(Expr *&Expr, QualType Type,
-                         const CastExpr::CastInfo &Info =
-                         CastExpr::CastInfo(CastExpr::CK_Unknown),
+  void ImpCastExprToType(Expr *&Expr, QualType Type, 
+                         CastExpr::CastKind Kind = CastExpr::CK_Unknown,
                          bool isLvalue = false);
 
   // UsualUnaryConversions - promotes integers (C99 6.3.1.1p2) and converts





More information about the cfe-commits mailing list