Variants of the registration macros that take an explicit export annotation (EXPORT_ABI) in place of the hard‐coded LLVM_ABI_EXPORT. Use these when a registry is owned by a component that is NOT part of the LLVM dylib. For example, a clang library that is statically linked (CLANG_LINK_CLANG_DYLIB OFF). With LLVM_ABI_EXPORT the getRegistryLinkListInstance accessor is unconditionally `dllexport`ed; when such a static component is embedded in a DLL that should only export its own API surface (e.g. libclang.dll), the accessor leaks into that DLL's export table and then collides on the link line of any tool that also links the static component directly.
Synopsis
Declared in <llvm/Support/Registry.h>
#define LLVM_DECLARE_REGISTRY_EX(EXPORT_ABI, REGISTRY_CLASS)
Description
EXPORT_ABI must export‐or‐be‐empty, NEVER dllimport, for the same reason LLVM_ABI_EXPORT is used here rather than LLVM_ABI: the definition may be in the same object, a static library, or an import library. CLANG_ABI_EXPORT satisfies this (it is empty under CLANG_BUILD_STATIC).
Created with MrDocs