diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a82430e97d9..9c216d05cb8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,16 @@ +1999-04-14 23:26 -0400 Zack Weinberg + + * graph.c (node_data): Return void. Ignore result of + print_rtl_single. Change caller to match. + * integrate.c (subst_constants): Initialize op0_mode to an + invalid mode, and abort before use if it's still invalid. + (Can only happen if the RTX_CLASS, RTX_FORMAT tables are corrupted.) + * objc/objc-act.c (get_objc_string_decl, + build_selector_translation_table, generate_protocol_list, + synth_id_with_class_suffix, build_keyword_selector, + build_selector_expr, gen_declarator): Abort when the tree + structure is corrupted. + Wed Apr 14 19:57:49 1999 Jeffrey A Law (law@cygnus.com) * configure.in (alpha interix): Use symbolic names to set @@ -20,39 +33,39 @@ Wed Apr 14 14:26:36 1999 John Wehle (john@feith.com) * i386.md (truncxfdf): Output the template supplied by output_move_double with the correct operands. - * i386.md (extendsfdf, extendsfxf, extenddfxf): Use - output_float_extend instead specifying '#' as the template. - * i386.c (output_float_extend): Define. - * i386.h (output_float_extend): Declare. + * i386.md (extendsfdf, extendsfxf, extenddfxf): Use + output_float_extend instead specifying '#' as the template. + * i386.c (output_float_extend): Define. + * i386.h (output_float_extend): Declare. Wed Apr 14 10:48:03 1999 Catherine Moore - * config/mips/elf.h, config/mips/elf64.h - (CTORS_SECTION_ASM_OP): Define. - (DTORS_SECTION_ASM_OP): Define. - (EXTRA_SECTIONS): Define. - (INVOKE__main): Define. - (NAME__MAIN): Define. - (SYMBOL__MAIN): Define. - (EXTRA_SECTIONS_FUNCTIONS): Define. - (SECTION_FUNCTION_TEMPLATE): Define. - (ASM_OUTPUT_CONSTRUCTOR): Define. - (ASM_OUTPUT_DESTRUCTOR): Define. - (CTOR_LIST_BEGIN): Define. - (CTOR_LIST_END): Define. - (DTOR_LIST_BEGIN): Define. - (DTOR_LIST_END): Define. - (LIB_SPEC): Define. - (STARTFILE_SPEC): Define. - (ENDFILE_SPEC): Define. - * config/mips/linux.h: Undefine all of the above. - * config/mips/rtems64.h: Likewise. - * config/mips/t-r3900: Likewise. - * config/mips/t-elf: New file. - * config/mips/vxworks.h: New file. - * configure.in (mips-wrs-vxworks): Use mips/vxworks.h. - (mips*-*-*elf*): Use t-elf instead of t-ecoff. - * configure: Regenerate. + * config/mips/elf.h, config/mips/elf64.h + (CTORS_SECTION_ASM_OP): Define. + (DTORS_SECTION_ASM_OP): Define. + (EXTRA_SECTIONS): Define. + (INVOKE__main): Define. + (NAME__MAIN): Define. + (SYMBOL__MAIN): Define. + (EXTRA_SECTIONS_FUNCTIONS): Define. + (SECTION_FUNCTION_TEMPLATE): Define. + (ASM_OUTPUT_CONSTRUCTOR): Define. + (ASM_OUTPUT_DESTRUCTOR): Define. + (CTOR_LIST_BEGIN): Define. + (CTOR_LIST_END): Define. + (DTOR_LIST_BEGIN): Define. + (DTOR_LIST_END): Define. + (LIB_SPEC): Define. + (STARTFILE_SPEC): Define. + (ENDFILE_SPEC): Define. + * config/mips/linux.h: Undefine all of the above. + * config/mips/rtems64.h: Likewise. + * config/mips/t-r3900: Likewise. + * config/mips/t-elf: New file. + * config/mips/vxworks.h: New file. + * configure.in (mips-wrs-vxworks): Use mips/vxworks.h. + (mips*-*-*elf*): Use t-elf instead of t-ecoff. + * configure: Regenerate. Wed Apr 14 09:59:38 1999 Richard Henderson diff --git a/gcc/graph.c b/gcc/graph.c index 95149449964..f586314bb31 100644 --- a/gcc/graph.c +++ b/gcc/graph.c @@ -94,12 +94,11 @@ label: \"basic block %d", } } -static int +static void node_data (fp, tmp_rtx) FILE *fp; rtx tmp_rtx; { - int result; if (PREV_INSN (tmp_rtx) == 0) { @@ -168,9 +167,9 @@ darkgrey\n shape: ellipse" : "white", XINT (tmp_rtx, 4) < 0 ? note_names[-XINT (tmp_rtx, 4)] : ""); } else if (GET_RTX_CLASS (GET_CODE (tmp_rtx)) == 'i') - result = print_rtl_single (fp, PATTERN (tmp_rtx)); + print_rtl_single (fp, PATTERN (tmp_rtx)); else - result = print_rtl_single (fp, tmp_rtx); + print_rtl_single (fp, tmp_rtx); switch (graph_dump_format) { @@ -180,8 +179,6 @@ darkgrey\n shape: ellipse" : "white", case no_graph: break; } - - return result; } static void @@ -316,7 +313,6 @@ print_rtl_graph_with_bb (base, suffix, rtx_first) for (tmp_rtx = NEXT_INSN (rtx_first); NULL != tmp_rtx; tmp_rtx = NEXT_INSN (tmp_rtx)) { - int did_output; int edge_printed = 0; rtx next_insn; @@ -339,7 +335,7 @@ print_rtl_graph_with_bb (base, suffix, rtx_first) } /* Print the data for this node. */ - did_output = node_data (fp, tmp_rtx); + node_data (fp, tmp_rtx); next_insn = next_nonnote_insn (tmp_rtx); if ((i = end[INSN_UID (tmp_rtx)]) >= 0) diff --git a/gcc/integrate.c b/gcc/integrate.c index 07055f2abcb..76f71441e55 100644 --- a/gcc/integrate.c +++ b/gcc/integrate.c @@ -2853,7 +2853,7 @@ subst_constants (loc, insn, map) register char *format_ptr; int num_changes = num_validated_changes (); rtx new = 0; - enum machine_mode op0_mode; + enum machine_mode op0_mode = MAX_MACHINE_MODE; code = GET_CODE (x); @@ -3067,6 +3067,8 @@ subst_constants (loc, insn, map) switch (GET_RTX_CLASS (code)) { case '1': + if (op0_mode == MAX_MACHINE_MODE) + abort (); new = simplify_unary_operation (code, GET_MODE (x), XEXP (x, 0), op0_mode); break; @@ -3095,6 +3097,8 @@ subst_constants (loc, insn, map) case 'b': case '3': + if (op0_mode == MAX_MACHINE_MODE) + abort (); new = simplify_ternary_operation (code, GET_MODE (x), op0_mode, XEXP (x, 0), XEXP (x, 1), XEXP (x, 2)); break; diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c index 374e35b84c4..a2842c8c52a 100644 --- a/gcc/objc/objc-act.c +++ b/gcc/objc/objc-act.c @@ -1858,6 +1858,8 @@ get_objc_string_decl (ident, section) chain = meth_var_names_chain; else if (section == meth_var_types) chain = meth_var_types_chain; + else + abort (); for (; chain != 0; chain = TREE_VALUE (chain)) if (TREE_VALUE (chain) == ident) @@ -2081,7 +2083,7 @@ build_selector_translation_table () tree sc_spec, decl_specs; tree chain, initlist = NULL_TREE; int offset = 0; - tree decl, var_decl, name; + tree decl = NULL_TREE, var_decl, name; /* The corresponding pop_obstacks is in finish_decl, called at the end of this function. */ @@ -2353,6 +2355,8 @@ add_objc_string (ident, section) chain = &meth_var_names_chain; else if (section == meth_var_types) chain = &meth_var_types_chain; + else + abort (); while (*chain) { @@ -4222,6 +4226,8 @@ generate_protocol_list (i_or_p) synth_id_with_class_suffix ("_OBJC_CATEGORY_PROTOCOLS", i_or_p), build_int_2 (size + 2, 0)); + else + abort (); expr_decl = build1 (INDIRECT_REF, NULL_TREE, expr_decl); @@ -4599,6 +4605,9 @@ synth_id_with_class_suffix (preamble, ctxt) = (char *) alloca (strlen (preamble) + strlen (protocol_name) + 3); sprintf (string, "%s_%s", preamble, protocol_name); } + else + abort (); + return get_identifier (string); } @@ -4700,6 +4709,8 @@ build_keyword_selector (selector) key_name = KEYWORD_KEY_NAME (key_chain); else if (TREE_CODE (selector) == TREE_LIST) key_name = TREE_PURPOSE (key_chain); + else + abort (); if (key_name) len += IDENTIFIER_LENGTH (key_name) + 1; @@ -4717,6 +4728,8 @@ build_keyword_selector (selector) key_name = KEYWORD_KEY_NAME (key_chain); else if (TREE_CODE (selector) == TREE_LIST) key_name = TREE_PURPOSE (key_chain); + else + abort (); if (key_name) strcat (buf, IDENTIFIER_POINTER (key_name)); @@ -4969,6 +4982,8 @@ build_message_expr (mess) sel_name = args; else if (TREE_CODE (args) == TREE_LIST) sel_name = build_keyword_selector (args); + else + abort (); /* Build the parameter list to give to the method. */ @@ -5375,6 +5390,8 @@ build_selector_expr (selnamelist) selname = selnamelist; else if (TREE_CODE (selnamelist) == TREE_LIST) selname = build_keyword_selector (selnamelist); + else + abort (); if (flag_typed_selectors) return build_typed_selector_reference (selname, 0); @@ -7635,7 +7652,7 @@ gen_declarator (decl, buf, name) return buf; default: - break; + abort (); } return str;