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