// file chkopts.h: options for the Code Checker

//************ DON'T have comments after the pragmas **********

#ifdef __opencxx 

// turn off to ignore errs in own includes
// die pascal header files verursachen tonnen von meldungen
// #pragma -C ChkOwnIncs-

// Occ doesn't know where we are and how to do...
#define WIN32 
#define __try		try
#define __except(x) catch(...)
#define namespace struct	// no joke: s. "Eff.C++, 2.Ed." p.120

// NOT predef. in Occ (hihi!)
const bool true;
const bool false;

// avoid many "NoEffect" warnings
#define SLOW

// these are regarded as booleans too
#pragma -C OwnBools+pasbool
#pragma -C OwnBools+boolean
#pragma -C OwnBools+BOOLEAN
#pragma -C OwnBools+teo00_Bool
#pragma -C OwnBools+BOOL

// these are (not) regarded as keywords for S25a/KeywordRedef and 
// S68c/SyntElemMac (see also file ras_init.cpp)
#pragma -C Keywords-signed
#pragma -C SyntElems-inline

// these are regarded as valid global type (etc.) names for B04/InvGlbName
#pragma -C ValTypNames+pasbool
//?#pragma -C ValFctNames+main ++++ Geht nicht ++++ Uwe
#pragma -C ValMacNames+global
#pragma -C ValMacNames+externPascal
#pragma -C ValMacNames+externC
#pragma -C ValMacNames+true
#pragma -C ValMacNames+false
#pragma -C ValMacNames+FALSE
#pragma -C ValMacNames+TRUE

// some CRTL fct.s found
#pragma -C OwnDirs+%OWNINCS%
//?#pragma -C OwnDirs+D:\\v72\\sys\\wrk\\incl
#pragma -C GoodRtlNames+memcmp
#pragma -C GoodRtlNames+memset
#pragma -C GoodRtlNames+memcpy
#pragma -C GoodRtlNames+strncpy
#pragma -C GoodRtlNames+strlen
#pragma -C GoodRtlNames+toupper
#pragma -C GoodRtlNames+_itoa
#pragma -C OnlyOnce+
//
// +++ Uwe 29.4.99
#pragma -C GoodRtlNames+cbd600_Node
#pragma -C GoodRtlNames+cbd600_Tree
#pragma -C GoodRtlNames+cbd300_InvCurrentBasis
#pragma -C GoodRtlNames+cbd300_InvCurrent
#pragma -C GoodRtlNames+cbd300_InvSubTreeCurrent
//

// macros regarded as trace / assert for S66a1/TrcSideFx & S66a2/TrcInvFct
#pragma -C TrcNames+RANGE_CHECK_DBG_MEO00
#pragma -C TrcNames+ASSERT_DBG_MEO00
#pragma -C TrcNames+PRECONDITION_DBG_MEO00
#pragma -C TrcNames+POSTCONDITION_DBG_MEO00
#pragma -C TrcNames+SWITCH_ERROR_DBG_MEO00
#pragma -C TrcNames+ROUTINE_DBG_MEO00
#pragma -C TrcNames+TRACEF_MEO00

// function calls accepted inside trace/assert macros
#pragma -C TrcValFcts+feo00rangeCheck
#pragma -C TrcValFcts+sqlk_assert

// variables etc. accepted inside  macros
#pragma -C MacValVars+sp3m_error
#pragma -C MacValVars+csp3_n_fbm
#pragma -C MacValVars+TRUE

#ifndef RAS

// +++ Uwe 29.4.99
#pragma -C MissBraces-
#pragma -C CppInCFct-
#pragma -C MaxFctLocs-
#pragma -C MaxExprDepth=8
#pragma -C MaxStmtDepth=8
#pragma -C MaxCtldLocs-
#pragma -C MaxFctLocs-
#ifdef UWE
#pragma -C MaxFctLocs=200
#pragma -C MaxExprDepth=10
#pragma -C MaxStmtDepth=8
#pragma -C MaxCtldLocs=137
#pragma -C MaxFctLocs=221
#endif

// +++ RAS gem. EMail Freitag, 11. Juni 1999 15:49
//?#pragma -C ProtoUseVoid- ++++ Geht nicht ++++ Uwe
#pragma -C BadRtlRef-
#pragma -C InvGlbName-
#pragma -C BaseNoData-
//s.o.! #pragma -C MissBraces-
#pragma -C MixBoolOpn-
#pragma -C MixPtrInt-
#pragma -C RdfNonVirt:I

#endif

#ifdef CHK_TST

//?#pragma -C ChkOwnIncs-

// too many...
#pragma -C NonBoolArg-
#pragma -C OldCCast-
#pragma -C FullFctProto-
#pragma -C MissParens-
#pragma -C MixPtrInt-
#pragma -C MissBraces-
#pragma -C ClsMmbInit-
#pragma -C BInMmbInit-
#pragma -C PubDataMem-
#pragma -C NoCpyAsgn-
#pragma -C NoCpyCtor-
#pragma -C MacInvPrm-
#pragma -C MacMissPar-
#pragma -C InvGlbName- 
#pragma -C PostfNUsed- 
#pragma -C UseConst- 
#pragma -C NonConstRet- 
#pragma -C NoBinAss- 
#pragma -C RdfNonVirt-
#pragma -C CppInCFct-
#pragma -C InvNumConst- 

// maximum values found in test files...
#pragma -C MaxExprDepth=10
#pragma -C MaxStmtDepth=8
#pragma -C MaxCtldLocs=137
#pragma -C MaxFctLocs=221

#else

// open problems
#pragma -C MacAskDD- 
#pragma -C IntErr01- 
#pragma -C IntErr07- 

#endif

#endif
