OSDN Git Service

* c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index affc926..c2a1a50 100644 (file)
@@ -1,5 +1,167 @@
+2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
+       true unconditionally.
+       * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
+       Remove.
+       (build_unary_op, build_modify_expr): Don't handle extended
+       lvalues.
+       (build_component_ref, build_conditional_expr): Call non_lvalue
+       instead of pedantic_non_lvalue.
+       (build_c_cast): Don't condition use of non_lvalue on pedantic.
+       * fold-const.c (fold): Don't check pedantic directly for
+       COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
+       passed to pedantic_non_lvalue.
+       * doc/extend.texi: Remove documentation of extended lvalues.
+
+2004-01-19  Roger Sayle  <roger@eyesopen.com>
+
+       PR optimization/5263
+       * simplify-rtx.c (associative_constant_p): Delete.
+       (simplify_associative_operation): Rewrite to linearize terms, and
+       attempt to simplify new term against both left and right subterms.
+       (simplify_binary_operation): Call swap_commutative_operands_p on
+       op0 and op1, not trueop0 and trueop1.  Move the initialization of
+       trueop0 and trueop1 down to where first needed.
+       (simplify_relational_operation): Likewise.
+       * rtlanal.c (commutative_operand_precedence): Also order constant
+       operands using avoid_constant_pool_reference.
+
+2004-01-19  Richard Henderson  <rth@redhat.com>
+
+        * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
+        don't check memory mode.
+        (unaligned_memory_operand): Likewise.
+        (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
+        abort for op0 not MEM.
+
+        * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
+        is not a reg, copy to a scratch first.
+        (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
+        unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
+        unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
+        (reload_inqi, reload_inhi): Fix mode of op0.
+        (reload_inqi_help, reload_inhi_help, reload_outqi_help,
+        reload_outhi_help): Likewise.  Use define_insn_and_split.
+
+        * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
+        as well as $29 dead.
+
+2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
+       "tls_object" for thread-local objects.
+       * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
+       "#tls" for thread-local sections.
+       * configure.ac (thread-local checks): Specify --fatal-warnings in
+       every binutils-specific checks.  For sparc*-*-*, test whether the
+       OS is Solaris and the tools are native and act accordingly.
+       * configure: Rebuild.
+
+2004-01-19  Jeff Law  <law@redhat.com>
+
+       * contrib.texi: Update Paolo Carlini's entry.  New entries for
+       Jerry Quinn and Petur Runolfsson.
+2004-01-19  Roger Sayle  <roger@eyesopen.com>
+
+       * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
+       size, don't use the larger zero-extending loads.
+
+2004-01-19  Richard Henderson  <rth@redhat.com>
+
+       * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
+       * alpha.md (UNSPEC_NT_LDA): Remove.
+       (UNSPEC_CVTLQ, cvtlq): New.
+       (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
+       (extendsidi2_fix): Remove.
+       (extendsidi2 splitter): Use cvtlq.
+       (extendsidi2 fp peepholes): Remove.
+       (cvtql): Use SFmode instead of SImode.
+       (fix_trunc?fsi): Update to match.
+       (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
+       (movsi): Rename from movsi_nofix, remove f alternatives.
+       (movsi_nt_vms): Similarly.
+       (movsi_fix, movsi_nt_vms_fix): Remove.
+       (nt_lda): Remove.
+       * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
+
+2004-01-19  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.c (cgraph_remove_node): Fix removal from linked list.
+       * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
+       list.
+       (cgraph_remove_unreachable_nodes): New function
+       (cgraph_decide_inlining_of_small_function): Fix pasto.
+       (cgraph_decide_inlining_incrementally): Fix pasto.
+       (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
+
+2004-01-19  Steven Bosscher  <stevenb@suse.de>
+
+       * gengtype.c (header_file): Make it static.
+       (write_types_process_field, write_enum_defn): Minor whitespace fixes.
+       * gengtype.h (header_file): No longer extern.
+
+2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
+       * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
+       * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
+
+2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * stmt.c (HAVE_casesi): Define it not already defined.
+       (HAVE_tablejump): Likewise.
+       (expand_end_case_type): Resort to the binary tree method if
+       neither casesi or tablejump is available.
+
+2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
+
+       * final.c (final_scan_insn): Make non-static again.
+       * output.h (final_scan_insn): Re-add prototype.
+       * config/arc/arc.c (arc_output_function_epilogue): Add NULL
+       to final_scan_insn call.
+       * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
+       * config/mips/mips.c (mips_output_conditional_branch): Likewise.
+       * config/pa/pa.c (output_lbranch, output_call): Likewise.
+       * config/sh/sh.c (print_slot): Likewise.
+       * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
+       (output_sibcall, sparc_flat_function_epilogue): Likewise.
+
+2004-01-18  Jan Hubicka  <jh@suse.cz>
+
+       * basic-block.h (try_redirect_by_replacing_jump): Declare.
+       * cfgcleanup.c (try_optimize_cfg): Use it.
+       * cfgrtl.c (try_redirect_by_replacing_jump): Export.
+       (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
+       Kill hack.
+       (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
+
+       Revert:
+       2004-01-16  Geoffrey Keating  <geoffk@apple.com>
+
+               * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
+               even after reload, just don't remove the actual jump tables.
+
+2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
+
+2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
+       the size of a pointer in bytes.
+
+2004-01-18  Roger Sayle  <roger@eyesopen.com>
+
+       * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
+       live "next" variable, which could lead to an infinite loop.
+
 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
 
+       * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
+       block.
+
        * config/rs6000/rs6000.c (rs6000_special_round_type_align):
        Check for NULL in the chain and remove repeated code.
 
 
 2004-01-16  Jan Hubicka  <jh@suse.cz>
 
-        PR opt/11350
-        * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
+       PR opt/11350
+       * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
        after reload.
-        * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
-        rtl_try_redirect_by_replacing_branch): Likewise.
+       * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
+       rtl_try_redirect_by_replacing_branch): Likewise.
 
 2004-01-15  Geoffrey Keating  <geoffk@apple.com>