aboutsummaryrefslogtreecommitdiff
path: root/lib/AST
diff options
context:
space:
mode:
authorDan Gohman <sunfish@mozilla.com>2014-04-25 15:51:06 -0700
committerDan Gohman <sunfish@mozilla.com>2014-04-25 15:51:06 -0700
commitad32fdb927a37dba26cb8b56f3a6b11667fe6584 (patch)
treebc20982c69cde047d94c9a11b5a50e1d9d6545eb /lib/AST
parent926efa5d923dfd9555270a2bbb156bc30ce35fc9 (diff)
Introduce an Emscripten C++ ABI.
Emscripten uses the Itanium C++ ABI for most things, except that it uses ARM C++ ABI pointers to member functions, to avoid the overhead of aligning functions.
Diffstat (limited to 'lib/AST')
-rw-r--r--lib/AST/ASTContext.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp
index 176aec53a2..b77977f7fd 100644
--- a/lib/AST/ASTContext.cpp
+++ b/lib/AST/ASTContext.cpp
@@ -651,6 +651,7 @@ CXXABI *ASTContext::createCXXABI(const TargetInfo &T) {
case TargetCXXABI::GenericARM:
case TargetCXXABI::iOS:
return CreateARMCXXABI(*this);
+ case TargetCXXABI::Emscripten: // Same as Itanium at this level
case TargetCXXABI::GenericAArch64: // Same as Itanium at this level
case TargetCXXABI::GenericItanium:
return CreateItaniumCXXABI(*this);
@@ -7940,6 +7941,7 @@ MangleContext *ASTContext::createMangleContext() {
case TargetCXXABI::GenericAArch64:
case TargetCXXABI::GenericItanium:
case TargetCXXABI::GenericARM:
+ case TargetCXXABI::Emscripten:
case TargetCXXABI::iOS:
return createItaniumMangleContext(*this, getDiagnostics());
case TargetCXXABI::Microsoft: