- /*===-- llvm-c/Comdat.h - Module Comdat C Interface -------------*- C++ -*-===*\ 
- |*                                                                            *| 
- |* Part of the LLVM Project, under the Apache License v2.0 with LLVM          *| 
- |* Exceptions.                                                                *| 
- |* See https://llvm.org/LICENSE.txt for license information.                  *| 
- |* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception                    *| 
- |*                                                                            *| 
- |*===----------------------------------------------------------------------===*| 
- |*                                                                            *| 
- |* This file defines the C interface to COMDAT.                               *| 
- |*                                                                            *| 
- \*===----------------------------------------------------------------------===*/ 
-   
- #ifndef LLVM_C_COMDAT_H 
- #define LLVM_C_COMDAT_H 
-   
- #include "llvm-c/ExternC.h" 
- #include "llvm-c/Types.h" 
-   
- LLVM_C_EXTERN_C_BEGIN 
-   
- /** 
-  * @defgroup LLVMCCoreComdat Comdats 
-  * @ingroup LLVMCCore 
-  * 
-  * @{ 
-  */ 
-   
- typedef enum { 
-   LLVMAnyComdatSelectionKind,        ///< The linker may choose any COMDAT. 
-   LLVMExactMatchComdatSelectionKind, ///< The data referenced by the COMDAT must 
-                                      ///< be the same. 
-   LLVMLargestComdatSelectionKind,    ///< The linker will choose the largest 
-                                      ///< COMDAT. 
-   LLVMNoDeduplicateComdatSelectionKind, ///< No deduplication is performed. 
-   LLVMSameSizeComdatSelectionKind ///< The data referenced by the COMDAT must be 
-                                   ///< the same size. 
- } LLVMComdatSelectionKind; 
-   
- /** 
-  * Return the Comdat in the module with the specified name. It is created 
-  * if it didn't already exist. 
-  * 
-  * @see llvm::Module::getOrInsertComdat() 
-  */ 
- LLVMComdatRef LLVMGetOrInsertComdat(LLVMModuleRef M, const char *Name); 
-   
- /** 
-  * Get the Comdat assigned to the given global object. 
-  * 
-  * @see llvm::GlobalObject::getComdat() 
-  */ 
- LLVMComdatRef LLVMGetComdat(LLVMValueRef V); 
-   
- /** 
-  * Assign the Comdat to the given global object. 
-  * 
-  * @see llvm::GlobalObject::setComdat() 
-  */ 
- void LLVMSetComdat(LLVMValueRef V, LLVMComdatRef C); 
-   
- /* 
-  * Get the conflict resolution selection kind for the Comdat. 
-  * 
-  * @see llvm::Comdat::getSelectionKind() 
-  */ 
- LLVMComdatSelectionKind LLVMGetComdatSelectionKind(LLVMComdatRef C); 
-   
- /* 
-  * Set the conflict resolution selection kind for the Comdat. 
-  * 
-  * @see llvm::Comdat::setSelectionKind() 
-  */ 
- void LLVMSetComdatSelectionKind(LLVMComdatRef C, LLVMComdatSelectionKind Kind); 
-   
- /** 
-  * @} 
-  */ 
-   
- LLVM_C_EXTERN_C_END 
-   
- #endif 
-