Annotation of coherent/d/bin/cc/c/h/var.h, revision 1.1.1.1

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 */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.