pr35504.c
来自「用于进行gcc测试」· C语言 代码 · 共 148 行
C
148 行
// { dg-do run { target { { i?86-*-* x86_64-*-* } && ilp32 } } }#define ATTR0 __attribute__((__regparm__(0)))#define ATTR1 __attribute__((__regparm__(1)))#define ATTR2 __attribute__((__regparm__(2)))#define ATTR3 __attribute__((__regparm__(3)))#define ATTR4 __attribute__((__fastcall__))#define ATTR5 __attribute__((__stdcall__))#define ATTR6 __attribute__((__cdecl__))#define ATTR7extern "C" void abort (void);struct long_struct{ int a[3];};struct long_struct ret;class c3 *this3;class c1{ int val1;public: virtual void foo () { }};class c2{public: virtual ATTR0 struct long_struct method0 () { return ret; } virtual ATTR1 struct long_struct method1 () { return ret; } virtual ATTR2 struct long_struct method2 () { return ret; } virtual ATTR3 struct long_struct method3 () { return ret; } virtual ATTR4 struct long_struct method4 () { return ret; } virtual ATTR5 struct long_struct method5 () { return ret; } virtual ATTR6 struct long_struct method6 () { return ret; } virtual ATTR7 struct long_struct method7 () { return ret; }};class c3:c1, public c2{public: c3 () { this3 = this; } struct long_struct check_this (int a) { if (this3 != this) abort (); return ret; } virtual ATTR0 struct long_struct method0 () { return check_this (0); } virtual ATTR1 struct long_struct method1 () { return check_this (1); } virtual ATTR2 struct long_struct method2 () { return check_this (2); } virtual ATTR3 struct long_struct method3 () { return check_this (3); } virtual ATTR4 struct long_struct method4 () { return check_this (4); } virtual ATTR5 struct long_struct method5 () { return check_this (5); } virtual ATTR6 struct long_struct method6 () { return check_this (6); } virtual ATTR7 struct long_struct method7 () { return check_this (7); }};class c3 c3_instance;class c2 *c2_ptr = &c3_instance;intmain (){ c2_ptr->method0 (); c2_ptr->method1 (); c2_ptr->method2 (); c2_ptr->method3 (); c2_ptr->method4 (); c2_ptr->method5 (); c2_ptr->method6 (); c2_ptr->method7 (); return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?