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 | 9dfa3ce94f4bfa6e22626ea3092d361ef2dde0a3 (patch) | |
| tree | 5322657ee6bd680cffa75dcb7d8ecef9fec046c7 /clang/lib/CodeGen | |
| parent | 9aeaa4d65074c3f4b25551f7b20adf5c87734ad7 (diff) | |
| download | bcm5719-llvm-9dfa3ce94f4bfa6e22626ea3092d361ef2dde0a3.tar.gz bcm5719-llvm-9dfa3ce94f4bfa6e22626ea3092d361ef2dde0a3.zip | |
Type traits intrinsic implementation: __is_base_of(T, U)
New AST node introduced: BinaryTypeTraitExpr; to be reused for more intrinsics.
llvm-svn: 121074
Diffstat (limited to 'clang/lib/CodeGen')
| -rw-r--r-- | clang/lib/CodeGen/CGExprScalar.cpp | 4 | ||||
| -rw-r--r-- | clang/lib/CodeGen/Mangle.cpp | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGExprScalar.cpp b/clang/lib/CodeGen/CGExprScalar.cpp index 841f1299d24..62a18dbeabf 100644 --- a/clang/lib/CodeGen/CGExprScalar.cpp +++ b/clang/lib/CodeGen/CGExprScalar.cpp @@ -353,6 +353,10 @@ public: return llvm::ConstantInt::get(Builder.getInt1Ty(), E->getValue()); } + Value *VisitBinaryTypeTraitExpr(const BinaryTypeTraitExpr *E) { + return llvm::ConstantInt::get(Builder.getInt1Ty(), E->getValue()); + } + Value *VisitCXXPseudoDestructorExpr(const CXXPseudoDestructorExpr *E) { // C++ [expr.pseudo]p1: // The result shall only be used as the operand for the function call diff --git a/clang/lib/CodeGen/Mangle.cpp b/clang/lib/CodeGen/Mangle.cpp index 24790b8df20..b95573227b6 100644 --- a/clang/lib/CodeGen/Mangle.cpp +++ b/clang/lib/CodeGen/Mangle.cpp @@ -1664,6 +1664,7 @@ void CXXNameMangler::mangleExpression(const Expr *E, unsigned Arity) { case Expr::StmtExprClass: case Expr::TypesCompatibleExprClass: case Expr::UnaryTypeTraitExprClass: + case Expr::BinaryTypeTraitExprClass: case Expr::VAArgExprClass: case Expr::CXXUuidofExprClass: case Expr::CXXNoexceptExprClass: { |

