]>
Commit | Line | Data |
---|---|---|
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 | 4 | This file is part of GCC. |
0e6f0670 | 5 | |
1322177d LB |
6 | GCC is free software; you can redistribute it and/or modify it under |
7 | the terms of the GNU General Public License as published by the Free | |
8 | Software Foundation; either version 2, or (at your option) any later | |
9 | version. | |
0e6f0670 | 10 | |
1322177d LB |
11 | GCC is distributed in the hope that it will be useful, but WITHOUT ANY |
12 | WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
13 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
14 | for more details. | |
0e6f0670 JL |
15 | |
16 | You should have received a copy of the GNU General Public License | |
1322177d LB |
17 | along with GCC; see the file COPYING. If not, write to the Free |
18 | Software Foundation, 59 Temple Place - Suite 330, Boston, MA | |
19 | 02111-1307, USA. */ | |
5f6da302 | 20 | |
88657302 RH |
21 | #ifndef GCC_TOPLEV_H |
22 | #define GCC_TOPLEV_H | |
5f6da302 | 23 | |
5148a72b | 24 | #ifdef ANSI_PROTOTYPES |
97263b8c | 25 | union tree_node; |
aa7ad670 | 26 | struct 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 | ||
8ac61af7 | 34 | extern int toplev_main PARAMS ((int, char **)); |
58782098 | 35 | extern int read_integral_parameter PARAMS ((const char *, const char *, |
192babfd | 36 | const int)); |
58782098 KG |
37 | extern int count_error PARAMS ((int)); |
38 | extern void strip_off_ending PARAMS ((char *, int)); | |
77a02dba | 39 | extern void print_time PARAMS ((const char *, long)); |
fce687f8 | 40 | extern const char *trim_filename PARAMS ((const char *)); |
400500c4 | 41 | extern void internal_error PARAMS ((const char *, ...)) |
400500c4 RK |
42 | ATTRIBUTE_NORETURN; |
43 | extern void fatal_io_error PARAMS ((const char *, ...)) | |
400500c4 | 44 | ATTRIBUTE_NORETURN; |
58782098 | 45 | extern void _fatal_insn_not_found PARAMS ((struct rtx_def *, |
987009bf ZW |
46 | const char *, int, |
47 | const char *)) | |
400500c4 | 48 | ATTRIBUTE_NORETURN; |
58782098 | 49 | extern void _fatal_insn PARAMS ((const char *, |
987009bf ZW |
50 | struct rtx_def *, |
51 | const char *, int, | |
52 | const char *)) | |
400500c4 | 53 | ATTRIBUTE_NORETURN; |
987009bf | 54 | |
987009bf | 55 | #define fatal_insn(msgid, insn) \ |
fbfc1192 | 56 | _fatal_insn (msgid, insn, __FILE__, __LINE__, __FUNCTION__) |
987009bf | 57 | #define fatal_insn_not_found(insn) \ |
fbfc1192 ZW |
58 | _fatal_insn_not_found (insn, __FILE__, __LINE__, __FUNCTION__) |
59 | ||
749ced52 ZW |
60 | /* None of these functions are suitable for ATTRIBUTE_PRINTF, because |
61 | each language front end can extend them with its own set of format | |
62 | specifiers. */ | |
63 | extern void warning PARAMS ((const char *, ...)); | |
64 | extern void error PARAMS ((const char *, ...)); | |
400500c4 | 65 | extern void fatal_error PARAMS ((const char *, ...)) |
749ced52 ZW |
66 | ATTRIBUTE_NORETURN; |
67 | extern void pedwarn PARAMS ((const char *, ...)); | |
58782098 | 68 | extern void pedwarn_with_file_and_line PARAMS ((const char *, int, |
749ced52 | 69 | const char *, ...)); |
58782098 | 70 | extern void warning_with_file_and_line PARAMS ((const char *, int, |
749ced52 | 71 | const char *, ...)); |
58782098 | 72 | extern void error_with_file_and_line PARAMS ((const char *, int, |
749ced52 ZW |
73 | const char *, ...)); |
74 | extern void sorry PARAMS ((const char *, ...)); | |
58782098 | 75 | extern void report_error_function PARAMS ((const char *)); |
5f6da302 | 76 | |
58782098 | 77 | extern void rest_of_decl_compilation PARAMS ((union tree_node *, |
87e11268 | 78 | const char *, int, int)); |
58782098 KG |
79 | extern void rest_of_type_compilation PARAMS ((union tree_node *, int)); |
80 | extern void rest_of_compilation PARAMS ((union tree_node *)); | |
87e11268 | 81 | |
58782098 | 82 | extern void pedwarn_with_decl PARAMS ((union tree_node *, |
400500c4 | 83 | const char *, ...)); |
58782098 | 84 | extern void warning_with_decl PARAMS ((union tree_node *, |
400500c4 | 85 | const char *, ...)); |
58782098 | 86 | extern void error_with_decl PARAMS ((union tree_node *, |
400500c4 | 87 | const char *, ...)); |
87e11268 | 88 | |
58782098 | 89 | extern void announce_function PARAMS ((union tree_node *)); |
5f6da302 | 90 | |
58782098 | 91 | extern void error_for_asm PARAMS ((struct rtx_def *, |
749ced52 | 92 | const char *, ...)); |
58782098 | 93 | extern void warning_for_asm PARAMS ((struct rtx_def *, |
749ced52 | 94 | const char *, ...)); |
58782098 | 95 | extern int do_float_handler PARAMS ((void (*) (PTR), PTR)); |
50b2596f KG |
96 | |
97 | #ifdef BUFSIZ | |
58782098 KG |
98 | extern void output_quoted_string PARAMS ((FILE *, const char *)); |
99 | extern void output_file_directive PARAMS ((FILE *, const char *)); | |
50b2596f | 100 | #endif |
58782098 KG |
101 | extern void do_abort PARAMS ((void)) ATTRIBUTE_NORETURN; |
102 | extern void botch PARAMS ((const char *)) | |
87e11268 | 103 | ATTRIBUTE_NORETURN; |
9a8b0889 | 104 | |
fa6ac85e | 105 | #ifdef BUFSIZ |
749ced52 ZW |
106 | /* N.B. Unlike all the others, fnotice is just gettext+fprintf, and |
107 | therefore it can have ATTRIBUTE_PRINTF. */ | |
58782098 | 108 | extern void fnotice PARAMS ((FILE *, const char *, ...)) |
400500c4 | 109 | ATTRIBUTE_PRINTF_2; |
fa6ac85e | 110 | #endif |
644f3d7e | 111 | |
58782098 KG |
112 | extern int wrapup_global_declarations PARAMS ((union tree_node **, int)); |
113 | extern void check_global_declarations PARAMS ((union tree_node **, int)); | |
7adfcfed KG |
114 | |
115 | extern const char *progname; | |
b7442fb5 | 116 | extern const char *dump_base_name; |
c6991660 | 117 | |
2a967f3d NB |
118 | /* The hashtable, so that the C front ends can pass it to cpplib. */ |
119 | extern struct ht *ident_hash; | |
120 | ||
de6c5979 BL |
121 | /* These functions can be used by targets to set the flags originally |
122 | implied by -ffast-math and -fno-fast-math. */ | |
123 | ||
124 | extern void set_fast_math_flags PARAMS ((void)); | |
125 | extern void set_no_fast_math_flags PARAMS ((void)); | |
126 | ||
d6684bc8 KG |
127 | /* The following functions accept a wide integer argument. Rather |
128 | than having to cast on every function call, we use a macro instead. */ | |
129 | ||
130 | #ifndef exact_log2 | |
131 | #define exact_log2(N) exact_log2_wide ((unsigned HOST_WIDE_INT) (N)) | |
132 | #define floor_log2(N) floor_log2_wide ((unsigned HOST_WIDE_INT) (N)) | |
133 | #endif | |
134 | extern int exact_log2_wide PARAMS ((unsigned HOST_WIDE_INT)); | |
135 | extern int floor_log2_wide PARAMS ((unsigned HOST_WIDE_INT)); | |
136 | ||
88657302 | 137 | #endif /* ! GCC_TOPLEV_H */ |