From 6bcb07ad7152237597f2bd1cde4d6a3075e8ac0c Mon Sep 17 00:00:00 2001 From: Charles Davis Date: Thu, 19 Aug 2010 02:18:14 +0000 Subject: Add some enum goodness as requested by Chris. Now instead of storing the active C++ ABI as a raw string, we store it as an enum. This should improve performance somewhat. And yes, this time, I started from a clean build directory, and all the tests passed. :) llvm-svn: 111507 --- clang/lib/AST/ASTContext.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'clang/lib/AST/ASTContext.cpp') diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp index f53a50e3145..95893a46164 100644 --- a/clang/lib/AST/ASTContext.cpp +++ b/clang/lib/AST/ASTContext.cpp @@ -137,10 +137,12 @@ ASTContext::getCanonicalTemplateTemplateParmDecl( CXXABI *ASTContext::createCXXABI(const TargetInfo &T) { if (!LangOpts.CPlusPlus) return NULL; - if (T.getCXXABI() == "microsoft") - return CreateMicrosoftCXXABI(*this); - else + switch (T.getCXXABI()) { + default: return CreateItaniumCXXABI(*this); + case CXXABI_Microsoft: + return CreateMicrosoftCXXABI(*this); + } } ASTContext::ASTContext(const LangOptions& LOpts, SourceManager &SM, -- cgit v1.2.3