1/* Only needs to compile. */ 2/* { dg-additional-options "-std=c++11" } */ 3 4#ifdef __cplusplus 5enum X { 6 x = 5, 7 y 8}; 9#endif 10 11#if __has_attribute(__objc_root_class__) 12__attribute__((__objc_root_class__)) 13#endif 14@interface A 15- (id) :(id)arg0 :(id)arg1; 16- (id) m:(id)arg0 :(id)arg1 :(id)arg2 :(id)arg3; 17#ifdef __cplusplus 18- (id) n:(X)arg0 :(X)arg1 :(id)arg2 :(id)arg3; 19#endif 20@end 21 22@implementation A 23- (id) :(id)arg0 :(id)arg1 24{ 25 return arg1; 26} 27- (id) m:(id)arg0 :(id)arg1 :(id)arg2 :(id)arg3 28{ 29 return arg2; 30} 31#ifdef __cplusplus 32- (id) n:(X)arg0 :(X)arg1 :(id)arg2 :(id)arg3 33{ 34 return arg2; 35} 36#endif 37@end 38 39id f1 (A *x) 40{ 41 return [x:x:x]; 42} 43 44id f2 (A *x) 45{ 46 return [x m:x:x:x:x]; 47} 48 49#ifdef __cplusplus 50id f3 (A *x) 51{ 52 return [x n:X::x:X::y:x:x]; 53} 54#endif 55