1//===----- ABI.h - ABI related declarations ---------------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8///
9/// \file
10/// Enums/classes describing ABI related information about constructors,
11/// destructors and thunks.
12///
13//===----------------------------------------------------------------------===//
14
15#ifndef LLVM_CLANG_BASIC_ABI_H
16#define LLVM_CLANG_BASIC_ABI_H
17
18#include "llvm/Support/DataTypes.h"
19#include <cstring>
20
21namespace clang {
22
23/// C++ constructor types.
24enum CXXCtorType {
25 Ctor_Complete, ///< Complete object ctor
26 Ctor_Base, ///< Base object ctor
27 Ctor_Comdat, ///< The COMDAT used for ctors
28 Ctor_CopyingClosure, ///< Copying closure variant of a ctor
29 Ctor_DefaultClosure, ///< Default closure variant of a ctor
30};
31
32/// C++ destructor types.
33enum CXXDtorType {
34 Dtor_Deleting, ///< Deleting dtor
35 Dtor_Complete, ///< Complete object dtor
36 Dtor_Base, ///< Base object dtor
37 Dtor_Comdat ///< The COMDAT used for dtors
38};
39
40} // end namespace clang
41
42#endif
43

source code of clang/include/clang/Basic/ABI.h