Annotation of GNUtools/cc/halfpic.h, revision 1.1

1.1     ! root        1: /* OSF/rose half-pic support definitions.
        !             2:    Copyright (C) 1992 Free Software Foundation, Inc.
        !             3: 
        !             4: This file is part of GNU CC.
        !             5: 
        !             6: GNU CC is free software; you can redistribute it and/or modify
        !             7: it under the terms of the GNU General Public License as published by
        !             8: the Free Software Foundation; either version 2, or (at your option)
        !             9: any later version.
        !            10: 
        !            11: GNU CC is distributed in the hope that it will be useful,
        !            12: but WITHOUT ANY WARRANTY; without even the implied warranty of
        !            13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        !            14: GNU General Public License for more details.
        !            15: 
        !            16: You should have received a copy of the GNU General Public License
        !            17: along with GNU CC; see the file COPYING.  If not, write to
        !            18: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
        !            19: 
        !            20: #ifndef NO_HALF_PIC
        !            21: 
        !            22: /* Add prototype support.  */
        !            23: #ifndef PROTO
        !            24: #if defined (USE_PROTOTYPES) ? USE_PROTOTYPES : defined (__STDC__)
        !            25: #define PROTO(ARGS) ARGS
        !            26: #else
        !            27: #define PROTO(ARGS) ()
        !            28: #endif
        !            29: #endif
        !            30: 
        !            31: #ifndef STDIO_PROTO
        !            32: #ifdef BUFSIZ
        !            33: #define STDIO_PROTO(ARGS) PROTO(ARGS)
        !            34: #else
        !            35: #define STDIO_PROTO(ARGS) ()
        !            36: #endif
        !            37: #endif
        !            38: 
        !            39: #if defined (USE_PROTOTYPES) ? USE_PROTOTYPES : defined (__STDC__)
        !            40: union tree_node;               /* forward reference */
        !            41: struct rtx_def;
        !            42: #endif
        !            43: 
        !            44: /* Declare the variable flag_half_pic as 'int' instead of 'extern
        !            45:    int', so that BSS variables are created (even though this is not
        !            46:    strict ANSI).  This is because rtl.c now refers to the
        !            47:    CONSTANT_ADDRESS_P macro, which in turn refers to flag_half_pic,
        !            48:    and wants to call half_pic_address_p, whose address we also store
        !            49:    in in a BSS variable.  This way, the gen* programs won't get
        !            50:    unknown symbol errors when being linked (flag_half_pic will never
        !            51:    be true in the gen* programs).  */
        !            52: 
        !            53: int flag_half_pic;                     /* Global half-pic flag.  */
        !            54: int (*ptr_half_pic_address_p) ();      /* ptr to half_pic_address_p () */
        !            55: 
        !            56: extern int  half_pic_number_ptrs;                              /* # distinct pointers found */
        !            57: extern int  half_pic_number_refs;                              /* # half-pic references */
        !            58: extern void half_pic_encode PROTO((union tree_node *));                /* encode whether half-pic */
        !            59: extern void half_pic_declare PROTO((char *));                  /* declare object local */
        !            60: extern void half_pic_external PROTO((char *));                 /* declare object external */
        !            61: extern void half_pic_init PROTO((void));                       /* half_pic initialization */
        !            62: extern void half_pic_finish STDIO_PROTO((FILE *));             /* half_pic termination */
        !            63: extern int  half_pic_address_p PROTO((struct rtx_def *));      /* true if an address is half-pic */
        !            64: extern struct rtx_def *half_pic_ptr PROTO((struct rtx_def *)); /* return RTX for half-pic pointer */
        !            65: 
        !            66: /* Macros to provide access to the half-pic stuff (so they can easily
        !            67:    be stubbed out.  */
        !            68: 
        !            69: #define HALF_PIC_P()           (flag_half_pic)
        !            70: #define HALF_PIC_NUMBER_PTRS   (half_pic_number_ptrs)
        !            71: #define HALF_PIC_NUMBER_REFS   (half_pic_number_refs)
        !            72: 
        !            73: #define HALF_PIC_ENCODE(DECL)  half_pic_encode (DECL)
        !            74: #define HALF_PIC_DECLARE(NAME) half_pic_declare (NAME)
        !            75: #define HALF_PIC_EXTERNAL(NAME)        half_pic_external (NAME)
        !            76: #define HALF_PIC_INIT()                half_pic_init ()
        !            77: #define HALF_PIC_FINISH(STREAM)        half_pic_finish (STREAM)
        !            78: #define HALF_PIC_ADDRESS_P(X)  ((*ptr_half_pic_address_p) (X))
        !            79: #define HALF_PIC_PTR(X)                half_pic_ptr (X)
        !            80: 
        !            81: /* Prefix for half-pic names */
        !            82: #ifndef HALF_PIC_PREFIX
        !            83: #define        HALF_PIC_PREFIX "__pic_"
        !            84: #endif
        !            85: 
        !            86: #endif /* NO_HALF_PIC */

unix.superglobalmegacorp.com

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