|
|
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.