Lines Matching full:linkage
31 /// @brief An enumeration for the kinds of linkage for global values.
48 ExternalWeakLinkage,///< ExternalWeak linkage description.
61 LinkageTypes linkage, const Twine &Name)
63 Linkage(linkage), Visibility(DefaultVisibility), Alignment(0),
70 // Linkage and Visibility from turning into negative values.
71 LinkageTypes Linkage : 5; // The linkage of this global
120 static bool isExternalLinkage(LinkageTypes Linkage) {
121 return Linkage == ExternalLinkage;
123 static bool isAvailableExternallyLinkage(LinkageTypes Linkage) {
124 return Linkage == AvailableExternallyLinkage;
126 static bool isLinkOnceLinkage(LinkageTypes Linkage) {
127 return Linkage == LinkOnceAnyLinkage || Linkage == LinkOnceODRLinkage;
129 static bool isWeakLinkage(LinkageTypes Linkage) {
130 return Linkage == WeakAnyLinkage || Linkage == WeakODRLinkage;
132 static bool isAppendingLinkage(LinkageTypes Linkage) {
133 return Linkage == AppendingLinkage;
135 static bool isInternalLinkage(LinkageTypes Linkage) {
136 return Linkage == InternalLinkage;
138 static bool isPrivateLinkage(LinkageTypes Linkage) {
139 return Linkage == PrivateLinkage;
141 static bool isLinkerPrivateLinkage(LinkageTypes Linkage) {
142 return Linkage == LinkerPrivateLinkage;
144 static bool isLinkerPrivateWeakLinkage(LinkageTypes Linkage) {
145 return Linkage == LinkerPrivateWeakLinkage;
147 static bool isLinkerPrivateWeakDefAutoLinkage(LinkageTypes Linkage) {
148 return Linkage == LinkerPrivateWeakDefAutoLinkage;
150 static bool isLocalLinkage(LinkageTypes Linkage) {
151 return isInternalLinkage(Linkage) || isPrivateLinkage(Linkage) ||
152 isLinkerPrivateLinkage(Linkage) || isLinkerPrivateWeakLinkage(Linkage) ||
153 isLinkerPrivateWeakDefAutoLinkage(Linkage);
155 static bool isDLLImportLinkage(LinkageTypes Linkage) {
156 return Linkage == DLLImportLinkage;
158 static bool isDLLExportLinkage(LinkageTypes Linkage) {
159 return Linkage == DLLExportLinkage;
161 static bool isExternalWeakLinkage(LinkageTypes Linkage) {
162 return Linkage == ExternalWeakLinkage;
164 static bool isCommonLinkage(LinkageTypes Linkage) {
165 return Linkage == CommonLinkage;
170 /// weak linkage then the code defining it may be replaced by different code.
171 static bool mayBeOverridden(LinkageTypes Linkage) {
172 return Linkage == WeakAnyLinkage ||
173 Linkage == LinkOnceAnyLinkage ||
174 Linkage == CommonLinkage ||
175 Linkage == ExternalWeakLinkage ||
176 Linkage == LinkerPrivateWeakLinkage ||
177 Linkage == LinkerPrivateWeakDefAutoLinkage;
184 static bool isWeakForLinker(LinkageTypes Linkage) {
185 return Linkage == AvailableExternallyLinkage ||
186 Linkage == WeakAnyLinkage ||
187 Linkage == WeakODRLinkage ||
188 Linkage == LinkOnceAnyLinkage ||
189 Linkage == LinkOnceODRLinkage ||
190 Linkage == CommonLinkage ||
191 Linkage == ExternalWeakLinkage ||
192 Linkage == LinkerPrivateWeakLinkage ||
193 Linkage == LinkerPrivateWeakDefAutoLinkage;
196 bool hasExternalLinkage() const { return isExternalLinkage(Linkage); }
198 return isAvailableExternallyLinkage(Linkage);
201 return isLinkOnceLinkage(Linkage);
204 return isWeakLinkage(Linkage);
206 bool hasAppendingLinkage() const { return isAppendingLinkage(Linkage); }
207 bool hasInternalLinkage() const { return isInternalLinkage(Linkage); }
208 bool hasPrivateLinkage() const { return isPrivateLinkage(Linkage); }
209 bool hasLinkerPrivateLinkage() const { return isLinkerPrivateLinkage(Linkage); }
211 return isLinkerPrivateWeakLinkage(Linkage);
214 return isLinkerPrivateWeakDefAutoLinkage(Linkage);
216 bool hasLocalLinkage() const { return isLocalLinkage(Linkage); }
217 bool hasDLLImportLinkage() const { return isDLLImportLinkage(Linkage); }
218 bool hasDLLExportLinkage() const { return isDLLExportLinkage(Linkage); }
219 bool hasExternalWeakLinkage() const { return isExternalWeakLinkage(Linkage); }
220 bool hasCommonLinkage() const { return isCommonLinkage(Linkage); }
222 void setLinkage(LinkageTypes LT) { Linkage = LT; }
223 LinkageTypes getLinkage() const { return Linkage; }
225 bool mayBeOverridden() const { return mayBeOverridden(Linkage); }
227 bool isWeakForLinker() const { return isWeakForLinker(Linkage); }