diff options
author | Anders Carlsson <andersca@mac.com> | 2009-09-15 05:13:45 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2009-09-15 05:13:45 +0000 |
commit | c0a2fd8f092722c8f78b566ac4506a21437040e9 (patch) | |
tree | 0322c3cf0751338df3b6eb6c64acd72a619d0b32 | |
parent | 7f9e646b7ed47bc8e9a60031ad0c2b55031e2077 (diff) |
Get rid of the CastInfo struct.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81839 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/clang/AST/Expr.h | 21 | ||||
-rw-r--r-- | include/clang/AST/ExprCXX.h | 8 | ||||
-rw-r--r-- | lib/Sema/Sema.cpp | 5 | ||||
-rw-r--r-- | lib/Sema/Sema.h | 5 |
4 files changed, 14 insertions, 25 deletions
diff --git a/include/clang/AST/Expr.h b/include/clang/AST/Expr.h index 3e122c1f53..7b60c00d5b 100644 --- a/include/clang/AST/Expr.h +++ b/include/clang/AST/Expr.h @@ -1377,20 +1377,11 @@ public: 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 @@ protected: // 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 @@ class ImplicitCastExpr : public CastExpr { 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 @@ class ExplicitCastExpr : public CastExpr { 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) diff --git a/include/clang/AST/ExprCXX.h b/include/clang/AST/ExprCXX.h index 5e3dec7705..0435d21483 100644 --- a/include/clang/AST/ExprCXX.h +++ b/include/clang/AST/ExprCXX.h @@ -113,9 +113,9 @@ private: 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 @@ public: /// @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; diff --git a/lib/Sema/Sema.cpp b/lib/Sema/Sema.cpp index 080266c75f..474ea16e57 100644 --- a/lib/Sema/Sema.cpp +++ b/lib/Sema/Sema.cpp @@ -210,7 +210,7 @@ Sema::Sema(Preprocessor &pp, ASTContext &ctxt, ASTConsumer &consumer, /// 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 @@ void Sema::ImpCastExprToType(Expr *&Expr, QualType Ty, 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) { diff --git a/lib/Sema/Sema.h b/lib/Sema/Sema.h index d2034ce246..bb2a5b229c 100644 --- a/lib/Sema/Sema.h +++ b/lib/Sema/Sema.h @@ -3289,9 +3289,8 @@ public: /// 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 |