1. 29 May, 2000 10 commits
    • cpplib.h (cpp_reader): Remove if_stack. · ea4a453b
      	* cpplib.h (cpp_reader): Remove if_stack.  Change
      	potential_control_macro to a cpp_hashnode *.  Add skipping flag.
      	* cpphash.h (struct ihash): Change control_macro to a
      	cpp_hashnode * and shorten name to cmacro.
      	Add NEVER_REINCLUDE constant.
      
      	* cppfiles.c (redundant_include_p): Drop cpp_reader argument.
      	Examine the cmacro node directly, no need to call cpp_defined.
      	(_cpp_execute_include, read_include_file): Set cmacro to
      	NEVER_REINCLUDE, not U"".
      	* cpplex.c (cpp_push_buffer): Don't set new->if_stack.
      	(cpp_get_token): If pfile->skipping is true, discard text and
      	keep scanning until we hit a directive; don't expand macros.
      
      	* cpplib.c (struct if_stack): Remove if_succeeded, add
      	was_skipping. Change control_macro to a cpp_hashnode * and
      	shorten name to cmacro.  Remove typedef IF_STACK.
      	(parse_ifdef), detect_if_not_defined): Return a cpp_hashnode *.
      	(conditional_skip, skip_if_group,
      	consider_directive_while_skipping): Delete.
      	(push_conditional): New.
      	(_cpp_handle_directive): Don't process directives other than
      	conditionals if we are skipping.
      
      	(do_ifdef, do_ifndef, do_if, do_else, do_elif, do_endif):
      	Update to new scheme.
      	(validate_else): Skip rest of line here, unconditionally.
      	(_cpp_unwind_if_stack): The stack is per-buffer.  Force
      	pfile->skipping off.
      
      	(all): Remove `scare quotes' from error messages.
      
      	* gcc.dg/cpp-mi.c: Add another case, cpp-mix.h, where the
      	guard macro is already defined when the header is first
      	included.
      	* gcc.dg/cpp-mix.h: New file.
      	* gcc.dg/endif-label.c: Update patterns to match compiler.
      
      	* g++.brendan/complex1.C: Declare abort.
      	* g++.law/refs4.C: Remove XFAIL.
      	* g++.oliva/expr2.C: Declare abort and exit.
      
      From-SVN: r34253
      Zack Weinberg committed
    • cp-tree.h (CLASSTYPE_ALIGN_UNIT): New macro. · 1b50716d
      	* cp-tree.h (CLASSTYPE_ALIGN_UNIT): New macro.
      	* class.c (layout_empty_base): Use CLASSTYPE_ALIGN_UNIT, not
      	CLASSTYPE_ALIGN.
      
      From-SVN: r34252
      Mark Mitchell committed
    • function.c (emit_return_into_block): New line_note arg; emit it. · 86c82654
              * function.c (emit_return_into_block): New line_note arg; emit it.
              (thread_prologue_and_epilogue_insns): Attempt to locate a line note
              for the close brace to accompany HAVE_return.  Move all line notes
              following the epilogue to before the NOTE_INSN_EPILOGUE_BEG.
      
      From-SVN: r34251
      Richard Henderson committed
    • longlong.h [__alpha] (count_leading_zeros): New. · 8f4773ea
              * longlong.h [__alpha] (count_leading_zeros): New.
              (count_trailing_zeros): New.
              (COUNT_LEADING_ZEROS_0): New.
      
              * config/alpha/alpha.c (alpha_zero_comparison_operator): New.
              (alpha_split_conditional_move): New.
              * config/alpha/alpha-protos.h: Prototype them.
              * config/alpha/alpha.h (PREDICATE_CODES): Update.
              (CPP_CPU_DEFAULT_SPEC): Fix typo for EV67.
              * config/alpha/alpha.md: Update ffs cix commentary.
              (*ze_and_ne): New.
              (*nabssf2, *nabsdf2): New.
              (*mov[qhsd]icc_internal): Use add_operand.
              (if_then_else constant splitters): New.
              (*cmp_sadd_di, *cmp_sadd_si, *cmp_sadd_sidi): New.
              (*cmp_ssub_di, *cmp_ssub_si, *cmp_ssub_sidi): New.
      
      From-SVN: r34250
      Richard Henderson committed
    • Daily bump. · e2c7a29e
      From-SVN: r34249
      Jeff Law committed
    • combine.c (force_to_mode): Convert subtraction from a constant to NEG or NOT when conditions allow. · d41638e4
              * combine.c (force_to_mode) [MINUS]: Convert subtraction from
              a constant to NEG or NOT when conditions allow.
      
      From-SVN: r34248
      Richard Henderson committed
    • combine.c (combine_simplify_rtx): Don't create an if_then_else unless both args… · 085f1714
      combine.c (combine_simplify_rtx): Don't create an if_then_else unless both args are general_operand.
      
              * combine.c (combine_simplify_rtx): Don't create an if_then_else
              unless both args are general_operand.  Don't canonicalize plus
              to ior unless it helps.
      
      From-SVN: r34247
      Richard Henderson committed
    • toplev.c (rest_of_compilation): Set no_new_pseudos after flow1; instead track… · 7b40bc6b
      toplev.c (rest_of_compilation): Set no_new_pseudos after flow1; instead track register_life_up_to_date.
      
              * toplev.c (rest_of_compilation): Set no_new_pseudos after flow1;
              instead track register_life_up_to_date.  Toggle no_new_pseudos
              around if_convert.
      
      From-SVN: r34246
      Richard Henderson committed
    • re GNATS gcj/242 (Compiler generates call to wrong method from inner class) · f192590a
      2000-05-29  Bryce McKinlay  <bryce@albatross.co.nz>
      
      	* libjava.lang/PR242.java: New file. PR gcj/242.
      
      From-SVN: r34245
      Bryce McKinlay committed
    • rs6000.c (output_cbranch): Escape '%' characters so output_operand doesn't see them. · 37c67319
      * config/rs6000/rs6000.c (output_cbranch): Escape '%' characters
      so output_operand doesn't see them.
      
      From-SVN: r34244
      Geoff Keating committed
  2. 28 May, 2000 28 commits
    • lcm.c (make_preds_opaque): Fix comment. · 1270c255
      	* lcm.c (make_preds_opaque): Fix comment.
      	(optimize_mode_switching): Use NORMAL_MODE instead of
      	MODE_USES_IN_EXIT_BLOCK.  Change leftover instance of
      	FP_MODE_NONE to no_mode.  Rename MODE_AT_ENTRY to NORMAL_MODE.
      	Handle insertions before an existing NOTE_INSN_BASIC_BLOCK.
      	* tm.texi (OPTIMIZE_MODE_SWITCHING): Refer to NORMAL_MODE.
      	(MODE_USES_IN_EXIT_BLOCK): Delete.
      	(MODE_AT_ENTRY) Rename to NORMAL_MODE.
      	* sh.h (MODE_USES_IN_EXIT_BLOCK): Delete.
      	(MODE_AT_ENTRY): Rename to NORMAL_MODE.
      	(MODE_NEEDED): Don't look for USE.
      	(EPILOGUE_USES): Define.
      
      From-SVN: r34243
      Clinton Popetz committed
    • * gcc.c-torture/execute/20000528-1.c: New test. · bb078eb4
      From-SVN: r34242
      Alexandre Oliva committed
    • toplev.h (skip_leading_substring): New macro. · 6f5ef761
      2000-05-28  Gabriel Dos Reis  <gdr@codesourcery.com>
      
              * toplev.h (skip_leading_substring): New macro.
              * toplev.c (decode_f_option): Use skip_leading_substring instead
              of strncmp.
              (decode_W_option): Likewise.
      
      cp/
      
      2000-05-28  Gabriel Dos Reis  <gdr@codesourcery.com>
      
              * decl2.c (lang_decode_option): Use skip_leading_substring instead
              of plain strncmp.
      
      From-SVN: r34240
      Gabriel Dos Reis committed
    • regclass.c (record_operand_costs): Protect reg_changes_size with CLASS_CANNOT_CHANGE_SIZE. · 9ef07cf1
              * regclass.c (record_operand_costs): Protect reg_changes_size
              with CLASS_CANNOT_CHANGE_SIZE.
      
      From-SVN: r34238
      Richard Henderson committed
    • Remove duplicate name and extraneous blank line · 97b0694a
      From-SVN: r34236
      Alexandre Oliva committed
    • refs4.C: Mark as XFAIL. · 5ac707b8
      * g++.old-deja/g++.law/refs4.C: Mark as XFAIL.
      * g++.old-deja/g++.law/temps4.C: Likewise.
      
      From-SVN: r34235
      Alexandre Oliva committed
    • * expr2.C: New test. · 7fcc15aa
      From-SVN: r34234
      Alexandre Oliva committed
    • code-gen4.C: Include stdio.h and stdlib.h. · e801c5c2
      * g++.old-deja/g++.brendan/code-gen4.C: Include stdio.h and
      stdlib.h.  Call abort() on failure.
      * g++.old-deja/g++.law/refs4.C: Likewise.
      * g++.old-deja/g++.law/temps4.C: Likewise.
      * g++.old-deja/g++.brendan/complex1.C: Don't assume argc is 1.
      * gcc.c-torture/execute/20000112-1.c: Include string.h.
      
      From-SVN: r34233
      Alexandre Oliva committed
    • operators.def (<?): Duplicated, should have been... · 9193780a
      * operators.def (<?): Duplicated, should have been...
      (>?): this.  Fixed.
      
      From-SVN: r34232
      Alexandre Oliva committed
    • bugs.texi: Note that debugging information for common block items is emitted now. · 6c2a6a85
      2000-05-28  Toon Moene  <toon@moene.indiv.nluug.nl>
      
      	* bugs.texi: Note that debugging information for
      	common block items is emitted now.
      	* news.texi: Ditto.
      
      From-SVN: r34231
      Toon Moene committed
    • function.c (diddle_return_value): A pcc-style struct return returns a pointer. · 5828d725
              * function.c (diddle_return_value): A pcc-style struct return
              returns a pointer.
      
      From-SVN: r34230
      Richard Henderson committed
    • Daily bump. · 6745c1b9
      From-SVN: r34229
      Jeff Law committed
    • cppfiles.c: Read files in, using mmap if possible, then prescan them separately. · f8f769ea
      	* cppfiles.c: Read files in, using mmap if possible, then
      	prescan them separately.
      	(read_file, read_with_read): New functions.
      	* cpplex.c: Don't define UCHAR_MAX.
      	(_cpp_read_and_prescan): Rename to _cpp_prescan.  Don't read
      	the file here.
      
      	* cppinit.c (handle_option): Automatically define __cplusplus,
      	__OBJC__, __ASEEMBLER__, _LANGUAGE_FORTRAN here when we see
      	the respective -lang switch.
      
      	* cpphash.h (enum node_type, struct hashnode, _cpp_lookup
      	prototype): Move to...
      	* cpplib.h: ... here.  Rename struct hashnode to struct
      	cpp_hashnode and give it a typedef.  Rename _cpp_lookup to
      	cpp_lookup.  Add 'fe_value' slot, a union tree_node *.
      
      From-SVN: r34228
      Zack Weinberg committed
    • rs6000.md (movsi): Constify 'name'. · e79f71f7
      * config/rs6000/rs6000.md (movsi): Constify 'name'.
      
      * regclass.c [CLASS_CANNOT_CHANGE_SIZE]
      (class_can_change_size): New variable.
      (reg_changes_size): New variable.
      (init_reg_sets_1): Initialise class_can_change_size.
      (record_operand_costs): Remove subreg_changes_size.
      Don't pass it around.  Instead update reg_changes_size.
      (regclass): Initialise and free reg_changes_size.  If a register
      changes size, don't preference it to a class that contains
      registers that can't change size.
      (record_reg_classes): Don't look at subreg_changes_size.
      
      From-SVN: r34227
      Geoff Keating committed
    • Relative to g++.dg/special: · d2b51b10
      	* conpr-1.C, conpr-2.C, conpr-3.C: Include stdlib.h.
      
      	Relative to g++.old-deja:
      	* g++.brendan/complex1.C, g++.jason/optimize2.C,
      	g++.mike/p9732b.C, g++.other/addrof1.C, g++.other/dyncast5.C,
      	g++.other/init5.C, g++.other/init7.C, g++.other/union2.C,
      	g++.pt/vbase1.C, g++.robertl/eb14.C, g++.robertl/eh990323-1.C,
      	g++.robertl/eh990323-2.C, g++.robertl/eh990323-3.C,
      	g++.robertl/eh990323-4.C, g++.robertl/eh990323-5.C,
      	g++.robertl/ice990323-2.C: Prototype exit and/or abort.
      
      	* g++.brendan/nest21.C, g++.eh/rethrow3.C, g++.jason/init3.C,
      	g++.law/arm15.C, g++.law/cvt2.C, g++.law/visibility17.C,
      	g++.mike/eh23.C, g++.mike/eh25.C, g++.mike/eh34.C,
      	g++.mike/eh48.C, g++.mike/eh55.C, g++.mike/p2736.C,
      	g++.oliva/new1.C, g++.other/align.C, g++.robertl/eb39.C,
      	g++.robertl/eb54.C, g++.robertl/eb63.C: Include stdlib.h
      	and/or string.h.
      
      	* g++.other/goto1.C: Update expectations for error messages.
      
      From-SVN: r34226
      Zack Weinberg committed
    • print-rtl.c (reg_names): Remove const. · e087aeb2
              * print-rtl.c (reg_names): Remove const.
              * regclass.c (reg_names): Likewise.
              * regs.h (reg_names): Likewise.
              * hard-reg-set.h (reg_names): Likewise.
      
      From-SVN: r34225
      Richard Henderson committed
    • cp-tree.h (ansi_opname): Make it a macro. · 596ea4e5
      2000-05-27  Alex Samuel    <samuel@codesourcery.com>
      	    Mark Mitchell  <mark@codesourcery.com>
      
      	* cp-tree.h (ansi_opname): Make it a macro.
      	(ansi_assopname): Likewise.
      	(struct lang_decl_flags): Add assignment_operator_p.
      	(struct lang_decl): Add operator_code.
      	(DECL_VTT_PARM): Adjust.
      	(DECL_OVERLOADED_OPERATOR_P): Return the operator_code for an
      	overloaded operator.
      	(SET_OVERLOADED_OPERATOR_CODE): New macro.
      	(DECL_ASSIGNMENT_OPERATOR_P): New macro.
      	(DECL_ARRAY_DELETE_OPERATOR_P): Adjust.
      	(opname_tab): Remove.
      	(assignop_tab): Likewise.
      	(operator_name_info_t): New type.
      	(operator_name_info): New variable.
      	(assignment_operator_name_info): Likewise.
      	(build_cp_library_fn): Remove declaration.
      	(push_cp_library_fn): Likewise.
      	(operator_name_string): Likewise.
      	(build_decl_overload): Likewise.
      	* call.c (print_z_candidates): Simplify.
      	(build_object_call): Adjust usage of ansi_opname.  Use
      	DECL_OVERLOADED_OPERATOR_P.
      	(op_error): Adjust operator name lookup.
      	(build_conditional_expr): Adjust usage of ansi_opname.
      	(build_new_op): Likewise.
      	(build_op_delete_call): Likewise.
      	(build_over_call): Likewise.
      	(joust): Use DECL_OVERLOADED_OPERATOR_P.
      	* decl.c (duplicate_decls): Copy operator_code.
      	(init_decl_processing): Adjust parameters to push_cp_library_fn.
      	(builtin_function): Adjust parameters to build_library_fn_1.
      	(build_library_fn_1): Accept an overloaded operator code.
      	(build_library_fn): Pass ERROR_MARK.
      	(build_cp_library_fn): Accept an overloaded operator code.
      	(push_cp_library_fn): Likewise.
      	(grokfndecl): Tweak.
      	(grokdeclarator): Simplify code to compute names of overloaded
      	operators.  Adjust use of ansi_opname.
      	(ambi_op_p): Work on tree_codes, not identifiers.
      	(unary_op_p): Likewise.
      	(grok_op_properties): Likewise.
      	(start_function): Use DECL_OVERLOADED_OPERATOR_P.
      	(lang_mark_tree): Don't try to mark the operator_code.
      	* decl2.c (grok_function_init): Use DECL_OVERLOADED_OPERATOR_P.
      	* error.c (dump_decl): Remove special handling for operator
      	names.
      	(dump_function_name): Likewise.
      	(dump_expr): Adjust name lookup of operators.
      	(op_to_string): Simplify.
      	(assop_to_string): Likewise.
      	* init.c (build_new_1): Adjust use of ansi_opname.
      	* lex.c (opname_tab): Remove.
      	(assignop_tab): Likewise.
      	(ansi_opname): Likewise.
      	(ansi_assopname): Likewise.
      	(operator_name_string): Likewise.
      	(reinit_lang_specific): Likewise.
      	(operator_name_info): New variable.
      	(assignment_operator_name_info): Likewise.
      	(init_operators): New function.
      	(init_parse): Use it.
      	(do_identifier): Adjust use of ansi_opname.
      	* method.c (mangle_expression): Don't use ansi_opname for
      	mangling.
      	(build_decl_overload_real): Use DECL_OVERLOADED_OPERATOR_P.
      	(build_decl_overload): Remove.
      	(build_typename_overload): Use OPERATOR_TYPENAME_FORMAT directly.
      	(do_build_assign_ref): Adjust use of ansi_opname.
      	(synthesize_method): Likewise.
      	(implicitly_declare_fn): Likewise.
      	* operators.def: New file.
      	* parse.y (operator): Adjust use of ansi_opname.
      	* pt.c (tsubst_decl): Use IDENTIFIER_OPNAME_P.
      	(set_mangled_name_for_template_decl): Don't play games with
      	current_namespace.
      	(special_function_p): Adjust use of ansi_opname.
      	* typeck.c (check_return_expr): Likewise.
      	* Make-lang.in (cc1plus): Depend on operators.def.
      	* Makefile.in (lex.o): Likewise.
      	(decl.o): Likewise.
      
      Co-Authored-By: Mark Mitchell <mark@codesourcery.com>
      
      From-SVN: r34223
      Alex Samuel committed
    • alpha.c (alpha_does_function_need_gp): Test TARGET_PROFILING_NEEDS_GP in the if,… · 4f1c5cce
      alpha.c (alpha_does_function_need_gp): Test TARGET_PROFILING_NEEDS_GP in the if, instead of with an ifdef.
      
              * config/alpha/alpha.c (alpha_does_function_need_gp): Test
              TARGET_PROFILING_NEEDS_GP in the if, instead of with an ifdef.
              (alpha_expand_prologue): Emit prologue_mcount if needed.
              * config/alpha/alpha.h (TARGET_PROFILING_NEEDS_GP): Default to 0.
              * config/alpha/alpha.md (prologue_mcount): New.
              * config/alpha/linux.h (FUNCTION_PROFILER): Remove.
              (TARGET_PROFILING_NEEDS_GP): Undef before redefining.
              * config/alpha/netbsd.h: Likewise.
      
      From-SVN: r34222
      Richard Henderson committed
    • elf.h (SELECT_SECTION): Mirror Kenner's May 19 change to config/elfos.h. · a1920fc3
              * config/alpha/elf.h (SELECT_SECTION): Mirror Kenner's May 19
              change to config/elfos.h.
      
      From-SVN: r34221
      Richard Henderson committed
    • alpha-protos.h (alpha_arg_info_reg_val): Protect with RTX_CODE. · a82c7f05
              * config/alpha/alpha-protos.h (alpha_arg_info_reg_val): Protect
              with RTX_CODE.
              (alpha_write_linkage): Protect with BUFSIZ.
              (alpha_need_linkage): Update prototype.
              * config/alpha/alpha.c (function_arg): Move VMS code here.
              (alpha_links_base): Remove.
              (alpha_links): New.
              (mark_alpha_links_node, mark_alpha_links): New.
              (alpha_write_one_linkage): New.
              (alpha_need_linkage): Use a splay tree.  Build the linkage symbol.
              (alpha_write_linkage): Use splay_tree_foreach.
              * config/alpha/alpha.md (call_vms): Use alpha_need_linkage
              to get the linkage symbol.
              (call_value_vms): Likewise.
              * config/alpha/elf.h (output_file_directive): Remove decl.
              (ctors_section, dtors_section): Prototype.
              (sbss_section, sdata_section): Prototype.
              * config/alpha/vms.h (FUNCTION_ARG): Remove.
              (readonly_section, link_section, literals_section): Prototype.
              (ctors_section, dtors_section): Prototype.
              (vms_valid_decl_attribute_p): Remove decl.
              (alpha_arg_type, alpha_arg_info_reg_val): Likewise.
      
      From-SVN: r34220
      Richard Henderson committed
    • Makefile.in (resource.o): Depend on except.h. · d80eb1e1
              * Makefile.in (resource.o): Depend on except.h.
              * except.h (output_exception_table_data): Prototype.
              * genconfig.c (gen_peephole2): Prototype.
              * genemit.c (main): Include ggc.h.
              * genoutput.c: Revert parts of last change: include errors.h
              (main): Set progname.
              * recog.c: Include hard-reg-set.h before recog.h.
              * resource.c: Include except.h.
      
      From-SVN: r34219
      Richard Henderson committed
    • combine.c (subst): Honour CLASS_CANNOT_CHANGE_SIZE when substituting the REG in… · ed8afe3a
      combine.c (subst): Honour CLASS_CANNOT_CHANGE_SIZE when substituting the REG in a (subreg:X (reg:Y...
      
      * combine.c (subst): Honour CLASS_CANNOT_CHANGE_SIZE when
      substituting the REG in a (subreg:X (reg:Y ...)).
      
      From-SVN: r34217
      Geoff Keating committed
    • cpplex.c (_cpp_lex_line): Merge vertical space. · f624ffa7
      	* cpplex.c (_cpp_lex_line): Merge vertical space.  Flag
      	first token of a line BOL.  Update EOF code for this.
      	Remove illegal directive check - it appears in the (not
      	yet committed) caller.
      	* cpplib.h (BOL): New flag.
      
      From-SVN: r34216
      Neil Booth committed
  3. 27 May, 2000 2 commits
    • cpplex.c (_cpp_init_toklist): No comment space to initialise. · ad265aa4
              * cpplex.c (_cpp_init_toklist): No comment space to initialise.
      	(_cpp_free_toklist): No comment space to free.
      	(expand_comment_space): Remove.
              (save_comment_space): Place the comment in the current token and
              not in a separate comment space.
              (_cpp_lex_line): Save comments during plain code and #define
              directives only.
              * cpplib.h (struct _cpp_toklist): Remove comment space.
      
      From-SVN: r34215
      Neil Booth committed
    • cppexp.c (parse_assertion): Supply extra argument to _cpp_init_toklist. · d1d9a6bd
      	* cppexp.c (parse_assertion): Supply extra argument to
      	_cpp_init_toklist.
      	* cpplib.c (do_assert, do_unassert): Similarly.
      	* cpphash.h (_cpp_init_toklist) Update.
      	(_cpp_expand_token_space): New.
      	(DUMMY_TOKEN, NO_DUMMY_TOKEN): New.
      	* cpplex.c (_cpp_init_toklist): New argument.
      	(parse_string2): New argument multiline_ok.
      	(spell_token): Take a const cpp_token *.
      	(INIT_NAME): Replace with INIT_TOKEN_NAME.  Update tokens_used.
      	(SPELL_ macros): Replace with enum.
      	(expand_token_space): Replace with _cpp_expand_token_space.
      	Take COUNT argument.
      	(IS_DIRECTIVE): Update.
      	(_cpp_lex_line): Update token structure before parsing number.
      	Don't assume start at beginning of token list.
      	(save_comment): Use INIT_TOKEN_NAME.
      
      From-SVN: r34214
      Neil Booth committed