142ffdb32SFariborz Jahanian// RUN: %clang_cc1 -fsyntax-only -verify %s 2c6e68daaSAndy Gibbs// expected-no-diagnostics 342ffdb32SFariborz Jahanian 4*d05b01a8SNAKAMURA Takumi// REQUIRES: LP64 5*d05b01a8SNAKAMURA Takumi 642ffdb32SFariborz Jahanian@interface G 742ffdb32SFariborz Jahanian@end 842ffdb32SFariborz Jahanian 942ffdb32SFariborz Jahanian@interface F 1042ffdb32SFariborz Jahanian- (void)bar:(id *)objects; 1142ffdb32SFariborz Jahanian- (void)foo:(G**)objects; 1242ffdb32SFariborz Jahanian@end 1342ffdb32SFariborz Jahanian 1442ffdb32SFariborz Jahanian 1542ffdb32SFariborz Jahanianvoid a() { 1642ffdb32SFariborz Jahanian F *b; 1742ffdb32SFariborz Jahanian G **keys; 1842ffdb32SFariborz Jahanian [b bar:keys]; 1942ffdb32SFariborz Jahanian 2042ffdb32SFariborz Jahanian id *PID; 2142ffdb32SFariborz Jahanian [b foo:PID]; 2242ffdb32SFariborz Jahanian 2342ffdb32SFariborz Jahanian} 2442ffdb32SFariborz Jahanian 25e4151b59SFariborz Jahanian 26e4151b59SFariborz Jahanian// pr7936 27e4151b59SFariborz Jahanian@interface I1 @end 28e4151b59SFariborz Jahanian 29e4151b59SFariborz Jahanianclass Wrapper { 30e4151b59SFariborz Jahanianpublic: 31e4151b59SFariborz Jahanian operator id() const { return (id)_value; } 32e4151b59SFariborz Jahanian operator Class() const { return (Class)_value; } 33e4151b59SFariborz Jahanian operator I1*() const { return (I1*)_value; } 34e4151b59SFariborz Jahanian 35e4151b59SFariborz Jahanian bool Compare(id obj) { return *this == obj; } 36e4151b59SFariborz Jahanian bool CompareClass(Class obj) { return *this == obj; } 37e4151b59SFariborz Jahanian bool CompareI1(I1* obj) { return *this == obj; } 38e4151b59SFariborz Jahanian 39421ad5e1SArgyrios Kyrtzidis Wrapper &operator*(); 40421ad5e1SArgyrios Kyrtzidis Wrapper &operator[](int); 41421ad5e1SArgyrios Kyrtzidis Wrapper& operator->*(int); 42421ad5e1SArgyrios Kyrtzidis 43e4151b59SFariborz Jahanianprivate: 44e4151b59SFariborz Jahanian long _value; 45e4151b59SFariborz Jahanian}; 46e4151b59SFariborz Jahanian 47421ad5e1SArgyrios Kyrtzidisvoid f() { 48421ad5e1SArgyrios Kyrtzidis Wrapper w; 49421ad5e1SArgyrios Kyrtzidis w[0]; 50421ad5e1SArgyrios Kyrtzidis *w; 51421ad5e1SArgyrios Kyrtzidis w->*(0); 52421ad5e1SArgyrios Kyrtzidis} 53