[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