|
|
1.1 root 1: /*
2: * The function of the compiler may be modified by the high/low
3: * setting of variant bits.
4: * This header file defines:
5: * the machine independent variant bits,
6: * the base of the machine dependent variant bits,
7: * the maximum number of variant bits,
8: * the typedef of the variant array,
9: * and a macro to access the variant bits.
10: * The variants are passed to the compiler phases as a string of
11: * hexidecimal digits.
12: */
13: #ifndef YATC
14: #define YATC 0
15: #endif
16: #define VMBASE 32 /* Base of machine dependent variants */
17: #define VMAXIM 48 /* Least non-inclusive upper bound */
18: #define VGRANU 8 /* 8 bits per slot */
19: #define isvariant(x) ((variant[(x)/VGRANU]&(1<<((x)%VGRANU))) != 0)
20: #define notvariant(x) ((variant[(x)/VGRANU]&(1<<((x)%VGRANU))) == 0)
21: #define setvariant(x) (variant[(x)/VGRANU]|=(1<<((x)%VGRANU)))
22: #define clrvariant(x) (variant[(x)/VGRANU]&=~(1<<((x)%VGRANU)))
23: #define chgvariant(x) (variant[(x)/VGRANU]^=(1<<((x)%VGRANU)))
24: typedef char VARIANT[VMAXIM/VGRANU];
25: #if !YATC
26: extern VARIANT variant;
27: #endif
28:
29: /* Strict checking */
30: #define VSUREG 0 /* Unused registers */
31: #define VSUVAR 1 /* Unused variables */
32: #define VSNREG 2 /* Declared register but auto */
33: #define VSRTVC 3 /* Risky things in truth contexts */
34: #define VSMEMB 4 /* Strict member checking */
35: #define VSBOOK 5 /* Only things in K and R */
36: #define VSLCON 6 /* Long constants */
37: #define VSPVAL 7 /* Pointer value truncated */
38: #define VSCCON 8 /* Constant conditional */
39:
40: #define VSTAT 10 /* Statistics */
41: #define VWIDEN 11 /* Widened parameter or function value */
42: #define VPEEP 12 /* Enable peephole code */
43: #define VCOMM 13 /* Permit .comm data items */
44: #define VQUIET 14 /* No messages */
45: #define VPSTR 15 /* Strings are pure */
46: #define VROM 16 /* ROM code */
47: #define VASM 17 /* Output assembly code */
48:
49: /* Debugging variants */
50: #define VLINES 18 /* Line # items */
51: #define VTYPES 19 /* Type items */
52: #define VDEBUG 20 /* Static and local symbols */
53: #define VDSYMB 20 /* Preferred synonym for VDEBUG */
54: #define VCALLS 21 /* Parameter types - UNIMPLEMENTED */
55: #define VLIB 22 /* Suppress typedefs in debug info */
56:
57: #define VPROF 23 /* Profile on */
58: #define VALIEN 24 /* Allow calls to/from alien conventions */
59: #define VSINU 25 /* Implement struct-in-union rules, not UCB
60: * member resolution rules. */
61: #define VNOOPT 26 /* Preserve code order in optimization */
62: #define VCHASM 27 /* C style assembler */
63: #define VCPPE 28 /* run cpp in -E mode */
64: #define VCPP 29 /* run cpp */
65: #define VTPROF 30 /* generate code table profiling */
66: #define V3GRAPH 31 /* translate tri-graphs */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.