Zack Weinberg [Sat, 3 Mar 2001 03:32:55 +0000 (03:32 +0000)]
configure.in: Kill tm.h.
* configure.in: Kill tm.h. Include the files in the $tm_file
list in all three of config.h, hconfig.h, tconfig.h, after the
relevant set of xm_files. Put TARGET_CPU_DEFAULT in all
three, include insn-codes.h in all three (#ifndef GENERATOR_FILE).
* configure: Regenerate.
* Makefile.in (clean): Don't delete tm.h.
* system.h: If SUCCESS_EXIT_CODE and FATAL_EXIT_CODE are not
defined, set them from EXIT_SUCCESS and EXIT_FAILURE. If
those are not defined, set SEC and FEC to 0 and 1.
* gcc.texi: Update to match.
* crtstuff.c: Include tconfig.h, not auto-host.h and tm.h.
* config/fp-bit.c, config/m68k/aux-crt2.asm,
config/m68k/aux-crtn.asm, config/m68k/aux-mcount.c:
Include tconfig.h, not tm.h.
print-rtl.c (print_rtx): Cast enums to int for comparison.
* print-rtl.c (print_rtx): Cast enums to int for comparison.
* c-decl.c (grokdeclarator): Cast enums to int for comparison and
shifts.
* c-format.c (C_STD_VER): Cast to int for comparisons.
(check_function_format): Cast various enums to int for &.
(maybe_read_dollar_number): Likewise.
(check_format_info): Likewise.
(check_format_info_main): Likewise.
* expr.c (emit_move_insn_1): Cast enums to unsigned int for comparison.
(safe_from_p): Likewise.
* varasm.c (const_hash): Cast enum to int for %.
* emit-rtl.c (init_emit_once): Use int loop variable to work around
pcc enum problems with < and ++ operators.
* regclass.c (init_reg_sets_1): Cast enums for comparison.
(choose_hard_reg_mode): Use unsigned int to iterate over CCmodes.
(regclass_init): Change enum class to int to iterate over reg_classes.
* genrecog.c (merge_trees): Cast enums for comparison.
* rtl.h (GET_CODE): Cast to enum rtx_code.
(PUT_CODE): Cast to ENUM_BITFIELD(rtx_code).
(GET_MODE): Cast to enum machine_mode.
(PUT_MODE): Cast to ENUM_BITFIELD(machine_mode).
(GET_NOTE_INSN_NAME): Cast enum to int.
* tree.h (TREE_CODE): Cast to enum tree_code.
(TREE_SET_CODE): Cast VALUE to ENUM_BITFIELD(tree_code).
* timevar.c (timevar_print): Change loop variable id from enum to
unsigned int.
* fixinc/fixincl.c (VLEVEL): Cast enums in comparison to unsigned int.
* config/i386/i386.md: Use PUT_MODE for mode assignment.
* toplev.c (compile_file): Cast enum DFI to int.
(decode_d_option): Likewise.
Nathan Sidwell [Fri, 2 Mar 2001 11:44:57 +0000 (11:44 +0000)]
class.c (check_field_decls): Pointers to member do not a non-pod struct make, as per DR 148.
cp:
* class.c (check_field_decls): Pointers to member do not a
non-pod struct make, as per DR 148.
testsuite:
* g++.old-deja/g++.other/pod1.C: New test.
Nathan Sidwell [Fri, 2 Mar 2001 11:32:45 +0000 (11:32 +0000)]
call.c (joust): cp_pedwarn when using gnu extension concerning worst conversion sequences.
cp:
* call.c (joust): cp_pedwarn when using gnu extension concerning
worst conversion sequences.
testsuite:
* g++.old-deja/g++.ext/overload1.C: New test.
Neil Booth [Fri, 2 Mar 2001 07:35:12 +0000 (07:35 +0000)]
cppfiles.c (struct include_file): Update.
* cppfiles.c (struct include_file): Update.
(stack_include_file): Use search_from.
(cpp_included, find_include_file): Update.
(cpp_execute_include): Update. ptr->name may not be
null terminated. Use the new search_from member variable
of cpp_buffer.
(_cpp_compare_file_date): Similarly.
(search_from): New function, similiar to actual_directory.
(actual_directory): Delete.
(remap_filename): Update. loc->name may not be null terminated.
(struct file_name_list): Rename search_path. Update.
* cpphash.h (struct cpp_buffer): Delete actual_dir. New members
search_from and dir.
(struct cpp_reader): Remove actual_dirs.
* cppinit.c (struct cpp_pending): Update for renamed objects.
(append_include_chain, remove_dup_dir, remove_dup_dirs,
merge_include_chains, cpp_destroy, cpp_start_read): Similarly.
* cpplib.h (struct cpp_options): Similarly.
Per Bothner [Fri, 2 Mar 2001 06:55:33 +0000 (22:55 -0800)]
Changes merged from Kawa's gnu.math.
* java/math/BigInteger.java
* gnu/gcj/math/MPN.java (rshift0): New method handles zero shift count.
(rshift(int[],int[],int,int): Removed - not needed.
(gcd): Use rshift0 rather than rshift.
* java/math/BigInteger.java (setShiftRight): Likewise.
(divide): Simplify by using rshift0.
(divide): Zero-extend results if high-order bit set.
* config/i386/xm-aix.h, config/i386/xm-osf.h: Delete; made
empty by above change.
* config.gcc: Remove references to these files.
* configure.in: Detect stdbool.h.
* configure, config.in: Regenerate.
* system.h: Include stddef.h here if available. Set
HAVE__BOOL based on GCC_VERSION and __STDC_VERSION__. Then
set up a sensible boolean type at the very end.
cpplib.c (_cpp_init_stacks): Cast enum for comparison.
* cpplib.c (_cpp_init_stacks): Cast enum for comparison.
* cppexp.c (lex): Cast enums for comparison.
* cppinit.c (parse_option): Cast enum for comparison.
* cpplex.c (cpp_spell_token): Cast enums to int for minus.
(cpp_output_token): Likewise.
(cpp_can_paste): Cast enums for comparsion and plus/minus.
(cpp_avoid_paste): Cast enums for minus and comparison.
Zack Weinberg [Fri, 2 Mar 2001 01:03:47 +0000 (01:03 +0000)]
gcc.c, [...]: Add zero initializer for cpp_spec field to all array elements.
* gcc.c, cp/lang-specs.h, f/lang-specs.h, java/lang-specs.h,
objc/lang-specs.h: Add zero initializer for cpp_spec field to
all array elements.
* cp/lang-specs.h: Don't put an #ifdef inside the initializer
list; set a default for CPLUSPLUS_CPP_SPEC and use it.
* cpphash.h (struct cpp_reader): Add print_version field.
* cppinit.c (cpp_handle_option): For -v, -version, and --version,
just set print_version and other flags as appropriate.
(cpp_post_options): Print version here if print_version is set.
* toplev.c (exit_after_options): New flag.
(independent_decode_option): Don't exit here; just set
exit_after_options.
(main): Exit after calling lang_hooks.post_options if
exit_after_options is true.
* cppinit.c (append_include_chain): Drop never-used case QUOTE.
(merge_include_chains): Adjust comment to match code.
Zack Weinberg [Fri, 2 Mar 2001 00:40:00 +0000 (00:40 +0000)]
stringpool.c (set_identifier): New function.
* stringpool.c (set_identifier): New function.
* tree.h: Prototype it.
* c-parse.in: Kill D_YES. If compiled for objc, call
save_and_forget_protocol_qualifiers from init_reswords.
* objc/objc-act.c (remember_protocol_qualifiers,
forget_protocol_qualifiers): Don't diddle C_IS_RESERVED_WORD.
Swap out the non-keyword IDENTIFIER_NODEs for keyword ones, or
vice versa.
(save_and_forget_protocol_qualifiers): New function.
* c-lex.h: Prototype save_and_forget_protocol_qualifiers.
Nathan Sidwell [Thu, 1 Mar 2001 14:01:39 +0000 (14:01 +0000)]
Implement using decls inside template functions.
cp:
Implement using decls inside template functions.
* decl2.c (validate_nonmember_using_decl): Don't special case
fake_std_node in the global namespace. Don't reject early when
processing a template.
(do_local_using_decl): Add to statement tree. Don't do further
processing when building a template.
* pt.c (tsubst_expr, DECL_STMT case): Deal with USING_DECLs.
testsuite:
* g++.old-deja/g++.pt/using1.C: New test.
Nathan Sidwell [Thu, 1 Mar 2001 13:51:00 +0000 (13:51 +0000)]
decl2.c (do_nonmember_using_decl): Don't complain if we find same function.
cp:
* decl2.c (do_nonmember_using_decl): Don't complain if we find
same function. Do complain about ambiguating extern "C"
declarations.
testsuite:
* g++.old-deja/g++.other/using9.C: New test.
Jan Hubicka [Wed, 28 Feb 2001 18:07:05 +0000 (19:07 +0100)]
i386.md (sse_setccsf, [...]): New.
* i386.md (sse_setccsf, sse_setccdf): New.
(sse_cmp* patterns): Use '%D' instead of outputtting condition
flag directly.
* i386.c (sse_comparison_operator): Accept the supported unordered
comparses; be ready for fast_math.
(print_operand): Support 'D'.
Jan Hubicka [Wed, 28 Feb 2001 16:24:00 +0000 (17:24 +0100)]
caller-save.c (reg_save_code, [...]): Index by mode, not NREGS.
* caller-save.c (reg_save_code, reg_restore_code): Index by mode, not
NREGS.
(insert_save, insert_restore): New parameter save_mode.
(init_caller_save): Update initialization of reg_save_code
and reg_restore_code.
(save_call_clobbered_regs): Compute save_modes and update calls to
reg_save_code and reg_restore_code.
(insert_restore): Unsignetize numbers; use save_modes to choose mode
of spill; update use of reg_restore_code.
(insert_save): Likewise.
* i386.h (HARD_REGNO_CALLER_SAVE_MODE): Update.
* c4x.h (HARD_REGNO_CALLER_SAVE_MODE): Update.
* regs.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
Jan Hubicka [Wed, 28 Feb 2001 16:20:43 +0000 (16:20 +0000)]
ifcvt.c (noce_emit_store_flag, [...]): Use reversed_comparison_code instead of reverse_comparison and...
* ifcvt.c (noce_emit_store_flag, noce_try_store_flag_constants,
noce_try_store_flag_inc, noce_try_store_flag_mask,
noce_try_cmove_arith):
Use reversed_comparison_code instead of reverse_comparison and
can_reverse_comparison_p.
Jan Hubicka [Wed, 28 Feb 2001 16:19:16 +0000 (17:19 +0100)]
jump.c (reversed_comparison_code_parts): Allow reversal of unordered compares in -ffast-math mode...
* jump.c (reversed_comparison_code_parts): Allow reversal of
unordered compares in -ffast-math mode; reverse ordered compares
for FP even w/o -ffast-math.
Diego Novillo [Wed, 28 Feb 2001 01:25:42 +0000 (01:25 +0000)]
c-common.c (walk_stmt_tree): Visit the chain of the current tree even if walk_subtrees is 0.
2001-02-27 Diego Novillo <dnovillo@redhat.com>
* c-common.c (walk_stmt_tree): Visit the chain of the current tree
even if walk_subtrees is 0.
* c-semantics.c (prune_unused_decls): Return a non-null value to
stop traversing the tree chain.
Jan Hubicka [Tue, 27 Feb 2001 14:54:15 +0000 (15:54 +0100)]
i386.md (movsf, movdf): Use movaps for reg-reg moves if TARGET_PARTIAL_REG_DEPENDENCY.
* i386.md (movsf, movdf): Use movaps for reg-reg moves if
TARGET_PARTIAL_REG_DEPENDENCY.
(truncdfsf2_1_sse, truncdfsf2_2): Penalize the fpreg->mem case.
Nathan Sidwell [Tue, 27 Feb 2001 13:12:17 +0000 (13:12 +0000)]
Fix ctor vtable vcall offsets.
cp:
Fix ctor vtable vcall offsets.
* class.c (struct vtbl_init_data_s): Add rtti_binfo member.
(build_rtt_vtbl_entries): Lose RTTI_BINFO parameter.
(get_matching_base): Remove.
(get_original_base): New function.
(build_vtbl_initializer): Initialize vid.rtti_binfo.
Use a virtual thunk for a ctor vtable with an index
(add_vcall_offset_vtbl_entries_1): Check if binfo has lost a
primary base within a constructor vtable. Only set
BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset
when primary base has been lost.
* cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment.
testsuite:
* g++.old-deja/g++.abi/vtable3.h: Check vcall offsets too.
Benjamin Kosnik [Tue, 27 Feb 2001 04:28:36 +0000 (04:28 +0000)]
std_stdexcept.h (logic_error::logic_error): Use string object, not reference.
2001-02-26 Benjamin Kosnik <bkoz@redhat.com>
libstdc++/1972
libstdc++/2089
* include/bits/std_stdexcept.h (logic_error::logic_error): Use
string object, not reference.
(runtime_error::runtime_error): Same.
Benjamin Kosnik [Tue, 27 Feb 2001 04:13:17 +0000 (04:13 +0000)]
std_stdexcept.h (logic_error::logic_error): Use string object, not reference.
2001-02-26 Benjamin Kosnik <bkoz@redhat.com>
libstdc++/1972
libstdc++/2089
* include/bits/std_stdexcept.h (logic_error::logic_error): Use
string object, not reference.
(runtime_error::runtime_error): Same.
* testsuite/19_diagnostics/stdexceptions.cc: New file.
Zack Weinberg [Sun, 25 Feb 2001 17:23:42 +0000 (17:23 +0000)]
config.gcc: Put back pa/t-openbsd and rs6000/t-openbsd.
* config.gcc: Put back pa/t-openbsd and rs6000/t-openbsd.
* config/mips/mips.c (mips_make_temp_file): Set temp_filename
properly.
(mips_asm_file_end): Free temp_filename here.