diff options
| author | Fariborz Jahanian <fjahanian@apple.com> | 2014-07-16 16:16:04 +0000 |
|---|---|---|
| committer | Fariborz Jahanian <fjahanian@apple.com> | 2014-07-16 16:16:04 +0000 |
| commit | 451b92ab6ab6148cbdfc057379aee13ac3a3b08d (patch) | |
| tree | bd444a867ae62b9ac0f5691e58211d58b95206df /clang/lib/Sema | |
| parent | f9ad21d22afa9a36c200138593993aa531422dd6 (diff) | |
| download | bcm5719-llvm-451b92ab6ab6148cbdfc057379aee13ac3a3b08d.tar.gz bcm5719-llvm-451b92ab6ab6148cbdfc057379aee13ac3a3b08d.zip | |
Objective-C. Introducing __attribute__((objc_runtime_name("runtimename"))
to be applied to class or protocols. This will direct IRGen
for Objective-C metadata to use the new name in various places
where class and protocol names are needed.
rdar:// 17631257
llvm-svn: 213167
Diffstat (limited to 'clang/lib/Sema')
| -rw-r--r-- | clang/lib/Sema/SemaDeclAttr.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaDeclAttr.cpp b/clang/lib/Sema/SemaDeclAttr.cpp index c87942d0331..29be7033202 100644 --- a/clang/lib/Sema/SemaDeclAttr.cpp +++ b/clang/lib/Sema/SemaDeclAttr.cpp @@ -3597,6 +3597,16 @@ static void handleObjCDesignatedInitializer(Sema &S, Decl *D, Attr.getAttributeSpellingListIndex())); } +static void handleObjCRuntimeName(Sema &S, Decl *D, + const AttributeList &Attr) { + StringRef MetaDataName; + if (!S.checkStringLiteralArgumentAttr(Attr, 0, MetaDataName)) + return; + D->addAttr(::new (S.Context) + ObjCRuntimeNameAttr(Attr.getRange(), S.Context, + MetaDataName, 0)); +} + static void handleObjCOwnershipAttr(Sema &S, Decl *D, const AttributeList &Attr) { if (hasDeclarator(D)) return; @@ -4246,6 +4256,10 @@ static void ProcessDeclAttribute(Sema &S, Scope *scope, Decl *D, handleObjCDesignatedInitializer(S, D, Attr); break; + case AttributeList::AT_ObjCRuntimeName: + handleObjCRuntimeName(S, D, Attr); + break; + case AttributeList::AT_CFAuditedTransfer: handleCFAuditedTransferAttr(S, D, Attr); break; |

