[#LLVM_DECLARE_REGISTRY_EX] = LLVM_DECLARE_REGISTRY_EX :mrdocs: 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>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- #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`). [.small]#Created with https://www.mrdocs.com[MrDocs]#