ctor01.c
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 52 行
C
52 行
#include "fail.h"
// 96/04/12 -- J.W.Welch -- cast to references now should fail
int error_occurred;
struct V {
V();
};
V::V() {
}
struct D : virtual V {
D(int);
};
D::D( int x ) {
if( x != 0xaaaa ) {
fail(__LINE__);
++error_occurred;
}
}
int zap_parm_regs( int a, int b, int c, int d )
{
return a + b + c + d;
}
void foo( D const &, unsigned line )
{
if( error_occurred ) {
fail(line);
error_occurred = 0;
}
}
int main()
{
zap_parm_regs( -1, -2, -3, -4 );
#if __WATCOM_REVISION__ < 8
foo( (D&)0xaaaa, __LINE__ );
zap_parm_regs( -1, -2, -3, -4 );
#endif
foo( (D)0xaaaa, __LINE__);
zap_parm_regs( -1, -2, -3, -4 );
foo( (D)0xaaaa, __LINE__);
zap_parm_regs( -1, -2, -3, -4 );
#if __WATCOM_REVISION__ < 8
foo( (D&)0xaaaa, __LINE__);
zap_parm_regs( -1, -2, -3, -4 );
#endif
_PASS;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?