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__attribute__((__objc_root_class__))
12@interface A
13- (id) :(id)arg0 :(id)arg1;
14- (id) m:(id)arg0 :(id)arg1 :(id)arg2 :(id)arg3;
15#ifdef __cplusplus
16- (id) n:(X)arg0 :(X)arg1 :(id)arg2 :(id)arg3;
17#endif
18@end
19
20@implementation A
21- (id) :(id)arg0 :(id)arg1
22{
23  return arg1;
24}
25- (id) m:(id)arg0 :(id)arg1 :(id)arg2 :(id)arg3
26{
27  return arg2;
28}
29#ifdef __cplusplus
30- (id) n:(X)arg0 :(X)arg1 :(id)arg2 :(id)arg3
31{
32  return arg2;
33}
34#endif
35@end
36
37id f1 (A *x)
38{
39  return [x:x:x];
40}
41
42id f2 (A *x)
43{
44  return [x m:x:x:x:x];
45}
46
47#ifdef __cplusplus
48id f3 (A *x)
49{
50  return [x n:X::x:X::y:x:x];
51}
52#endif
53