]> gcc.gnu.org Git - gcc.git/blame - gcc/toplev.h
Makefile.in, [...]: replace "GNU CC" with "GCC".
[gcc.git] / gcc / toplev.h
CommitLineData
5f6da302 1/* toplev.h - Various declarations for functions found in toplev.c
400500c4 2 Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
0e6f0670 3
1322177d 4This file is part of GCC.
0e6f0670 5
1322177d
LB
6GCC is free software; you can redistribute it and/or modify it under
7the terms of the GNU General Public License as published by the Free
8Software Foundation; either version 2, or (at your option) any later
9version.
0e6f0670 10
1322177d
LB
11GCC is distributed in the hope that it will be useful, but WITHOUT ANY
12WARRANTY; without even the implied warranty of MERCHANTABILITY or
13FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14for more details.
0e6f0670
JL
15
16You should have received a copy of the GNU General Public License
1322177d
LB
17along with GCC; see the file COPYING. If not, write to the Free
18Software Foundation, 59 Temple Place - Suite 330, Boston, MA
1902111-1307, USA. */
5f6da302 20
88657302
RH
21#ifndef GCC_TOPLEV_H
22#define GCC_TOPLEV_H
5f6da302 23
5148a72b 24#ifdef ANSI_PROTOTYPES
97263b8c 25union tree_node;
aa7ad670 26struct rtx_def;
97263b8c
MH
27#endif
28
6f5ef761
GDR
29/* If non-NULL, return one past-the-end of the matching SUBPART of
30 the WHOLE string. */
31#define skip_leading_substring(whole, part) \
32 (strncmp (whole, part, strlen (part)) ? NULL : whole + strlen (part))
33
aa5b94de 34extern int toplev_main PARAMS ((int argc, char **argv));
58782098 35extern int read_integral_parameter PARAMS ((const char *, const char *,
192babfd 36 const int));
58782098
KG
37extern int count_error PARAMS ((int));
38extern void strip_off_ending PARAMS ((char *, int));
77a02dba 39extern void print_time PARAMS ((const char *, long));
fce687f8 40extern const char *trim_filename PARAMS ((const char *));
400500c4
RK
41extern void internal_error PARAMS ((const char *, ...))
42 ATTRIBUTE_PRINTF_1
43 ATTRIBUTE_NORETURN;
44extern void fatal_io_error PARAMS ((const char *, ...))
45 ATTRIBUTE_PRINTF_1
46 ATTRIBUTE_NORETURN;
58782098 47extern void _fatal_insn_not_found PARAMS ((struct rtx_def *,
987009bf
ZW
48 const char *, int,
49 const char *))
400500c4 50 ATTRIBUTE_NORETURN;
58782098 51extern void _fatal_insn PARAMS ((const char *,
987009bf
ZW
52 struct rtx_def *,
53 const char *, int,
54 const char *))
400500c4 55 ATTRIBUTE_NORETURN;
987009bf 56
987009bf 57#define fatal_insn(msgid, insn) \
fbfc1192 58 _fatal_insn (msgid, insn, __FILE__, __LINE__, __FUNCTION__)
987009bf 59#define fatal_insn_not_found(insn) \
fbfc1192
ZW
60 _fatal_insn_not_found (insn, __FILE__, __LINE__, __FUNCTION__)
61
58782098 62extern void warning PARAMS ((const char *, ...))
400500c4 63 ATTRIBUTE_PRINTF_1;
58782098 64extern void error PARAMS ((const char *, ...))
400500c4
RK
65 ATTRIBUTE_PRINTF_1;
66extern void fatal_error PARAMS ((const char *, ...))
3fdefbcc 67 ATTRIBUTE_NORETURN
400500c4 68 ATTRIBUTE_PRINTF_1;
58782098 69extern void pedwarn PARAMS ((const char *, ...))
400500c4 70 ATTRIBUTE_PRINTF_1;
58782098 71extern void pedwarn_with_file_and_line PARAMS ((const char *, int,
400500c4
RK
72 const char *, ...))
73 ATTRIBUTE_PRINTF_3;
58782098 74extern void warning_with_file_and_line PARAMS ((const char *, int,
400500c4
RK
75 const char *, ...))
76 ATTRIBUTE_PRINTF_3;
58782098 77extern void error_with_file_and_line PARAMS ((const char *, int,
400500c4
RK
78 const char *, ...))
79 ATTRIBUTE_PRINTF_3;
58782098 80extern void sorry PARAMS ((const char *, ...))
400500c4 81 ATTRIBUTE_PRINTF_1;
58782098 82extern void report_error_function PARAMS ((const char *));
5f6da302 83
58782098 84extern void rest_of_decl_compilation PARAMS ((union tree_node *,
87e11268 85 const char *, int, int));
58782098
KG
86extern void rest_of_type_compilation PARAMS ((union tree_node *, int));
87extern void rest_of_compilation PARAMS ((union tree_node *));
87e11268
KG
88
89/* The *_with_decl functions aren't suitable for ATTRIBUTE_PRINTF. */
58782098 90extern void pedwarn_with_decl PARAMS ((union tree_node *,
400500c4 91 const char *, ...));
58782098 92extern void warning_with_decl PARAMS ((union tree_node *,
400500c4 93 const char *, ...));
58782098 94extern void error_with_decl PARAMS ((union tree_node *,
400500c4 95 const char *, ...));
87e11268 96
58782098 97extern void announce_function PARAMS ((union tree_node *));
5f6da302 98
58782098 99extern void error_for_asm PARAMS ((struct rtx_def *,
87e11268 100 const char *, ...))
400500c4 101 ATTRIBUTE_PRINTF_2;
58782098 102extern void warning_for_asm PARAMS ((struct rtx_def *,
87e11268 103 const char *, ...))
400500c4 104 ATTRIBUTE_PRINTF_2;
58782098 105extern int do_float_handler PARAMS ((void (*) (PTR), PTR));
50b2596f
KG
106
107#ifdef BUFSIZ
58782098
KG
108extern void output_quoted_string PARAMS ((FILE *, const char *));
109extern void output_file_directive PARAMS ((FILE *, const char *));
50b2596f 110#endif
58782098
KG
111extern void do_abort PARAMS ((void)) ATTRIBUTE_NORETURN;
112extern void botch PARAMS ((const char *))
87e11268 113 ATTRIBUTE_NORETURN;
9a8b0889 114
fa6ac85e 115#ifdef BUFSIZ
58782098 116extern void fnotice PARAMS ((FILE *, const char *, ...))
400500c4 117 ATTRIBUTE_PRINTF_2;
fa6ac85e 118#endif
644f3d7e 119
58782098
KG
120extern int wrapup_global_declarations PARAMS ((union tree_node **, int));
121extern void check_global_declarations PARAMS ((union tree_node **, int));
7adfcfed
KG
122
123extern const char *progname;
b7442fb5 124extern const char *dump_base_name;
c6991660 125
13c61421 126/* Language-specific hooks. Can be NULL unless otherwise specified. */
cd2a3ba2
NB
127struct lang_hooks
128{
13c61421
NB
129 /* Called first, to initialize the front end. */
130 void (*init) PARAMS ((void));
131
132 /* Called last, as a finalizer. */
133 void (*finish) PARAMS ((void));
134
ee811cfd
NB
135 /* Called to initialize options, before any calls to decode_option. */
136 void (*init_options) PARAMS ((void));
137
138 /* Function called with an option vector as argument, to decode a
139 single option (typically starting with -f or -W or +). It should
140 return the number of command-line arguments it uses if it handles
141 the option, or 0 and not complain if it does not recognise the
57883c53
MM
142 option. If this function returns a negative number, then its
143 absolute value is the number of command-line arguments used, but,
144 in addition, no language-independent option processing should be
145 done for this option.
146
147 This hook cannot be NULL. */
ee811cfd
NB
148 int (*decode_option) PARAMS ((int, char **));
149
13c61421 150 /* Called when all command line options have been processed. */
cd2a3ba2
NB
151 void (*post_options) PARAMS ((void));
152};
153
154/* Each front end provides its own. */
155extern struct lang_hooks lang_hooks;
156
2a967f3d
NB
157/* The hashtable, so that the C front ends can pass it to cpplib. */
158extern struct ht *ident_hash;
159
de6c5979
BL
160/* These functions can be used by targets to set the flags originally
161 implied by -ffast-math and -fno-fast-math. */
162
163extern void set_fast_math_flags PARAMS ((void));
164extern void set_no_fast_math_flags PARAMS ((void));
165
d6684bc8
KG
166/* The following functions accept a wide integer argument. Rather
167 than having to cast on every function call, we use a macro instead. */
168
169#ifndef exact_log2
170#define exact_log2(N) exact_log2_wide ((unsigned HOST_WIDE_INT) (N))
171#define floor_log2(N) floor_log2_wide ((unsigned HOST_WIDE_INT) (N))
172#endif
173extern int exact_log2_wide PARAMS ((unsigned HOST_WIDE_INT));
174extern int floor_log2_wide PARAMS ((unsigned HOST_WIDE_INT));
175
88657302 176#endif /* ! GCC_TOPLEV_H */
This page took 1.053268 seconds and 5 git commands to generate.