14#ifndef LLVM_CLANG_BASIC_LINKAGE_H
15#define LLVM_CLANG_BASIC_LINKAGE_H
17#include "llvm/Support/ErrorHandling.h"
93 llvm_unreachable(
"Linkage hasn't been computed!");
103 llvm_unreachable(
"Unhandled Linkage enum");
138 return L1 < L2 ? L1 : L2;
Describes a module or submodule.
The JSON file list parser is used to communicate input to InstallAPI.
GVALinkage
A more specific kind of linkage than enum Linkage.
@ GVA_AvailableExternally
Linkage minLinkage(Linkage L1, Linkage L2)
Compute the minimum linkage given two linkages.
Linkage getFormalLinkage(Linkage L)
LanguageLinkage
Describes the different kinds of language linkage (C++ [dcl.link]) that an entity may have.
bool isUniqueGVALinkage(GVALinkage L)
Do we know that this will be the only definition of this symbol (excluding inlining-only definitions)...
Linkage
Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have.
@ VisibleNone
No linkage according to the standard, but is visible from other translation units because of types de...
@ None
No linkage, which means that the entity is unique and can only be referred to from within its scope.
@ UniqueExternal
External linkage within a unique namespace.
@ Internal
Internal linkage, which indicates that the entity can be referred to from within the translation unit...
@ External
External linkage, which indicates that the entity can be referred to from other translation units.
@ Module
Module linkage, which indicates that the entity can be referred to from other translation units withi...
bool isDiscardableGVALinkage(GVALinkage L)
bool isExternalFormalLinkage(Linkage L)
@ None
The alignment was not explicit in code.
bool isExternallyVisible(Linkage L)