diff options
Diffstat (limited to 'test/SemaObjCXX/references.mm')
-rw-r--r-- | test/SemaObjCXX/references.mm | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/test/SemaObjCXX/references.mm b/test/SemaObjCXX/references.mm index 70ce827..15033f6 100644 --- a/test/SemaObjCXX/references.mm +++ b/test/SemaObjCXX/references.mm @@ -24,3 +24,39 @@ int f2(A *a) { return f0(a.p1); // expected-error {{property 'p1' not found on object of type 'A *'}} } +// PR7740 +@class NSString; + +void f3(id); +void f4(NSString &tmpstr) { + f3(&tmpstr); +} + +// PR7741 +@protocol P1 @end +@protocol P2 @end +@protocol P3 @end +@interface foo<P1> {} @end +@interface bar : foo <P1, P2> {} @end +typedef bar baz; + +struct ToBar { + operator bar&() const; +}; + +void f5(foo&); +void f5b(foo<P1>&); +void f5c(foo<P2>&); +void f5d(foo<P3>&); +void f6(baz* x) { + f5(*x); + f5b(*x); + f5c(*x); + f5d(*x); + (void)((foo&)*x); + f5(ToBar()); + f5b(ToBar()); + f5c(ToBar()); + f5d(ToBar()); + (void)((foo&)ToBar()); +} |