cdisp12.c

来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 718 行 · 第 1/2 页

C
718
字号
#include "fail.h"
#include <string.h>

void *operator new( unsigned, void *p )
{
    return p;
}

#pragma inline_depth(0)

struct B3;
B3 *B3_OK;
void set_B3( B3 *p )
{
    if( B3_OK ) {
	if( B3_OK != p ) fail(__LINE__);
    }
    B3_OK = p;
}

struct E9;
E9 *E9_OK;
void set_E9( E9 *p )
{
    if( E9_OK ) {
	if( E9_OK != p ) fail(__LINE__);
    }
    E9_OK = p;
}

struct A1 {
    int __u;
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
};
struct A2 {
    int __u;
    virtual void foo() {}
    virtual void bar() {}
};
struct B3 : A1, A2 {
    int __u;
    virtual void foo() { if( this != B3_OK ) fail(__LINE__); }
    B3() {
	B3 *p = this;
	set_B3( p );
	A2 *pA2 = this;
	pA2->foo();
    }
};
struct B4 {
    int __u;
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
};
struct C5 : B4, B3 {
    int __u;
    C5() {
	B3 *p = this;
	set_B3( p );
	A2 *pA2 = this;
	pA2->foo();
    }
};
struct C6 {
    int __u;
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
};
struct D7 : C6, C5 {
    int __u;
    D7() {
	B3 *p = this;
	set_B3( p );
	A2 *pA2 = this;
	pA2->foo();
    }
};

struct E8 {
    int __u;
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
};
void hook() {
    static int h;
    ++h;
}
struct E9 : virtual D7 {
    int __u;
    virtual void __u() {}
    virtual void foo() { if( this != E9_OK ) fail(__LINE__); }
    E9() {
	E9 *p = this;
	set_E9( p );
	A2 *pA2 = this;
	hook();
	pA2->foo();
	B3 *pB3 = this;
	pB3->foo();
    }
};
struct F10 {
    int __u;
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
};
struct F11 : E8, E9 {
    int __u;
    virtual void __u() {}
    F11() {
	E9 *p = this;
	set_E9( p );
	A2 *pA2 = this;
	pA2->foo();
    }
};
struct G12 {
    int __u;
    virtual void __u() {}
};
struct G13 : F10, F11 {
    G13() {
	E9 *p = this;
	set_E9( p );
	A2 *pA2 = this;
	pA2->foo();
    }
    int __u;
    virtual void __u() {}
    int __u;
    virtual void __u() {}
    virtual void __u() {}
    int __u;
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    int __u;
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}
    virtual void __u() {}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?