First pass at abstracting out a class for the target C++ ABI.
llvm-svn: 173514
This commit is contained in:
@@ -52,10 +52,13 @@ using namespace CodeGen;
|
||||
static const char AnnotationSection[] = "llvm.metadata";
|
||||
|
||||
static CGCXXABI &createCXXABI(CodeGenModule &CGM) {
|
||||
switch (CGM.getContext().getTargetInfo().getCXXABI()) {
|
||||
case CXXABI_ARM: return *CreateARMCXXABI(CGM);
|
||||
case CXXABI_Itanium: return *CreateItaniumCXXABI(CGM);
|
||||
case CXXABI_Microsoft: return *CreateMicrosoftCXXABI(CGM);
|
||||
switch (CGM.getContext().getTargetInfo().getCXXABI().getKind()) {
|
||||
// For IR-generation purposes, there's no significant difference
|
||||
// between the ARM and iOS ABIs.
|
||||
case TargetCXXABI::GenericARM: return *CreateARMCXXABI(CGM);
|
||||
case TargetCXXABI::iOS: return *CreateARMCXXABI(CGM);
|
||||
case TargetCXXABI::GenericItanium: return *CreateItaniumCXXABI(CGM);
|
||||
case TargetCXXABI::Microsoft: return *CreateMicrosoftCXXABI(CGM);
|
||||
}
|
||||
|
||||
llvm_unreachable("invalid C++ ABI kind");
|
||||
|
||||
Reference in New Issue
Block a user