Alexandre Oliva [Wed, 2 Jan 2002 02:31:58 +0000 (02:31 +0000)]
c-common.h (genrtl_expr_stmt_value): Declare.
* c-common.h (genrtl_expr_stmt_value): Declare.
* c-semantics.c (genrtl_goto_stmt): Redirect to...
(genrtl_goto_stmt_value): ... this new function. Pass new
argument down to expand_expr_stmt_value, taking
TREE_ADDRESSABLE into account.
* c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
STMT_EXPR as addressable, i.e., one whose result we want.
* expr.c (expand_expr): Don't save expression statement value
of labeled_blocks or loop_exprs.
* stmt.c (expand_expr_stmt): Redirect to...
(expand_expr_stmt_value): ... this new function. Use new
argument to tell whether to save expression value.
(expand_end_stmt_expr): Reset last_expr_type and
last_expr_value if we don't have either.
* tree-inline.c (declare_return_variable): Mark its use
statement as addressable.
* tree.h: Document new use of TREE_ADDRESSABLE.
(expand_expr_stmt_value): Declare.
Joseph Myers [Tue, 1 Jan 2002 23:21:01 +0000 (23:21 +0000)]
configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of ${srcdir}/ginclude/ to every...
* configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
${srcdir}/ginclude/ to every entry in extra_headers.
* configure: Regenerate.
* ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
* ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
* ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
* ginclude/proto.h: Rename to config/convex/proto.h.
Richard Kenner [Tue, 1 Jan 2002 22:22:25 +0000 (22:22 +0000)]
attribs.c (handle_vector_size_attribute): Use host_integerp and tree_int_cst; remove warnings.
* attribs.c (handle_vector_size_attribute): Use host_integerp
and tree_int_cst; remove warnings.
* caller-save.c (insert_restore): Add cast to get rid of warning.
(insert_save): Likewise.
* emit-rtl.c (adjust_address_1, offset_address): Likewise.
* regmove.c (find_matches): Add temporary var to kill a warning.
mmix.md: Update FIXME to not mention define_constants.
* config/mmix/mmix.md: Update FIXME to not mention
define_constants.
(MMIX_rJ_REGNUM): New define_constants constant.
("movqi", "movsi", "movdi", "*movdicc_real_foldable",
"*movdicc_real"): Adjust contraints formatting.
("*bCC_foldable"): Add %+ for P in output format and delete FIXME
for branch prediction.
("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
output template.
("*call_real", "*call_value_real", "nonlocal_goto_receiver",
"*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
number. Delete related FIXMEs.
* config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
from number to MMIX_rJ_REGNUM.
(TARGET_MASK_BRANCH_PREDICT): New.
(TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
(TARGET_SWITCHES): Update comment. Correct -mno-toplevel-symbols
value. Add -mbranch-predict and -mno-branch-predict.
(TARGET_VERSION): Drop date.
(ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
* config/mmix/mmix.c (mmix_encode_section_info): Correct condition
for finding out global symbols.
(mmix_asm_output_labelref): Revert condition for global symbol.
(mmix_print_operand): <case '+'>: Emit P for a likely branch.
(mmix_print_operand_punct_valid_p): A '+' is valid.
Roger Sayle [Tue, 1 Jan 2002 19:50:16 +0000 (20:50 +0100)]
stubs.c (sinf,cosf): Implement stubs to enable the equivalent ___builtin__ versions.
2002-01-01 Roger Sayle <roger@eyesopen.com>
* libmath/stubs.c (sinf,cosf): Implement stubs to enable the
equivalent ___builtin__ versions.
* include/c_shadow/bits/std_cmath.h: All __builtin math functions
are available in libstdc++ as the necessary stub implementations
are provided by libmath/stubs.c.
regrename.c (build_def_use): Don't rename asm operands that were originally hard registers.
* regrename.c (build_def_use): Don't rename asm operands that
were originally hard registers.
(copyprop_hardreg_forward_1): Likewise.
(find_oldest_value_reg): Copy ORIGINAL_REGNO from source.
* varasm.c (make_decl_rtl): Use gen_rtx_raw_REG. Set ORIGINAL_REGNO.
Paolo Carlini [Mon, 31 Dec 2001 18:03:47 +0000 (19:03 +0100)]
algo.h: Add two more using declarations.
2001-12-31 Paolo Carlini <pcarlini@unitus.it>
* include/backward/algo.h: Add two more using declarations.
* include/backward/iterator.h: Include <ext/iterator>,
add using declaration.
* include/ext/algorithm: Add #pragma GCC system_header.
* config/mmix/mmix.md ("*call_real"): Fix typo in comment.
* config/mmix/mmix.h (EXTRA_CONSTRAINT): Pass MMIX_REG_OK_STRICT
to mmix_extra_constraint.
* config/mmix/mmix.c (mmix_secondary_reload_class): Only handle
non-global register classes. Mark now unused parameters as such.
(mmix_extra_constraint, 'U'): Use new parameter strict and call
calling memory_operand_p or strict_memory_address_p, not
address_operand.
* config/mmix/mmix-protos.h (mmix_extra_constraint): Add parameter.
Jakub Jelinek [Sun, 30 Dec 2001 12:20:43 +0000 (13:20 +0100)]
cfgrtl.c (try_redirect_by_replacing_jump): Allow redirect_jump to fail if target is EXIT_BLOCK_PTR, die otherwise.
* cfgrtl.c (try_redirect_by_replacing_jump): Allow redirect_jump
to fail if target is EXIT_BLOCK_PTR, die otherwise.
(redirect_edge_and_branch): Likewise.
* cfgcleanup.c (try_forward_edge): Don't force jump redirecting
if target is EXIT_BLOCK_PTR.
Richard Kenner [Sat, 29 Dec 2001 21:35:02 +0000 (21:35 +0000)]
expr.c (store_field): Use adjust_address, not PUT_MODE.
* expr.c (store_field): Use adjust_address, not PUT_MODE.
(expand_expr, case VIEW_CONVERT_EXPR): Likewise.
* reload1.c (eliminate_regs, case SUBREG): Likewise, but use
adjust_address_nv.
* varasm.c (make_decl_rtl): Likewise.
* integrate.c (copy_rtx_and_substitute, case MEM): Likewise, but use
replace_equiv_address_nv.
* dwarf2out.c (compute_section_prefix): Avoid cast warning.
(gen_decl_die): Only check DECL_IGNORED_P on decls.
(dwarf2out_decl): Check for DECL_IGNORED_P only when needed.
* config/os/hpux/bits/os_defines.h: Don't define __glibcpp_long_bits.
* config/os/hpux/bits/cpu_limits.h: New file.
* configure.target (CPULIMITSH): Use it.
loop.c (prescan_loop): Set has_multiple_exit_targets for exception edges.
* loop.c (prescan_loop): Set has_multiple_exit_targets for exception
edges. Rearrange jump interpretation code to use pc_set.
(check_dbra_loop): Examine has_multiple_exit_targets not exit_count.
* sched-deps.c (sched_analyze_insn): Set scheduling barrier for
all insns that can throw, not just if flag_non_call_exceptions.
Nathan Sidwell [Sat, 29 Dec 2001 17:10:10 +0000 (17:10 +0000)]
re PR c++/335 (gcc accepts assignment in read-only structures)
cp:
PR c++/335
* init.c (resolve_offset_ref): Copy cv qualifiers of this pointer
for non-reference fields.
* typeck.c (require_complete_type): Use resolve_offset_ref).
testsuite:
* g++.dg/other/const1.C: New test.
Stan Shebs [Sat, 29 Dec 2001 16:16:51 +0000 (16:16 +0000)]
objc-act.c (STRING_OBJECT_CLASS_NAME): Remove.
* objc/objc-act.c (STRING_OBJECT_CLASS_NAME): Remove.
(default_constant_string_class_name): New global.
(objc_init): Set it.
(synth_module_prologue): Use it.
Stan Shebs [Fri, 28 Dec 2001 23:22:05 +0000 (23:22 +0000)]
objc-act.c (build_module_descriptor): Make sure the init function is not deferred.
* objc/objc-act.c (build_module_descriptor): Make sure the init
function is not deferred.
(build_dispatch_table_initializer): Compute the method encoding if
not already done.
Jakub Jelinek [Fri, 28 Dec 2001 09:51:20 +0000 (10:51 +0100)]
c-typeck.c (store_init_value): If initializing object with array type of unknown size by a compound literal...
* c-typeck.c (store_init_value): If initializing object with array
type of unknown size by a compound literal, set object's size from
compound literal size.
* doc/extend.texi (Compound Literals): Adjust documentation.
* gcc.dg/gnu89-init-1.c: Adjust for the new behaviour, add some
additional tests.
* real.c (etoe113, toe113): Ifndef INTEL_EXTENDED_IEEE_FORMAT.
(endian): Clear word 3 for INTEL_EXTENDED_IEEE_FORMAT.
(etartdouble): Invoke etoe64 for INTEL_EXTENDED_IEEE_FORMAT.
* real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Don't special case
INTEL_EXTENDED_IEEE_FORMAT.