Michael Hayes [Wed, 6 Jan 1999 03:20:44 +0000 (03:20 +0000)]
c4x.md (addqi3): If the destination operand is a hard register other than an extended precision...
* config/c4x/c4x.md (addqi3): If the destination operand is
a hard register other than an extended precision register,
emit addqi3_noclobber.
(*addqi3_noclobber_reload): New pattern added so that reload
will recognise a store of a pseudo, equivalent to the sum
of the frame pointer and a constant, as an add insn.
expr.c (store_expr): If the lhs is a memory location pointed to be a postincremented (or...
�
* expr.c (store_expr): If the lhs is a memory location pointed
to be a postincremented (or postdecremented) pointer, always
force the rhs to be evaluated into a pseudo.
expr.c (store_expr): If the lhs is a memory location pointed to be a postincremented (or...
�
* expr.c (store_expr): If the lhs is a memory location pointed
to be a postincremented (or postdecremented) pointer, always
force the rhs to be evaluated into a pseudo.
Kaveh R. Ghazi [Tue, 5 Jan 1999 19:11:22 +0000 (19:11 +0000)]
Makefile.in (gcc.o, [...]): Depend on prefix.h.
* Makefile.in (gcc.o, prefix.o, cccp.o, cpplib.o): Depend on prefix.h.
* cccp.c: Include prefix.h, don't prototype prefix.c functions.
(new_include_prefix): Constify char* parameters.
* cppfiles.c (read_name_map): Likewise.
(append_include_chain): Likewise. Also, use a writable char* copy
of parameter `dir' which we then modify, rather than using the
parameter itself to store the new writable string.
(remap_filename): Constify some variables. Also, use a writable
char* to store an allocated string which we will be modifying.
* cpplib.c: Include prefix.h, don't prototype prefix.c functions.
(cpp_start_read): Constify variable `str'.
* cpplib.h (append_include_chain): Constify a char* parameter.
* gcc.c Include prefix.h, don't prototype prefix.c functions.
(add_prefix, save_string): Constify char* parameters.
(fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes.
* prefix.c: Include prefix.h.
(get_key_value, translate_name, save_string, update_path,
set_std_prefix): Constify various char* parameters and variables.
(save_string): Use xmalloc, not malloc.
(translate_name): Use a writable temporary variable to create and
modify a string before setting it to a const char*.
* prefix.h: New file to prototype functions exported from prefix.c.
Zack Weinberg [Mon, 4 Jan 1999 12:38:22 +0000 (12:38 +0000)]
cpplib.c (skip_if_group): Split out the logic that handles directive recognition to its own function.
1998-12-21 18:03 -0500 Zack Weinberg <zack@rabi.phys.columbia.edu>
* cpplib.c (skip_if_group): Split out the logic that handles
directive recognition to its own function. Don't use
parse markers; use a bare pointer into the buffer. Use
copy/skip_rest_of_line instead of doing it by hand. Remove
`return on any directive' mode which was never used, and take
only one argument.
(consider_directive_while_skipping): New function, subroutine
of skip_if_group. Logic streamlined a bit.
(conditional_skip, do_elif, do_else): Call skip_if_group with
only one argument.
Kaveh R. Ghazi [Mon, 4 Jan 1999 08:11:13 +0000 (08:11 +0000)]
Warning fixes:
* mips-tdump.c (st_to_string, sc_to_string, glevel_to_string,
lang_to_string, type_to_string): Make return type const char*.
(print_symbol): Apply `const' keyword to a char*.
(print_file_desc): Cast structure member `crfd' to ulong when
comparing against one.
* mips-tfile.c (pfatal_with_name): Apply `const' keyword to char*.
(fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes.
(progname, input_name): Apply `const' keyword to a char*.
Don't redundantly include sys/stat.h.
(alloc_info): Apply `const' keyword to a char*.
(st_to_string, sc_to_string): Likewise.
(hash_string): Cast variable `hash_string' to a symint_t when
comparing against one.
(add_string): Cast PAGE_USIZE to Ptrdiff_t when comparing against one.
Likewise cast it to long when comparing against one.
(add_local_symbol): Apply `const' keyword to a char*.
(add_ext_symbol): Likewise.
(add_unknown_tag): Likewise.
(add_procedure): Cast a printf-style field width to an int.
(add_file): Cast PAGE_USIZE to long when comparing against one
(parse_begin): Cast a printf-style field width to an int.
(parse_bend): Likewise.
(parse_def): Likewise.
(parse_end): Likewise.
(mark_stabs): Mark parameter `start' with ATTRIBUTE_UNUSED.
(parse_stabs_common): Fix format specifier.
(parse_input): Change type of variable `i' to Size_t.
(write_object): Fix arguments to match format specifiers.
Cast variable `num_write' to long when comparing against one.
(read_seek): Cast variable `sys_read' to symint_t when comparing
against one. Fix arguments to match format specifiers. Cast
variable `size' to long when comparing against one.
(copy_object): Cast result of `sizeof' to int when comparing
against one. Fix arguments to match format specifiers. Cast
variable `ifd' to long when comparing against a signed value.
Likewise, likewise.
Kaveh R. Ghazi [Mon, 4 Jan 1999 07:48:37 +0000 (07:48 +0000)]
c-common.c (decl_attributes): Allow applying attribute `unused' on a LABEL_DECL.
* c-common.c (decl_attributes): Allow applying attribute `unused'
on a LABEL_DECL.
* c-parse.in (label): Parse attributes after a label, and call
`decl_attributes' to handle them.
* gansidecl.h (ATTRIBUTE_UNUSED_LABEL): Define.
* genrecog.c (OUTPUT_LABEL, write_tree_1, write_tree): When
generating labels, mark them with ATTRIBUTE_UNUSED_LABEL.
* invoke.texi: Note that labels can be marked `unused'.
Michael Hayes [Sun, 3 Jan 1999 20:43:14 +0000 (20:43 +0000)]
optabs.c (emit_cmp_insn): Abort if asked to emit non-canonical RTL for a target with HAVE_cc0 defined.
* optabs.c (emit_cmp_insn): Abort if asked to emit non-canonical RTL
for a target with HAVE_cc0 defined.
(emit_cmp_and_jump_insns): New function.
* expr.h (emit_cmp_and_jump_insns): Prototype it.
* loop.c (check_dbra_loop): Use it to replace calls
to emit_cmp_insn and emit_jump_insn and to canonicalise
the comparison if necessary.
* unroll.c (unroll_loop): Likewise.
Jeffrey A Law [Sun, 3 Jan 1999 19:45:34 +0000 (19:45 +0000)]
pa.md (branch, [...]): Handle (const_int 0) as first source operand.
* pa.md (branch, negated branch): Handle (const_int 0) as first
source operand.
* pa.c (output_cbranch): Likewise.
Should fix unrolling aborts on the PA.
Jeffrey A Law [Wed, 30 Dec 1998 23:14:25 +0000 (23:14 +0000)]
reload1.c (reload_as_needed): Verify that the insn satisfies its constraints after replacing a register...
* reload1.c (reload_as_needed): Verify that the insn satisfies its
constraints after replacing a register address with an autoincrement
address for reload inheritance purposes.
Per Bothner [Wed, 23 Dec 1998 10:46:45 +0000 (02:46 -0800)]
expr.c (process_jvm_instruction): Do load_type_state after JSR.
d
* expr.c (process_jvm_instruction): Do load_type_state after JSR.
* verify.c (verify_jvm_instructions): Fix off-by-one error.
* jcf-write.c (CHECK_PUT): Add (void) cast to avoid -Wall warnings.
(localvar_alloc): Change return type to void,
(emit_unop): Remove unused variable size.
* jcf-write.c (struct jcf_block): Add new union.
(PENDING_CLEANUP_PC, PENDING_EXIT_PC, UNDEFINED_PC): New macros.
(call_cleanups): New functions.
(struct jcf_partial): New fields num_finalizers and return_value_decl.
(generate_bytecode_insns): Support CLEANUP_POINT_EXPR and
WITH_CLEANUP_EXPR. Handle cleanups in RETURN_EXPR and EXIT_BLOCK_EXPR.
* lang.c (lang_init): Call using_eh_for_cleanups.
* parse.y (java_complete_lhs): For SYNCHRONIZED_EXPR, defer
completing operands to patch_synchronized_statement.
Support CLEANUP_POINT_EXPR, WITH_CLEANUP_EXPR.
(patch_synchronized_statement): Re-write suing CLEANUP_POINT_EXPR and
WITH_CLEANUP_EXPR instead of TRY_EXPR.
Per Bothner [Wed, 23 Dec 1998 10:46:40 +0000 (10:46 +0000)]
expr.c (process_jvm_instruction): Do load_type_state after JSR.
* expr.c (process_jvm_instruction): Do load_type_state after JSR.
* verify.c (verify_jvm_instructions): Fix off-by-one error.
* jcf-write.c (CHECK_PUT): Add (void) cast to avoid -Wall warnings.
(localvar_alloc): Change return type to void,
(emit_unop): Remove unused variable size.
* jcf-write.c (struct jcf_block): Add new union.
(PENDING_CLEANUP_PC, PENDING_EXIT_PC, UNDEFINED_PC): New macros.
(call_cleanups): New functions.
(struct jcf_partial): New fields num_finalizers and return_value_decl.
(generate_bytecode_insns): Support CLEANUP_POINT_EXPR and
WITH_CLEANUP_EXPR. Handle cleanups in RETURN_EXPR and EXIT_BLOCK_EXPR.
* lang.c (lang_init): Call using_eh_for_cleanups.
* parse.y (java_complete_lhs): For SYNCHRONIZED_EXPR, defer
completing operands to patch_synchronized_statement.
Support CLEANUP_POINT_EXPR, WITH_CLEANUP_EXPR.
(patch_synchronized_statement): Re-write suing CLEANUP_POINT_EXPR and
WITH_CLEANUP_EXPR instead of TRY_EXPR.
Per Bothner [Wed, 23 Dec 1998 10:46:39 +0000 (02:46 -0800)]
expr.c (process_jvm_instruction): Do load_type_state after JSR.
a
* expr.c (process_jvm_instruction): Do load_type_state after JSR.
* verify.c (verify_jvm_instructions): Fix off-by-one error.
* jcf-write.c (CHECK_PUT): Add (void) cast to avoid -Wall warnings.
(localvar_alloc): Change return type to void,
(emit_unop): Remove unused variable size.
* jcf-write.c (struct jcf_block): Add new union.
(PENDING_CLEANUP_PC, PENDING_EXIT_PC, UNDEFINED_PC): New macros.
(call_cleanups): New functions.
(struct jcf_partial): New fields num_finalizers and return_value_decl.
(generate_bytecode_insns): Support CLEANUP_POINT_EXPR and
WITH_CLEANUP_EXPR. Handle cleanups in RETURN_EXPR and EXIT_BLOCK_EXPR.
* lang.c (lang_init): Call using_eh_for_cleanups.
* parse.y (java_complete_lhs): For SYNCHRONIZED_EXPR, defer
completing operands to patch_synchronized_statement.
Support CLEANUP_POINT_EXPR, WITH_CLEANUP_EXPR.
(patch_synchronized_statement): Re-write suing CLEANUP_POINT_EXPR and
WITH_CLEANUP_EXPR instead of TRY_EXPR.
Kaveh R. Ghazi [Wed, 23 Dec 1998 07:09:01 +0000 (07:09 +0000)]
Warning fixes:
* alias.c (record_alias_subset): Remove ignored `&'.
(init_alias_once): Likewise.
* c-lex.c (UNGETC): Cast first argument of comma expression to void.
* config/mips/mips.c (mips_asm_file_end): Cast the result of
fwrite to `int' when comparing against one.
* config/mips/mips.h (CAN_ELIMINATE): Add parens around && within ||.
(INITIAL_ELIMINATION_OFFSET): Add braces to avoid ambiguous `else'.
* cse.c (rehash_using_reg): Change type of variable `i' to
unsigned int.
* dwarf2out.c (initial_return_save): Cast -1 to unsigned before
assigning it to one.
* except.c (duplicate_eh_handlers): Remove unused variable `tmp'.
* final.c (final_scan_insn): Likewise for variable `i'.
(output_asm_insn): Cast a char to unsigned char when used as an
array index.
* gcse.c (compute_pre_ppinout): Cast -1 to SBITMAP_ELT_TYPE when
assigning it to one.
* loop.c (strength_reduce): Remove unused variables `count' and `temp'.
* recog.c (preprocess_constraints): Cast a char to unsigned char
when used as an array index.
* regmove.c (find_matches): Likewise.
* reload1.c (calculate_needs): Add default case in switch.
(eliminate_regs_in_insn): Initialize variable `offset'.
(set_offsets_for_label): Change type of variable `i' to unsigned.
(reload_as_needed): Wrap variable `i' in macro check on
AUTO_INC_DEC || INSN_CLOBBERS_REGNO_P.
* scan-decls.c (scan_decls): Mark parameters `argc' and `argv'
with ATTRIBUTE_UNUSED. Cast variable `start_written' to size_t
when comparing against one.
* stor-layout.c (layout_decl): Cast maximum_field_alignment to
unsigned when comparing against one. Likewise for
GET_MODE_ALIGNMENT().
(layout_record): Cast record_align to int when comparing against a
signed value.
(layout_type): Cast TYPE_ALIGN() to int when comparing against a
signed value.
* tree.c (get_identifier): Cast variable `len' to unsigned when
comparing against one.
(maybe_get_identifier): Likewise
Jeffrey A Law [Tue, 22 Dec 1998 23:13:41 +0000 (23:13 +0000)]
toplev.c (rest_of_compilation): Do not set reload_completed.
Wed Dec 23 00:10:01 1998 Jeffrey A Law (law@cygnus.com)
* toplev.c (rest_of_compilation): Do not set reload_completed.
* reload1.c (reload): Set reload_completed before calling
cleanup_subreg_operands.
Kaveh R. Ghazi [Tue, 22 Dec 1998 12:18:17 +0000 (12:18 +0000)]
Warning fixes:
* Makefile.in (cvt.o): Depend on toplev.h.
* cp-tree.h (check_template_shadow, pod_type_p): Add prototypes.
* cvt.c: Include toplev.h.
* except.c (get_eh_caught, get_eh_handlers): Hide prototypes and
definitions.
* init.c (expand_vec_init): Initialize variable `itype'.
* lex.c (yyerror): Cast the argument passed to a ctype function to
an unsigned char.
* method.c (build_mangled_C9x_name): Wrap prototype and definition
in "HOST_BITS_PER_WIDE_INT >= 64".
* typeck.c (build_binary_op): Mark parameter `convert_p' with
ATTRIBUTE_UNUSED.
Kaveh R. Ghazi [Tue, 22 Dec 1998 06:57:17 +0000 (06:57 +0000)]
Warning fixes:
* argv.c (buildargv): Cast the result of alloca in assignment.
* choose-temp.c: Include stdlib.h.
* cplus-dem.c (demangle_arm_pt): Remove unused prototype.
(snarf_numeric_literal): Constify first parameter.
(code_for_qualifier): Avoid a gcc extension, make the parameter an
int, not a char.
(demangle_qualifier): Likewise.
(demangle_signature): Cast the argument of a ctype function to
unsigned char.
(arm_pt): Add parens around assignment used as truth value.
(demangle_arm_hp_template): Constify variable `args'.
(do_hpacc_template_const_value): Cast the argument of a ctype
function to unsigned char.
(do_hpacc_template_literal): Remove unused variable `i'.
(snarf_numeric_literal): Constify parameter `args'.
Cast the argument of a ctype function to unsigned char.
* floatformat.c (floatformat_to_double): Add explicit braces to
avoid ambiguous `else'.
* fnmatch.c (fnmatch): Change type of variables `c', `c1',
`cstart' and `cend' to unsigned char. Cast the argument of macro
`FOLD', which uses ctype functions, to unsigned char.
* objalloc.c (free): Add prototype.