/* Only needs to compile. */ /* { dg-additional-options "-std=c++11" } */ #ifdef __cplusplus enum X { x = 5, y }; #endif __attribute__((__objc_root_class__)) @interface A - (id) :(id)arg0 :(id)arg1; - (id) m:(id)arg0 :(id)arg1 :(id)arg2 :(id)arg3; #ifdef __cplusplus - (id) n:(X)arg0 :(X)arg1 :(id)arg2 :(id)arg3; #endif @end @implementation A - (id) :(id)arg0 :(id)arg1 { return arg1; } - (id) m:(id)arg0 :(id)arg1 :(id)arg2 :(id)arg3 { return arg2; } #ifdef __cplusplus - (id) n:(X)arg0 :(X)arg1 :(id)arg2 :(id)arg3 { return arg2; } #endif @end id f1 (A *x) { return [x:x:x]; } id f2 (A *x) { return [x m:x:x:x:x]; } #ifdef __cplusplus id f3 (A *x) { return [x n:X::x:X::y:x:x]; } #endif