* Makefile.in (final.o): Depend on BASIC_BLOCK_H.
* final.c (final_end_function): Use app_disable. Rearrange note
handling into a switch. Emit deleted labels.
(output_asm_label): Generate label strings for deleted labels.
* flow.c (tail_recursion_label_list): New.
(find_basic_blocks_1): Set label_value_list directly. Collect list
of tail recursion labels from call_placeholders. Don't add deleted
labels to the label value list.
(cleanup_cfg): Use free_EXPR_LIST_list.
(flow_delete_insn_chain): Turn non-removable labels into notes.
(flow_delete_block): Don't disable deleting the block because of
a non-removable label.
(tail_recursion_label_p): New.
(merge_blocks_move_predecessor_nojumps): Don't disable the merge
because of a label.
(merge_blocks_move_successor_nojumps): Likewise. Also move a
jump table.
(merge_blocks): Disable a merge because of tail recursion labels.
* ifcvt.c (merge_if_block): Don't disable a merge because of a label.
Use a more accurate measure of not merging the join block.
(find_if_block): Don't disable conversion because of a label.
(find_if_case_1, find_if_case_2): Likewise.
* jump.c (duplicate_loop_exit_test): Preserve the kind of list
element when copying.
(squeeze_notes): Also leave EH notes.
(mark_jump_label): Ignore deleted labels. Use an INSN_LIST for
REG_LABEL notes.
(delete_insn): Preserve LABEL_NAME in NOTE_SOURCE_FILE when
deleting a label.
* print-rtl.c (print_rtx): Print NOTE_SOURCE_FILE for
NOTE_INSN_DELETED_LABEL. Print `[# deleted]' for a label_ref
referring to a deleted label. Convert tail handling to a switch.
* rtl.def (CODE_LABEL): Rearrange elements to be compatible with NOTE
for NOTE_INSN_DELETED_LABEL.
(NOTE): Fix commentary.
* rtl.h (REG_LABEL): Update commentary wrt INSN_LIST.
(REG_CC_SETTER, REG_CC_USER, REG_LIBCALL): Likewise.
(CODE_LABEL_NUMBER, LABEL_NAME): Update index.
(LABEL_NUSES, LABEL_REFS): Likewise.
* unroll.c (copy_loop_body): Don't copy NOTE_INSN_DELETED_LABEL.
Alexandre Oliva [Thu, 11 May 2000 21:08:18 +0000 (21:08 +0000)]
mn10300.c (print_operand): Print FP constants in hexadecimal.
* config/mn10300/mn10300.c (print_operand): Print FP constants in
hexadecimal.
* config/mn10300/mn10300.md (movsf, movdf): Use the `F' constraint
for FP values.
Denis Chertykov [Thu, 11 May 2000 18:53:24 +0000 (18:53 +0000)]
avr-protos.c (jump_over_one_insn_p): New declaration.
* config/avr/avr-protos.c (jump_over_one_insn_p): New declaration.
* config/avr/avr.c (jump_over_one_insn_p): New function.
* config/avr/avr.md: New peepholes added. Output test and
conditional jump to "sbrc" or "sbrs" command.
Jakub Jelinek [Thu, 11 May 2000 14:20:31 +0000 (16:20 +0200)]
except.c (find_exception_handler_labels_1): New function.
* except.c (find_exception_handler_labels_1): New function.
(find_exception_handler_labels): Split into two functions, dive
into CALL_PLACEHOLDERs when looking for exception handler labels.
Zack Weinberg [Thu, 11 May 2000 08:43:56 +0000 (08:43 +0000)]
cpphash.c (collect_funlike_expansion): Make "# is not followed by a macro argument name" a pedwarn, not an error.
* cpphash.c (collect_funlike_expansion): Make "# is not
followed by a macro argument name" a pedwarn, not an error.
Preserve the # in the output. Suppress the warning if lang_asm.
* gcc.dg/dg.exp: Scan .S files as well as .c files.
* gcc.dg/20000510-1.S: New.
Benjamin Kosnik [Thu, 11 May 2000 02:40:34 +0000 (02:40 +0000)]
std_cmath.h: Tweaks.
2000-05-10 Benjamin Kosnik <bkoz@redhat.com>
* bits/std_cmath.h: Tweaks.
* math/mathconf.h: Tweaks and fixes for HP-UX 11.
(sqrtf): Define away iff !builtin and !in <math.h>.
(sinf): Same.
(cosf): Same.
(fabsf): Same.
At some point this directory should be converted to c++, the
autoconf tests should be run by the c++ compiler (not c), and
<cmath> should be used instead of math.h.
Move declaration of nan() here.
* math/complex-stub.h (cabsl): Remove nan() declaration.
Finish up FreeBSD4.0 support.
* config/bsd/ctype.cc: Scope out toupper, tolower calls.
* config/generic/ctype.cc: And here.
* testsuite/21_strings/char_traits.cc (test02): Guard with
_GLIBCPP_USE_WCHAR_T.
via Phil Edwards <pme@sourceware.cygnus.com>
* bits/std_cctype.h: Remove _GLIBCPP_USE_NAMESPACES.
* acconfig.h: And here.
* acinclude.m4: Same.
* testsuite/27_io/istream.cc: And here.
* testsuite/27_io/ostream.cc: And here.
Makefile.in (libgcc.a, [...]): Depend on FPBIT and DPBIT.
* Makefile.in (libgcc.a, stmp-multilib): Depend on FPBIT and DPBIT.
* mklibgcc.in: Rewrite to not use functions. Don't shortcut
dependancies on FPBIT and DPBIT.
Zack Weinberg [Wed, 10 May 2000 19:11:02 +0000 (19:11 +0000)]
cpphash.h (struct hashnode): Use struct hack for name member.
* cpphash.h (struct hashnode): Use struct hack for name
member.
* cpphash.c (struct hashdummy): New.
(eq_HASHNODE): Second argument is a hashdummy, not a HASHNODE.
(make_HASHNODE): No need to set ->name pointer. Correct
setting of p.
(cpp_lookup): Make 'dummy' a struct hashdummy. Tidy up a bit.
flow.c (find_basic_blocks_1): Do not delete the first bb_note we run across.
* flow.c (find_basic_blocks_1): Do not delete the first
bb_note we run across.
(create_basic_block): Use reorder_insns to move an existing
bb_note to the correct place.
Tom Tromey [Tue, 9 May 2000 22:46:58 +0000 (22:46 +0000)]
StringBuffer.java (toString): Don't mark buffer as shared.
* java/lang/StringBuffer.java (toString): Don't mark buffer as
shared.
(insert(int,char[],int,int): New method.
(delete): New method from Classpath.
(deleteCharAt): Likewise.
(substring): Likewise.
(shared): No longer private.
Added JavaDoc comments from Classpath.
* java/lang/String.java (String(StringBuffer)): Ensure `buffer' is
shared.
Zack Weinberg [Tue, 9 May 2000 19:56:01 +0000 (19:56 +0000)]
top level:
* Makefile.in (WARN_CFLAGS): Add -Wwrite-strings.
(tree.o): Depend on output.h.
* c-decl.c (pending_invalid_xref_file,
current_function_prototype_file): Constify.
(pushdecl): Constify a local char *.
(define_label): Constify filename parameter.
* c-lex.c (init_parse): Constify parameter and return value.
* c-typeck.c (c_expand_asm_operands): Constify filename parameter.
* c-tree.h: Update prototypes.
* c-parse.in: Constify filename member of %union, and if_stmt_file.
* c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y,
objc/objc-parse.c: Regenerate.
* dwarfout.c (dwarfout_init): Constify main_input_filename parameter.
* dwarfout.h: Update prototypes.
* expr.c (expand_expr): Constify a local char *.
* flags.h: Constify main_input_filename.
* function.c (expand_function_end): Constify filename parameter.
* genrecog.c (make_insn_sequence): Use a character array for
c_test_pos.
(main): Remove unused variables.
* input.h: Constify input_filename, main_input_filename, and
file_stack.name. Update prototypes.
* output.h: Declare first_global_object_name and
weak_global_object_name here, as const char *.
* stmt.c (expand_asm_operands): Constify filename parameter.
* toplev.c (compile_file, push_srcloc, debug_start_source_file):
Constify filename parameter.
(input_filename, main_input_filename): Constify.
* toplev.h: Update prototypes.
* tree.c: Include output.h. Don't declare
first_global_object_name or weak_global_object_name. Clean up string
bashing in get_file_function_name_long.
* tree.h (struct tree_decl): Constify filename member.
(input_filename): Constify.
Update prototypes.
* varasm.c (first_global_object_name, weak_global_object_name):
Constify.
(assemble_start_function, assemble_variable): Clean up string bashing.
* gcc.c: Constify all spec-related strings initialized,
transitively, from string constants. Constify all strings
and string variables related to multilibs.
(set_spec, read_specs): Cast argument to free to PTR.
(used_arg): Do not modify multilib_matches. Use strncmp plus
length comparison to compare multilib switches.
* genmultilib: Constify everything declared in multilib.h.
Denis Chertykov [Tue, 9 May 2000 17:53:54 +0000 (17:53 +0000)]
avr-protos.h (extra_constraint): change a type of second argument from char to int to avoid warnings.
* config/avr/avr-protos.h (extra_constraint): change a type of
second argument from char to int to avoid warnings.
(asm_output_byte): Likewise.
* config/avr/avr.c (MAX_LD_OFFSET) New macro.
(initial_elimination_offset): Handle elimination from
FRAME_POINTER_REGNUM to STACK_POINTER_REGNUM.
(legitimate_address_p): Use MAX_LD_OFFSET.
(legitimize_address): Likewise.
(out_movqi_r_mr): Likewise.
(out_movhi_r_mr): Likewise, use `fatal_insn' instead of `fatal'.
(out_movsi_r_mr): Use MAX_LD_OFFSET.
(out_movsi_mr_r): Likewise.
(out_movqi_mr_r): Likewise.
(out_movhi_mr_r): Likewise.
(notice_update_cc): Correct CC for the ashrqi3 with the shift
count as CONST_INT != 6.
(ashlqi3_out): Coding style modifications. Run `fatal_insn' if
shift count is a CONSTANT_P, but not a CONST_INT.
(ashlhi3_out): Coding style modifications.
(ashlsi3_out): Likewise.
(ashrhi3_out): Likewise.
(ashrsi3_out): Likewise.
(lshrhi3_out): Likewise.
(lshrsi3_out): Likewise.
(ashrqi3_out): Generate shift for any known constant count without
scratch register. Run `fatal_insn' if shift count is a CONSTANT_P,
but not a CONST_INT.
(lshrqi3_out): Coding style modifications. Run `fatal_insn' if
shift count is a CONSTANT_P, but not a CONST_INT.
(extra_constraint): change a type of
second argument from char to int to avoid warnings.
(asm_output_byte): Likewise.
(asm_file_end): Output size generated commands count as a hex
number too.
* config/avr/avr.h (RETURN_ADDR_RTX): New macro.
* config/avr/avr.md (addhi3): Fragment commented by &&0 is
removed.
(ashlqi3): Values of "length" attribute changed. Shift count
uses constraints 'n' instead of 'i'.
(ashrqi3): Likewise. Values of "cc" attribute changed. Generate
shifts without clobber register.
(lshrqi3): Shift count uses constraints 'n' instead of 'i'.
(call_insn): Correct test for which_alternative == 1 (was 0).
(call_value_insn): Likewise.
* config/avr/t-avr: Remove definition of FLOAT while generates
fp-bit.c
Richard Kenner [Tue, 9 May 2000 11:07:48 +0000 (11:07 +0000)]
alias.c (nonlocal_reference_p): Minor reformatting.
* alias.c (nonlocal_reference_p): Minor reformatting.
* reload.c (find_equiv_reg): Simplify logic for
CALL_INSN_FUNCTION_USAGE since can't have SUBREG or pseudos and
some some reformatting.
* reload1.c (reload_combine): Don't assume everything in
CALL_INSN_FUNCTION_USAGE is a REG and clean up code a bit.
ifcvt.c (cond_exec_process_insns): New argument prob_val.
* ifcvt.c (cond_exec_process_insns): New argument prob_val.
Attach it to call insns.
(cond_exec_process_if_block): Track probability for true and
false branches.
(dead_or_predicable): Likewise.
Benjamin Kosnik [Tue, 9 May 2000 01:16:34 +0000 (01:16 +0000)]
char_traits.h: use wchar_t utility functions for char_traits<wchar_t> methods.
2000-05-08 Steven King <sxking@uswest.net>
* bits/char_traits.h: use wchar_t utility functions for
char_traits<wchar_t> methods.
* testsuite/21_string/char_traits.cc: New (test02): test
char_traits<wchar_t>
Steven King [Tue, 9 May 2000 01:15:14 +0000 (01:15 +0000)]
2000-0508 Steven King <sxking@uswest.net>
* bits/char_traits.h: use wchar_t utility functions for
char_traits<wchar_t> methods.
* testsuite/21_string/char_traits.cc: New (test02): test
char_traits<wchar_t>
2000-05-08 Benjamin Kosnik <bkoz@cygnus.com>
* acinclude.m4 (GLIBCPP_CXXFLAGS): Add bits for solaris2.8.
ia64.c (ia64_encode_section_info): Exit early for global register variables...
* config/ia64/ia64.c (ia64_encode_section_info): Exit early
for global register variables; don't special case __[CD]TOR_LIST__;
mind ggc_p for string allocation.