diff options
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/lib/Sema/SemaDecl.cpp | 3 | ||||
| -rw-r--r-- | clang/test/SemaObjC/continuation-class-property.m | 20 | 
2 files changed, 22 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index 6196ea3f6cb..0e99f704768 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -7872,7 +7872,8 @@ Decl *Sema::ActOnTag(Scope *S, unsigned TagSpec, TagUseKind TUK,        // Find the context where we'll be declaring the tag.        // FIXME: We would like to maintain the current DeclContext as the        // lexical context, -      while (SearchDC->isRecord() || SearchDC->isTransparentContext()) +      while (SearchDC->isRecord() || SearchDC->isTransparentContext() || +             SearchDC->isObjCContainer())          SearchDC = SearchDC->getParent();        // Find the scope where we'll be declaring the tag. diff --git a/clang/test/SemaObjC/continuation-class-property.m b/clang/test/SemaObjC/continuation-class-property.m index d017ac23dce..7d95424a06c 100644 --- a/clang/test/SemaObjC/continuation-class-property.m +++ b/clang/test/SemaObjC/continuation-class-property.m @@ -41,3 +41,23 @@ typedef struct {  @property (readwrite) NSString *foo; // expected-error {{type of property 'NSString *' in continuation class does not match property type in primary class}}  @property (readwrite, strong) NSRect bar; // expected-error {{type of property 'NSRect' in continuation class does not match property type in primary class}}  @end + +// rdar://10655530 +struct S; +struct S1; +@interface STAdKitContext +@property (nonatomic, readonly, assign) struct evhttp_request *httpRequest; +@property (nonatomic, readonly, assign) struct S *httpRequest2; +@property (nonatomic, readonly, assign) struct S1 *httpRequest3; +@property (nonatomic, readonly, assign) struct S2 *httpRequest4; +@end + +struct evhttp_request; +struct S1; + +@interface STAdKitContext() +@property (nonatomic, readwrite, assign) struct evhttp_request *httpRequest; +@property (nonatomic, readwrite, assign) struct S *httpRequest2; +@property (nonatomic, readwrite, assign) struct S1 *httpRequest3; +@property (nonatomic, readwrite, assign) struct S2 *httpRequest4; +@end  | 

