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