diff options
author | Saleem Abdulrasool <compnerd@compnerd.org> | 2016-07-15 20:41:10 +0000 |
---|---|---|
committer | Saleem Abdulrasool <compnerd@compnerd.org> | 2016-07-15 20:41:10 +0000 |
commit | 848b378c986629f3fce061cf71fec40fa112a086 (patch) | |
tree | ac16862f6cb37cb733b2b23af85a538d04305a25 /utils | |
parent | dd81efed3dd160a634137661a215704fd373d41f (diff) |
Sema: support __declspec(dll*) on ObjC interfaces
Extend the __declspec(dll*) attribute to cover ObjC interfaces. This was
requested by Microsoft for their ObjC support. Cover both import and export.
This only adds the semantic analysis portion of the support, code-generation
still remains outstanding. Add some basic initial documentation on the
attributes that were previously empty. Tweak the previous tests to use the
relative expected-warnings to make the tests easier to read.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@275610 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
-rw-r--r-- | utils/TableGen/ClangAttrEmitter.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/utils/TableGen/ClangAttrEmitter.cpp b/utils/TableGen/ClangAttrEmitter.cpp index 1186d16ba2..50102af33a 100644 --- a/utils/TableGen/ClangAttrEmitter.cpp +++ b/utils/TableGen/ClangAttrEmitter.cpp @@ -2653,6 +2653,15 @@ static std::string CalculateDiagnostic(const Record &S) { return "(S.getLangOpts().CPlusPlus ? ExpectedFunctionVariableOrClass : " "ExpectedVariableOrFunction)"; + case Func | Var | Class | ObjCInterface: + return "(S.getLangOpts().CPlusPlus" + " ? ((S.getLangOpts().ObjC1 || S.getLangOpts().ObjC2)" + " ? ExpectedFunctionVariableClassOrObjCInterface" + " : ExpectedFunctionVariableOrClass)" + " : ((S.getLangOpts().ObjC1 || S.getLangOpts().ObjC2)" + " ? ExpectedFunctionVariableOrObjCInterface" + " : ExpectedVariableOrFunction))"; + case ObjCMethod | ObjCProp: return "ExpectedMethodOrProperty"; case ObjCProtocol | ObjCInterface: return "ExpectedObjectiveCInterfaceOrProtocol"; |