ns30.c

来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 84 行

C
84
字号
#include "fail.h"

#if __WATCOM_REVISION__ >= 8
namespace JavaTools
{
};
namespace CF
{
    using namespace JavaTools;
};
namespace CF
{
    using namespace JavaTools;
};
namespace CF
{
    using namespace JavaTools;
};
namespace CF
{
    using namespace JavaTools;
};
namespace CF
{
    using namespace JavaTools;
};
namespace CF
{
    using namespace JavaTools;
};
using namespace JavaTools;
namespace
{
};
using namespace CF;

char a[1000];
unsigned curr = 0;

void * __cdecl operator new( unsigned x ) {
    unsigned off = curr;
    curr += x;
    return &a[off];
}
void  __cdecl operator delete( void *p ) {
    curr = (char*)p - a;
}
void * __cdecl operator new[]( unsigned x ) {
    unsigned off = curr;
    curr += x;
    return &a[off];
}
void  __cdecl operator delete[]( void *p ) {
    curr = (char*)p - a;
}

struct S {
    int x;
};

int main() {
    S v;

    v.x = 0;
    ((int&)v.x) |= 1;
    if( v.x != 1 ) _fail;
    ((int&)v.x) |= 2;
    if( v.x != 3 ) _fail;
    int *p = new int(1);
    if( *p != 1 ) _fail;
    if( p != (void*)&a[0] ) _fail;
    int *q = new int[10];
    if( *q != 0 ) _fail;
    if( q != (void*)&a[sizeof(int)] ) _fail;
    delete [] q;
    if( curr != sizeof(int) ) _fail;
    delete p;
    if( curr != 0 ) _fail;
    _PASS;
}
#else
ALWAYS_PASS
#endif

⌨️ 快捷键说明

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