1 //===----- CGCXXABI.h - Interface to C++ ABIs -------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This provides an abstract class for C++ code generation. Concrete subclasses
11 // of this implement code generation for specific C++ ABIs.
13 //===----------------------------------------------------------------------===//
15 #ifndef CLANG_CODEGEN_CXXABI_H
16 #define CLANG_CODEGEN_CXXABI_H
23 /// Implements C++ ABI-specific code generation functions.
28 /// Gets the mangle context.
29 virtual MangleContext &getMangleContext() = 0;
32 /// Creates an instance of a C++ ABI class.
33 CGCXXABI *CreateARMCXXABI(CodeGenModule &CGM);
34 CGCXXABI *CreateItaniumCXXABI(CodeGenModule &CGM);
35 CGCXXABI *CreateMicrosoftCXXABI(CodeGenModule &CGM);