blob: a7e18714e8b3f7a7f01e24fda002a46c36de0861 [file] [log] [blame]
Charles Davis3a811f12010-05-25 19:52:27 +00001//===----- CGCXXABI.h - Interface to C++ ABIs -------------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// This provides an abstract class for C++ code generation. Concrete subclasses
11// of this implement code generation for specific C++ ABIs.
12//
13//===----------------------------------------------------------------------===//
14
15#ifndef CLANG_CODEGEN_CXXABI_H
16#define CLANG_CODEGEN_CXXABI_H
17
18namespace clang {
19namespace CodeGen {
20 class CodeGenModule;
21 class MangleContext;
22
23/// Implements C++ ABI-specific code generation functions.
24class CXXABI {
25public:
26 virtual ~CXXABI();
27
28 /// Gets the mangle context.
29 virtual MangleContext &getMangleContext() = 0;
30};
31
32/// Creates an instance of a C++ ABI class.
33CXXABI *CreateItaniumCXXABI(CodeGenModule &CGM);
34}
35}
36
37#endif