From 6e52514c5deb9f2ce145228a55c5644539977489 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Tue, 27 Dec 2011 12:18:28 +0000 Subject: constexpr: support for evaluation and codegen of typeid constants. llvm-svn: 147290 --- clang/lib/CodeGen/CGExprConstant.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'clang/lib/CodeGen/CGExprConstant.cpp') diff --git a/clang/lib/CodeGen/CGExprConstant.cpp b/clang/lib/CodeGen/CGExprConstant.cpp index 136b7139108..1bd94295d3f 100644 --- a/clang/lib/CodeGen/CGExprConstant.cpp +++ b/clang/lib/CodeGen/CGExprConstant.cpp @@ -934,6 +934,15 @@ public: return CGM.GetAddrOfGlobalBlock(cast(E), FunctionName.c_str()); } + case Expr::CXXTypeidExprClass: { + CXXTypeidExpr *Typeid = cast(E); + QualType T; + if (Typeid->isTypeOperand()) + T = Typeid->getTypeOperand(); + else + T = Typeid->getExprOperand()->getType(); + return CGM.GetAddrOfRTTIDescriptor(T); + } } return 0; -- cgit v1.2.3