Annotation of gcc/c-lang.c, revision 1.1.1.3

1.1       root        1: /* Language-specific hook definitions for C front end.
1.1.1.3 ! root        2:    Copyright (C) 1991, 1995 Free Software Foundation, Inc.
1.1       root        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
1.1.1.3 ! root       18: the Free Software Foundation, 59 Temple Place - Suite 330,
        !            19: Boston, MA 02111-1307, USA.  */
1.1       root       20: 
                     21: 
                     22: #include "config.h"
                     23: #include "tree.h"
                     24: #include <stdio.h>
                     25: #include "input.h"
                     26: 
                     27: /* Each of the functions defined here
                     28:    is an alternative to a function in objc-actions.c.  */
                     29:    
                     30: int
                     31: lang_decode_option (p)
                     32:      char *p;
                     33: {
                     34:   return c_decode_option (p);
                     35: }
                     36: 
                     37: void
                     38: lang_init ()
                     39: {
                     40:   /* the beginning of the file is a new line; check for # */
                     41:   /* With luck, we discover the real source file's name from that
                     42:      and put it in input_filename.  */
                     43:   ungetc (check_newline (), finput);
                     44: }
                     45: 
                     46: void
                     47: lang_finish ()
                     48: {
                     49: }
                     50: 
1.1.1.2   root       51: char *
                     52: lang_identify ()
                     53: {
                     54:   return "c";
                     55: }
                     56: 
                     57: void
                     58: print_lang_statistics ()
                     59: {
                     60: }
                     61: 
1.1       root       62: /* Used by c-lex.c, but only for objc.  */
1.1.1.2   root       63: 
1.1       root       64: tree
                     65: lookup_interface (arg)
                     66:      tree arg;
                     67: {
                     68:   return 0;
                     69: }
                     70: 
1.1.1.2   root       71: tree
                     72: is_class_name (arg)
                     73:     tree arg;
                     74: {
                     75:   return 0;
                     76: }
                     77: 
1.1       root       78: void
                     79: maybe_objc_check_decl (decl)
                     80:      tree decl;
                     81: {
                     82: }
                     83: 
                     84: int
1.1.1.2   root       85: maybe_objc_comptypes (lhs, rhs, reflexive)
1.1       root       86:      tree lhs, rhs;
1.1.1.2   root       87:      int reflexive;
                     88: {
                     89:   return -1;
                     90: }
                     91: 
                     92: tree
                     93: maybe_objc_method_name (decl)
                     94:     tree decl;
1.1       root       95: {
                     96:   return 0;
                     97: }
                     98: 
                     99: tree
                    100: maybe_building_objc_message_expr ()
                    101: {
                    102:   return 0;
                    103: }
                    104: 
                    105: int
                    106: recognize_objc_keyword ()
                    107: {
                    108:   return 0;
                    109: }
                    110: 
1.1.1.2   root      111: tree
                    112: build_objc_string (len, str)
                    113:     int len;
                    114:     char *str;
1.1       root      115: {
1.1.1.2   root      116:   abort ();
                    117:   return NULL_TREE;
1.1       root      118: }
                    119: 
                    120: void
                    121: GNU_xref_begin ()
                    122: {
                    123:   fatal ("GCC does not yet support XREF");
                    124: }
                    125: 
                    126: void
                    127: GNU_xref_end ()
                    128: {
                    129:   fatal ("GCC does not yet support XREF");
                    130: }
1.1.1.3 ! root      131: 
        !           132: /* called at end of parsing, but before end-of-file processing.  */
        !           133: void
        !           134: finish_file ()
        !           135: {
        !           136:   extern tree static_ctors, static_dtors;
        !           137:   extern tree get_file_function_name ();
        !           138:   extern tree build_function_call                 PROTO((tree, tree));
        !           139:   tree void_list_node = build_tree_list (NULL_TREE, void_type_node);
        !           140: #ifndef ASM_OUTPUT_CONSTRUCTOR
        !           141:   if (static_ctors)
        !           142:     {
        !           143:       tree fnname = get_file_function_name ('I');
        !           144:       start_function (void_list_node,
        !           145:                      build_parse_node (CALL_EXPR, fnname, void_list_node,
        !           146:                                        NULL_TREE),
        !           147:                      NULL_TREE, NULL_TREE, 0);
        !           148:       fnname = DECL_ASSEMBLER_NAME (current_function_decl);
        !           149:       store_parm_decls ();
        !           150: 
        !           151:       for (; static_ctors; static_ctors = TREE_CHAIN (static_ctors))
        !           152:        expand_expr_stmt (build_function_call (TREE_VALUE (static_ctors),
        !           153:                                               NULL_TREE));
        !           154: 
        !           155:       finish_function (0);
        !           156: 
        !           157:       assemble_constructor (IDENTIFIER_POINTER (fnname));
        !           158:     }
        !           159: #endif
        !           160: #ifndef ASM_OUTPUT_DESTRUCTOR
        !           161:   if (static_dtors)
        !           162:     {
        !           163:       tree fnname = get_file_function_name ('D');
        !           164:       start_function (void_list_node,
        !           165:                      build_parse_node (CALL_EXPR, fnname, void_list_node,
        !           166:                                        NULL_TREE),
        !           167:                      NULL_TREE, NULL_TREE, 0);
        !           168:       fnname = DECL_ASSEMBLER_NAME (current_function_decl);
        !           169:       store_parm_decls ();
        !           170: 
        !           171:       for (; static_dtors; static_dtors = TREE_CHAIN (static_dtors))
        !           172:        expand_expr_stmt (build_function_call (TREE_VALUE (static_dtors),
        !           173:                                               NULL_TREE));
        !           174: 
        !           175:       finish_function (0);
        !           176: 
        !           177:       assemble_destructor (IDENTIFIER_POINTER (fnname));
        !           178:     }
        !           179: #endif
        !           180: }

unix.superglobalmegacorp.com

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