summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/ASTContext.cpp
diff options
context:
space:
mode:
authorCharles Davis <cdavis@mines.edu>2010-08-19 02:18:14 +0000
committerCharles Davis <cdavis@mines.edu>2010-08-19 02:18:14 +0000
commit6bcb07ad7152237597f2bd1cde4d6a3075e8ac0c (patch)
tree3f987886b301a564df0b45c0df08f2830fcebe0d /clang/lib/AST/ASTContext.cpp
parenta0734c5fbd0fbc7ebd7d212aee91690ba99759b0 (diff)
downloadbcm5719-llvm-6bcb07ad7152237597f2bd1cde4d6a3075e8ac0c.tar.gz
bcm5719-llvm-6bcb07ad7152237597f2bd1cde4d6a3075e8ac0c.zip
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
Diffstat (limited to 'clang/lib/AST/ASTContext.cpp')
-rw-r--r--clang/lib/AST/ASTContext.cpp8
1 files changed, 5 insertions, 3 deletions
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,
OpenPOWER on IntegriCloud