Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:36:48

0001 //===----- ABI.h - ABI related declarations ---------------------*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 ///
0009 /// \file
0010 /// Enums/classes describing ABI related information about constructors,
0011 /// destructors and thunks.
0012 ///
0013 //===----------------------------------------------------------------------===//
0014 
0015 #ifndef LLVM_CLANG_BASIC_ABI_H
0016 #define LLVM_CLANG_BASIC_ABI_H
0017 
0018 #include "llvm/Support/DataTypes.h"
0019 #include <cstring>
0020 
0021 namespace clang {
0022 
0023 /// C++ constructor types.
0024 enum CXXCtorType {
0025   Ctor_Complete,       ///< Complete object ctor
0026   Ctor_Base,           ///< Base object ctor
0027   Ctor_Comdat,         ///< The COMDAT used for ctors
0028   Ctor_CopyingClosure, ///< Copying closure variant of a ctor
0029   Ctor_DefaultClosure, ///< Default closure variant of a ctor
0030 };
0031 
0032 /// C++ destructor types.
0033 enum CXXDtorType {
0034     Dtor_Deleting, ///< Deleting dtor
0035     Dtor_Complete, ///< Complete object dtor
0036     Dtor_Base,     ///< Base object dtor
0037     Dtor_Comdat    ///< The COMDAT used for dtors
0038 };
0039 
0040 } // end namespace clang
0041 
0042 #endif