* cpplib.h (struct cpp_reader): Add help_only field.
* cppinit.c (COMMAND_LINE_OPTIONS): Add OPT_version.
(cpp_handle_option): Set pfile->help_only if we see -h,
--help, -target-help, or --version. Print version string but
do not set help_only if we see -v or -version. Make text
printed by -v match that printed by (-)-version.
* cppmain.c (main): Exit after option parsing if
pfile->help_only is true.
* toplev.c (independent_decode_option): Call print_version,
then exit, if we see --version (but not -version).
(print_version): Split lengthy message into two lines.
From-SVN: r38733
* function.c (reorder_blocks): Make sure the flags are all reset
before using them to mark blocks, else a second invocation will
corrupt the block chain.
(reorder_blocks_0): New, resets the flags.
From-SVN: r38724
2001-01-05 Jeffrey Oldham <oldham@codesourcery.com>
* varasm.c (mark_constant_pool): Improve initial comments.
(mark_constants): Move marking of constants to mark_constant.
(mark_constant): New function to recursively mark all constants
referred to by a constant.
From-SVN: r38721
* config/avr/avr-protos.h (avr_peep2_scratch_safe): Prototype.
* config/avr/avr.c (avr_peep2_scratch_safe): New function.
* config/avr/avr.md (all peepholes that request a scratch register):
Call it, FAIL the peephole if not safe (in interrupt functions).
Co-Authored-By: Denis Chertykov <denisc@overta.ru>
From-SVN: r38718
* arm.md (ldmsi_postinc): Avoid use of match_dup between input and
output operands. Use arm_hard_register_operand for operand 4.
(stmsi_postinc): Similarly.
(ldmsi): Use arm_hard_register_operand for opernand 2.
(stmsi): Similarly.
* arm.c (arm_hard_register_operand): New function.
* arm-protos.h (arm_hard_register_operand): Prototype it.
* arm.h (HARD_REGNO_RENAME_OK): Define.
From-SVN: r38712
* java/io/PipedInputStream: Rewrote to be simpler and more correct.
* java/io/PipedOutputStream: Updated to match new PipedInputStream.
* java/io/PipedReader: New implementation based on new
PipedInputStream.
* java/io/PipedWriter: Updated to match new PipedOutputStream.
From-SVN: r38708
* c-decl.c (finish_struct): Detect flexible array members
used in an inappropriate context.
* c-typeck.c (really_start_incremental_init): Special case
constructor_max_index for zero length arrays.
(pop_init_level): Allow initialization of flexible array
members. Deprecate initialization of zero length arrays.
Don't issue missing initializer warning for flexible array
members or zero length arrays.
(process_init_element): Don't dereference null DECL_SIZE.
* varasm.c (array_size_for_constructor): Return a HOST_WIDE_INT.
Don't abort for empty constructors. Use size_binop
(output_constructor): Add commentary regarding zero length
array futures. Abort if we try to initialize an array of
unspecified length with a non-empty constructor in the middle
of a structure.
* extend.texi (Zero Length): Update and clarify documentation
on static initialization.
From-SVN: r38705
* loop.h (struct loop_reg): New.
(struct loop_regs): Change to use array of `struct loop_reg'.
* loop.c: Replace assortment of varrays with single regs array.
(count_one_set): Delete may_not_move array argument
and use regs array instead. All caller's changed.
(count_loop_regs_set): Delete may_not_move and single_usage
arguments and use regs array instead. All caller's changed.
(find_single_use_in_loop): Replace usage array argument with pointer
to regs structure. All caller's changed.
(loop_optimize): Delete `moved_once' array.
From-SVN: r38700
* loop.c (prescan_loop): Set loop_info->has_nonconst_call.
Use it instead of loop_info->has_call for scanning loop mems.
(check_dbra_loop): Replace loop_info->has_call test with
loop_info->has_nonconst_call.
From-SVN: r38699
* fold-const.c (fold): When folding a CONJ_EXPR of a COMPLEX_CST,
use TREE_REALPART and TREE_IMAGPART instead of TREE_OPERAND.
testsuite:
* gcc.c-torture/compile/20001222-1.x: Remove.
From-SVN: r38696
* c-common.c (SIZE_TYPE, WCHAR_TYPE): Define.
(flag_short_double, flag_short_wchar): Define.
(c_common_nodes_and_builtins): Create many tree nodes shared
between C and C++ here instead of in cp/decl.c and ...
* c-decl.c (init_decl_processing): ... here.
(SIZE_TYPE, WCHAR_TYPE): Don't define.
(flag_short_double, flag_short_wchar): Don't define.
(record_builtin_type): New function.
(build_void_list_node): New function.
* c-common.h (flag_short_double, flag_short_wchar,
record_builtin_type, build_void_list_node): Declare.
cp:
* decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define.
(record_builtin_type): Make non-static.
(flag_short_double): Don't declare.
(init_decl_processing): Remove the creation of many tree nodes now
in c_common_nodes_and_builtins.
(build_void_list_node): New function.
* decl2.c (flag_short_double, flag_short_wchar): Don't define.
* cp-tree.h (flag_short_wchar): Don't declare.
From-SVN: r38695
* integrate.c (expand_inline_function): Don't put a virtual
register into the reg map.
* function.c (fixup_var_refs_1): If force_operand didn't put
the address into the target, move it there.
From-SVN: r38694
* ggc-page.c (OBJECT_PER_PAGE): Reimplement.
(OBJECT_SIZE): New macro.
(NUM_EXTRA_ORDER): Likewise.
(extra_order_size_table): New variable.
(NUM_ORDERS): New macro.
(objects_per_page_table): New variable.
(object_size_table): New variable.
(G.pages): Use NUM_ORDERS to bound the array.
(G.page_tails): Likewise.
(DIV_ROUND_UP): Remove.
(BITMAP_SIZE): Use CEIL, instead of DIV_ROUND_UP.
(alloc_page): Use OBJECT_SIZE.
(size_lookup): Don't make it const.
(ggc_alloc): Use OBJECT_SIZE.
(ggc_set_mark): Likewise.
(ggc_get_size): Likewise.
(init_ggc): Set up the object_size_table, objects_per_page_table,
and adjust size_lookup.
(ggc_recalculate_in_use_p): Use CEIL, not DIV_ROUND_UP.
(ggc_pop_context): Use NUM_ORDERS.
(clear_marks): Likewise.
(sweep_pages): Likewise.
(poison_pages): Likewise.
(ggc_print_statistics): Use OBJECT_SIZE.
From-SVN: r38692
* varasm.c (output_constructor): Use HOST_WIDE_INT for sizes.
Only call array_size_for_constructor if last field and array type
with no upper bound.
From-SVN: r38691
2001-01-04 Philip Blundell <philb@gnu.org>
* config/arm/arm.c (arm_gen_constant): Prefer to emit constants
from bit 31 downwards, if this requires no more insns.
(count_insns_for_constant): New helper function for above.
From-SVN: r38690
* tree.c (copy_node): Remove documentation about obstacks.
(buidl1): Check that nobody tries to build 2-argument nodes this
way.
* call.c (build_conv): Don't use build1 for USER_CONV.
* pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes.
From-SVN: r38686