diff options
author | Francois Pichet <pichet2000@gmail.com> | 2010-12-07 00:08:36 +0000 |
---|---|---|
committer | Francois Pichet <pichet2000@gmail.com> | 2010-12-07 00:08:36 +0000 |
commit | 6ad6f2848d7652ab2991286eb48be440d3493b28 (patch) | |
tree | 3a11fabb88a3184176e7c1cd8aa5658c8b4633b3 /lib/AST/ExprConstant.cpp | |
parent | 1fd9e0def66fbd50e99be5ff87c9fd1c91c428ab (diff) |
Type traits intrinsic implementation: __is_base_of(T, U)
New AST node introduced: BinaryTypeTraitExpr; to be reused for more intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121074 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/ExprConstant.cpp')
-rw-r--r-- | lib/AST/ExprConstant.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/AST/ExprConstant.cpp b/lib/AST/ExprConstant.cpp index a79ae82a34..7479d9d9be 100644 --- a/lib/AST/ExprConstant.cpp +++ b/lib/AST/ExprConstant.cpp @@ -964,6 +964,10 @@ public: return Success(E->getValue(), E); } + bool VisitBinaryTypeTraitExpr(const BinaryTypeTraitExpr *E) { + return Success(E->getValue(), E); + } + bool VisitChooseExpr(const ChooseExpr *E) { return Visit(E->getChosenSubExpr(Info.Ctx)); } @@ -2526,6 +2530,7 @@ static ICEDiag CheckICE(const Expr* E, ASTContext &Ctx) { case Expr::CXXScalarValueInitExprClass: case Expr::TypesCompatibleExprClass: case Expr::UnaryTypeTraitExprClass: + case Expr::BinaryTypeTraitExprClass: case Expr::CXXNoexceptExprClass: return NoDiag(); case Expr::CallExprClass: |