зеркало из https://github.com/microsoft/clang-1.git
Specify linkage for Objective-C declarations.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101953 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
84688f2a21
Коммит
becc308ff3
|
@ -286,6 +286,29 @@ static Linkage getLinkageForNamespaceScopeDecl(const NamedDecl *D) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Linkage NamedDecl::getLinkage() const {
|
Linkage NamedDecl::getLinkage() const {
|
||||||
|
|
||||||
|
// Objective-C: treat all Objective-C declarations as having external
|
||||||
|
// linkage.
|
||||||
|
switch (getKind()) {
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
case Decl::ObjCAtDefsField:
|
||||||
|
case Decl::ObjCCategory:
|
||||||
|
case Decl::ObjCCategoryImpl:
|
||||||
|
case Decl::ObjCClass:
|
||||||
|
case Decl::ObjCCompatibleAlias:
|
||||||
|
case Decl::ObjCContainer:
|
||||||
|
case Decl::ObjCForwardProtocol:
|
||||||
|
case Decl::ObjCImplementation:
|
||||||
|
case Decl::ObjCInterface:
|
||||||
|
case Decl::ObjCIvar:
|
||||||
|
case Decl::ObjCMethod:
|
||||||
|
case Decl::ObjCProperty:
|
||||||
|
case Decl::ObjCPropertyImpl:
|
||||||
|
case Decl::ObjCProtocol:
|
||||||
|
return ExternalLinkage;
|
||||||
|
}
|
||||||
|
|
||||||
// Handle linkage for namespace-scope names.
|
// Handle linkage for namespace-scope names.
|
||||||
if (getDeclContext()->getLookupContext()->isFileContext())
|
if (getDeclContext()->getLookupContext()->isFileContext())
|
||||||
if (Linkage L = getLinkageForNamespaceScopeDecl(this))
|
if (Linkage L = getLinkageForNamespaceScopeDecl(this))
|
||||||
|
|
Загрузка…
Ссылка в новой задаче