aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorZack Weinberg <zack@gcc.gnu.org>2000-07-13 04:43:47 +0000
committerZack Weinberg <zack@gcc.gnu.org>2000-07-13 04:43:47 +0000
commitc334349bda917012f51f629988006f9c72b7288a (patch)
tree6de36bf7b8f48857cc3e90312c8d4589da6c3f6f /gcc
parentdcacfa04fe67a4f0c957d0b37e0c750d2036d34d (diff)
downloadgcc-c334349bda917012f51f629988006f9c72b7288a.zip
gcc-c334349bda917012f51f629988006f9c72b7288a.tar.gz
gcc-c334349bda917012f51f629988006f9c72b7288a.tar.bz2
gcc.c (execute): If a subprocess gets a fatal signal...
* gcc.c (execute): If a subprocess gets a fatal signal, report strsignal() of the signal number, and ask for a bug report. Do not do this for SIGPIPE if there's already been an error. * tradcpp.c: Don't include signal.h. Don't catch SIGPIPE. Delete pipe_closed. From-SVN: r35006
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog79
-rw-r--r--gcc/gcc.c43
-rw-r--r--gcc/tradcpp.c14
3 files changed, 72 insertions, 64 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3863813..0081c8a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,14 @@
2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
+ * gcc.c (execute): If a subprocess gets a fatal signal, report
+ strsignal() of the signal number, and ask for a bug report.
+ Do not do this for SIGPIPE if there's already been an error.
+
+ * tradcpp.c: Don't include signal.h. Don't catch SIGPIPE.
+ Delete pipe_closed.
+
+2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
+
* final.c (profile_function): Do not emit profile counters in
the data section, if NO_PROFILE_COUNTERS is defined.
* tm.texi: Document NO_PROFILE_COUNTERS. Update doc for
@@ -63,13 +72,13 @@ Wed Jul 12 13:24:30 2000 Jeffrey A Law (law@cygnus.com)
* gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
-traditional, -ftraditional, or -traditional-cpp was given.
- Do not pass -traditional to the preprocessor.
+ Do not pass -traditional to the preprocessor.
(.S spec): Likewise. Don't bother defining __ASSEMBLER__, the
preprocessor does it automatically.
* objc/lang-specs.h: Likewise. Don't bother defining __OBJC__.
* ch/lang-specs.h: Always use tradcpp. Do not pass
- -traditional, -trigraphs, or -pedantic to the preprocessor.
+ -traditional, -trigraphs, or -pedantic to the preprocessor.
* f/lang-specs.h (.F spec): Likewise. Don't bother defining
_LANGUAGE_FORTRAN.
@@ -109,7 +118,7 @@ Wed Jul 12 13:15:16 2000 Marc Espie <espie@openbsd.org>
* c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
-
+
* c-parse.in (stmt): Delete unused variables.
* convert.c (convert_to_vector): Likewise.
@@ -159,7 +168,7 @@ Wed Jul 12 13:15:16 2000 Marc Espie <espie@openbsd.org>
* c-parse.y: Likewise.
* objc/objc-parse.c: Likewise.
* objc/objc-pasre.y: Likewise.
-
+
2000-07-11 Rodney Brown <RodneyBrown@pmsc.com>
* gcc.texi: Fix minor typos
@@ -188,7 +197,7 @@ Wed Jul 12 13:15:16 2000 Marc Espie <espie@openbsd.org>
line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
prefixing_policy, output_buffer_ptr_to_format_args): New macros
(set_real_maximum_length, output_set_maximum_length,
- output_set_prefix, output_get_prefix, output_set_maximum_length,
+ output_set_prefix, output_get_prefix, output_set_maximum_length,
output_destroy_prefix, init_output_buffer,
reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
output_add_newline, output_add_character, output_add_space,
@@ -200,8 +209,8 @@ Wed Jul 12 13:15:16 2000 Marc Espie <espie@openbsd.org>
(struct output_state): Move to...
* diagnostic.h: ...Here
- (struct output_buffer): Adjust.
-
+ (struct output_buffer): Adjust.
+
2000-07-11 Zack Weinberg <zack@wolery.cumb.org>
* cpplex.c (parse_name): No longer inline (premature optimization).
@@ -324,7 +333,7 @@ Tue Jul 11 16:26:17 2000 Clinton Popetz <cpopetz@cygnus.com>
(output_format): Adjust arguments extraction. Tweak.
(output_verbatim, verbatim): End variable argument list.
(report_diagnostic): Improve documentation.
-
+
2000-07-10 Benjamin Chelf <chelf@codesourcery.com>
* c-common.h (build_stmt): Declare.
@@ -349,7 +358,7 @@ Tue Jul 11 16:26:17 2000 Clinton Popetz <cpopetz@cygnus.com>
* c-parse.y: Regenerate.
* c-pasre.c: Likewise.
-
+
2000-07-09 Jason Merrill <jason@redhat.com>
* expr.c (expand_expr): Bail earlier if we get an error_mark_node.
@@ -377,7 +386,7 @@ Tue Jul 11 16:26:17 2000 Clinton Popetz <cpopetz@cygnus.com>
(report_diagnostic): Define.
* diagnostic.h (report_diagnostic): Prototype.
-
+
2000-07-09 Zack Weinberg <zack@wolery.cumb.org>
* cppexp.c (_cpp_parse_expr): Don't use unary plus.
@@ -409,7 +418,7 @@ Tue Jul 11 16:26:17 2000 Clinton Popetz <cpopetz@cygnus.com>
(output_state): New data type.
(digit_buffer): Make global.
(output_add_integer): Rename to output_decimal. Squeeze
- digit_buffer.
+ digit_buffer.
(output_long_decimal, output_unsigned_decimal,
output_long_unsigned_decimal, output_octal, output_long_octal,
output_hexadecimal, output_long_hexadecimal): New functions.
@@ -423,7 +432,7 @@ Tue Jul 11 16:26:17 2000 Clinton Popetz <cpopetz@cygnus.com>
(output_printf): Tweak.
(line_wrapper_printf): Likewise.
(vline_wrapper_message_with_location): Adjust call to renamed
- functions.
+ functions.
(v_message_with_decl): Likewise.
(default_print_error_function): Likewise.
(save_output_state): New function.
@@ -477,12 +486,12 @@ Tue Jul 11 16:26:17 2000 Clinton Popetz <cpopetz@cygnus.com>
node pointer. Inline.
(maybe_paste_with_next): If the result of paste is a NAME,
then look up the pasted text and store its node pointer.
- (lex_line): Adjust for new parse_name interface.
+ (lex_line): Adjust for new parse_name interface.
Check for L"str", L'str' using spec_nodes->n_L.
(spell_token): SPELL_IDENT tokens have their spelling in
val.node->name. Handle SPELL_STRING tokens that don't have
string delimiters.
- (_cpp_expand_name_space,
+ (_cpp_expand_name_space,
(can_paste): Check for L ## "str" using spec_nodes->n_L.
(cpp_get_token, special_symbol): No need to call cpp_lookup.
(cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
@@ -508,7 +517,7 @@ Tue Jul 11 16:26:17 2000 Clinton Popetz <cpopetz@cygnus.com>
(_cpp_init_stacks): Also initialize the spec_nodes structure.
* cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
- _cpp_init_macros.
+ _cpp_init_macros.
(cpp_cleanup): Free pfile->spec_nodes. Call _cpp_cleanup_* in
reverse order from the corresponding _cpp_init_* routines.
@@ -820,7 +829,7 @@ Mon Jul 3 21:31:43 2000 Clinton Popetz <cpopetz@cygnus.com>
(strtoul_for_line, get_define_node, dump_macro_name,
_cpp_check_linemarker, _cpp_parse_assertion): New.
(_cpp_handle_directive, do_pragma_default): Delete.
-
+
* cpphash.h (struct predicate): Now struct answer.
(enum spell_type, struct token_spelling, struct directive,
directive_handler): New.
@@ -829,7 +838,7 @@ Mon Jul 3 21:31:43 2000 Clinton Popetz <cpopetz@cygnus.com>
structure definitions, and fields.
* cpperror.c (print_containing_files, v_message): Adjust.
- * cppexp.c (parse_assertion, lex, parse_escape,
+ * cppexp.c (parse_assertion, lex, parse_escape,
_cpp_parse_expr): Adjust.
* cppfiles.c (open_include_file, _cpp_execute_include,
_cpp_compare_file_date, cpp_read_file, read_include_file):
@@ -936,7 +945,7 @@ Mon Jul 3 00:32:47 2000 Jeffrey A Law (law@cygnus.com)
(genrtl_finish_compound_stmt): Likewise.
(genrtl_compound_stmt): Change to return void.
- * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
+ * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
move code from here to ...
(genrtl_compound_stmt): ... here.
(genrtl_finish_compound_stmt): Remove.
@@ -964,7 +973,7 @@ Mon Jul 3 00:32:47 2000 Jeffrey A Law (law@cygnus.com)
* Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
(c-semantics.o): New target.
-
+
* c-common.h (TREE_LANG_FLAG_?): Added documentation.
(genrtl_do_pushlevel): Moved from cp/cp-tree.h.
(genrtl_clear_out_block): Likewise.
@@ -1006,7 +1015,7 @@ Mon Jul 3 00:32:47 2000 Jeffrey A Law (law@cygnus.com)
(anon_aggr_type_p): Likewise.
(lang_expand_expr_stmt): Likewise.
(build_case_label): Likewise.
-
+
* c-decl.c (lang_expand_expr_stmt): Initialize.
(stmts_are_full_exprs_p): Define.
(current_function_name_declared): Likewise.
@@ -1014,7 +1023,7 @@ Mon Jul 3 00:32:47 2000 Jeffrey A Law (law@cygnus.com)
(lang_expand_stmt): Likewise.
(set_current_function_name_declared): Likewise.
(anon_aggr_type_p): Likewise.
-
+
* c-semantics.c: New file.
(expand_cond): Moved from cp/semantics.c.
(genrtl_do_pushlevel): Likewise.
@@ -1044,7 +1053,7 @@ Mon Jul 3 00:32:47 2000 Jeffrey A Law (law@cygnus.com)
* c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
(c_expand_return): Likewise.
(c_expand_start_case): Likewise.
-
+
2000-07-01 Richard Henderson <rth@cygnus.com>
* config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
@@ -1067,7 +1076,7 @@ Mon Jul 3 00:32:47 2000 Jeffrey A Law (law@cygnus.com)
(NORID): Likewise.
(RID_FIRST_MODIFIER): Likewise.
(ridpointers): Likewise.
-
+
2000-06-30 J. David Anglin <dave@hiauly1.hia.nrc.ca>
* pa/som.h (ASM_WEAKEN_LABEL): Export weak data symbols so that they
@@ -1079,7 +1088,7 @@ Mon Jul 3 00:32:47 2000 Jeffrey A Law (law@cygnus.com)
always an error.
2000-06-30 Catherine Moore <clm@cygnus.com>
-
+
* c-common.c (decl_attributes): Differentiate between
types and type decls for alignment.
@@ -1143,11 +1152,11 @@ Mon Jul 3 00:32:47 2000 Jeffrey A Law (law@cygnus.com)
(flag_traditional): Likewise.
(flag_isoc99): Likewise.
(warn_parentheses): Likewise.
-
+
2000-06-29 James E. Wilson <wilson@cygnus.com>
* config/ia64/linux.h (LINK_SPEC): Change so.1 to so.2.
-
+
* config/ia64/ia64.h (MODES_TIEABLE_P): Only tie if mode class is the
same. Only tie XFmode with XFmode.
@@ -1221,7 +1230,7 @@ Wed Jun 28 15:39:26 2000 Donn Terry (donnte@microsoft.com)
2000-06-28 Zack Weinberg <zack@wolery.cumb.org>
* cppfiles.c (open_include_file): If open(2) returns EMFILE or
- ENFILE, close all cached file descriptors and try again.
+ ENFILE, close all cached file descriptors and try again.
(_cpp_execute_include): Keep a count of the number of times
each header is included.
(close_cached_fd): New function.
@@ -1244,7 +1253,7 @@ Wed Jun 28 14:46:58 MET DST 2000 Jan Hubicka <jh@suse.cz>
2000-06-27 Andrew Macleod <amacleod@cygnus.com>
- * dwarf2out.c (ASM_OUTPUT_DWARF_DATA2): Provide default when no
+ * dwarf2out.c (ASM_OUTPUT_DWARF_DATA2): Provide default when no
unsigned macros available.
2000-06-27 Richard Henderson <rth@cygnus.com>
@@ -1297,7 +1306,7 @@ Tue Jun 27 12:03:03 MET DST 2000 Jan Hubicka <jh@suse.cz>
* riscix.h: Likewise.
* c4x.h: Likewise.
* clipper.h: Likewise.
- * convex.h: Likewise.
+ * convex.h: Likewise.
* elxsi.h: Likewise.
* fr30.h: Likewise.
* fx80.h: Likewise.
@@ -1408,11 +1417,11 @@ Tue Jun 27 12:03:03 MET DST 2000 Jan Hubicka <jh@suse.cz>
and comments.
(rename_equivalent_regs_in_insn): Don't handle SUBREGs specially.
(rename_equivalent_regs): Expand SEQUENCEs out to individual insns.
-
+
2000-06-26 Andrew Macleod <amacleod@cygnus.com>
Jason Merrill <jason@redhat.com>
- * dwarf2.h (enum dwarf_call_frame_info): Add
+ * dwarf2.h (enum dwarf_call_frame_info): Add
DW_CFA_def_cfa_expression.
* dwarf2out.c (union dw_cfi_oprnd_struct): Add a pointer to a
dw_loc_descr_struct entry.
@@ -1432,7 +1441,7 @@ Tue Jun 27 12:03:03 MET DST 2000 Jan Hubicka <jh@suse.cz>
sequences for the new DW_CFA_def_cfa_expression record.
(dwarf2out_frame_debug): Use new variables/fields.A
(output_cfi): Handle DW_CFA_def_cfa_expression.
- (output_cfa_loc): New function to generate a CFI record for
+ (output_cfa_loc): New function to generate a CFI record for
DW_CFA_def_cfa_expression.
(get_cfa_from_loc_descr): New function to get a cfa_loc record from
a dw_loc_descr sequeunce.
@@ -1513,7 +1522,7 @@ Tue Jun 27 12:03:03 MET DST 2000 Jan Hubicka <jh@suse.cz>
compiler found.
AM_GNU_GETTEXT: Don't set CATALOGS if create_catalogs=no.
* configure: Rebuilt.
-
+
2000-06-25 John David Anglin <dave.anglin@nrc.ca>
* config/vax/vax.h (TARGET_SWITCHES): Provide descriptions.
@@ -1585,7 +1594,7 @@ Tue Jun 27 12:03:03 MET DST 2000 Jan Hubicka <jh@suse.cz>
2000-06-24 Nathan Sidwell <nathan@codesourcery.com>
- * cpp.texi: Clarify #pragma GCC namespace.
+ * cpp.texi: Clarify #pragma GCC namespace.
2000-06-24 Philipp Thomas <pthomas@suse.de>
@@ -1677,7 +1686,7 @@ Tue Jun 27 12:03:03 MET DST 2000 Jan Hubicka <jh@suse.cz>
* cppinit.c: Include splay-tree.h.
(cpp_reader_init, cpp_cleanup): Update.
- * cpplib.h (struct cpp_buffer): Change ihash field to
+ * cpplib.h (struct cpp_buffer): Change ihash field to
'struct include_file *inc'. Remove system_header_p.
(struct cpp_reader): Change all_include_files to a
struct splay_tree_s *.
diff --git a/gcc/gcc.c b/gcc/gcc.c
index a917e5d..c2e2a47 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -2653,22 +2653,35 @@ execute ()
if (commands[j].pid == pid)
{
i++;
- if (status != 0)
+ if (WIFSIGNALED (status))
{
- if (WIFSIGNALED (status))
- {
- fatal ("Internal compiler error: program %s got fatal signal %d",
- commands[j].prog, WTERMSIG (status));
- signal_count++;
- ret_code = -1;
- }
- else if (WIFEXITED (status)
- && WEXITSTATUS (status) >= MIN_FATAL_STATUS)
- {
- if (WEXITSTATUS (status) > greatest_status)
- greatest_status = WEXITSTATUS (status);
- ret_code = -1;
- }
+#ifdef SIGPIPE
+ /* SIGPIPE is a special case. It happens in -pipe mode
+ when the compiler dies before the preprocessor is
+ done, or the assembler dies before the compiler is
+ done. There's generally been an error already, and
+ this is just fallout. So don't generate another error
+ unless we would otherwise have succeeded. */
+ if (WTERMSIG (status) == SIGPIPE
+ && (signal_count || greatest_status >= MIN_FATAL_STATUS))
+ ;
+ else
+#endif
+ fatal ("\
+Internal error: %s (program %s)\n\
+Please submit a full bug report.\n\
+See %s for instructions.",
+ strsignal (WTERMSIG (status)), commands[j].prog,
+ GCCBUGURL);
+ signal_count++;
+ ret_code = -1;
+ }
+ else if (WIFEXITED (status)
+ && WEXITSTATUS (status) >= MIN_FATAL_STATUS)
+ {
+ if (WEXITSTATUS (status) > greatest_status)
+ greatest_status = WEXITSTATUS (status);
+ ret_code = -1;
}
#ifdef HAVE_GETRUSAGE
if (report_times && ut + st != 0)
diff --git a/gcc/tradcpp.c b/gcc/tradcpp.c
index 2afb550..971dfef 100644
--- a/gcc/tradcpp.c
+++ b/gcc/tradcpp.c
@@ -28,8 +28,6 @@ Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
#include "version.h"
#include "cppdefault.h"
-#include <signal.h>
-
typedef unsigned char U_CHAR;
/* Name under which this program was invoked. */
@@ -387,7 +385,6 @@ U_CHAR *skip_to_end_of_comment PARAMS ((FILE_BUF *, int *));
U_CHAR *skip_quoted_string PARAMS ((U_CHAR *, U_CHAR *, int,
int *, int *, int *));
-void pipe_closed PARAMS ((int));
int main PARAMS ((int, char **));
/* Convenience. Write U"string" to get an unsigned string constant. */
@@ -457,15 +454,6 @@ int deps_column;
/* Nonzero means -I- has been seen,
so don't look for #include "foo" the source-file directory. */
int ignore_srcdir;
-
-/* Handler for SIGPIPE. */
-
-void
-pipe_closed (dummy)
- int dummy ATTRIBUTE_UNUSED;
-{
- exit (FATAL_EXIT_CODE);
-}
int
main (argc, argv)
@@ -515,8 +503,6 @@ main (argc, argv)
dump_macros = 0;
no_output = 0;
- signal (SIGPIPE, pipe_closed);
-
max_include_len = cpp_GCC_INCLUDE_DIR_len + 7; /* ??? */
memset (pend_files, 0, argc * sizeof (char *));