1 // { dg-do run { target { { i?86-*-* x86_64-*-* } && ilp32 } } }
3 #define ATTR0 __attribute__((__regparm__(0)))
4 #define ATTR1 __attribute__((__regparm__(1)))
5 #define ATTR2 __attribute__((__regparm__(2)))
6 #define ATTR3 __attribute__((__regparm__(3)))
7 #define ATTR4 __attribute__((__fastcall__))
8 #define ATTR5 __attribute__((__stdcall__))
9 #define ATTR6 __attribute__((__cdecl__))
11 #define ATTR8 __attribute__((__thiscall__))
13 extern "C" void abort (void);
20 struct long_struct ret;
28 virtual void foo () { }
34 virtual ATTR0 struct long_struct method0 ()
39 virtual ATTR1 struct long_struct method1 ()
44 virtual ATTR2 struct long_struct method2 ()
49 virtual ATTR3 struct long_struct method3 ()
54 virtual ATTR4 struct long_struct method4 ()
59 virtual ATTR5 struct long_struct method5 ()
64 virtual ATTR6 struct long_struct method6 ()
69 virtual ATTR7 struct long_struct method7 ()
74 virtual ATTR8 struct long_struct method8 ()
80 class c3:c1, public c2
88 struct long_struct check_this (int a)
96 virtual ATTR0 struct long_struct method0 ()
98 return check_this (0);
101 virtual ATTR1 struct long_struct method1 ()
103 return check_this (1);
106 virtual ATTR2 struct long_struct method2 ()
108 return check_this (2);
111 virtual ATTR3 struct long_struct method3 ()
113 return check_this (3);
116 virtual ATTR4 struct long_struct method4 ()
118 return check_this (4);
121 virtual ATTR5 struct long_struct method5 ()
123 return check_this (5);
126 virtual ATTR6 struct long_struct method6 ()
128 return check_this (6);
131 virtual ATTR7 struct long_struct method7 ()
133 return check_this (7);
136 virtual ATTR8 struct long_struct method8 ()
138 return check_this (7);
142 class c3 c3_instance;
143 class c2 *c2_ptr = &c3_instance;