From 7cbd8fb6b0c1bba7fdcf7a8f86c1b15f2837e322 Mon Sep 17 00:00:00 2001 From: Anders Carlsson Date: Sun, 22 Mar 2009 01:52:17 +0000 Subject: Keep track of whether a class is abstract or not. This is currently only used for the __is_abstract type trait. llvm-svn: 67461 --- clang/lib/AST/ExprCXX.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'clang/lib/AST/ExprCXX.cpp') diff --git a/clang/lib/AST/ExprCXX.cpp b/clang/lib/AST/ExprCXX.cpp index 53be84b20d2..5a9de19254d 100644 --- a/clang/lib/AST/ExprCXX.cpp +++ b/clang/lib/AST/ExprCXX.cpp @@ -214,6 +214,10 @@ bool UnaryTypeTraitExpr::EvaluateTrait() const { return cast(Record->getDecl())->isPolymorphic(); } return false; + case UTT_IsAbstract: + if (const RecordType *RT = QueriedType->getAsRecordType()) + return cast(RT->getDecl())->isAbstract(); + return false; } } -- cgit v1.2.3