Jakub Jelinek [Wed, 12 Nov 2008 22:18:03 +0000 (23:18 +0100)]
re PR c++/36478 (warning not emitted when code expanded from macro)
PR c++/36478
Revert:
2007-05-07 Mike Stump <mrs@apple.com>
* doc/invoke.texi (Warning Options): Document that -Wempty-body
also checks for and while statements in C++.
Revert:
2007-05-07 Mike Stump <mrs@apple.com>
* parser.c (check_empty_body): Add.
(cp_parser_iteration_statement): Add call to check_empty_body.
PR debug/27574
* cgraph.h: New abstract_and_needed member to struct cgraph_node.
* cgraphunit.c (cgraph_analyze_functions): Flag abstract functions
- which clones are reachable - as "abstract and needed".
* cgraph.c (cgraph_release_function_body): If a node is "abstract and needed",
do not release its DECL_INITIAL() content because that will be needed to emit
debug info.
Steve Ellcey [Wed, 12 Nov 2008 21:37:34 +0000 (21:37 +0000)]
re PR target/27880 (undefined reference to `_Unwind_GetIPInfo')
PR target/27880
* configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Use this macro
to set HAVE_GETIPINFO.
* aclocal.m4: Include ../config/unwind_ipinfo.m4.
* configure: Regenerate.
* config.in: Regenerate.
Steve Ellcey [Wed, 12 Nov 2008 21:35:46 +0000 (21:35 +0000)]
re PR target/27880 (undefined reference to `_Unwind_GetIPInfo')
PR target/27880
* config/unwind_ipinfo.m4 (GCC_CHECK_UNWIND_GETIPINFO): Change from
link test to target based test.
* libstdc++/v3/configure.ac: Move call to GCC_CHECK_UNWIND_GETIPINFO.
* libstdc++/v3/configure: Regenerate.
* libjava/configure: Regenerate.
Jakub Jelinek [Wed, 12 Nov 2008 20:55:13 +0000 (21:55 +0100)]
re PR libgcj/33764 (gij is built as 32-bit binary when building multilib gcc)
PR libgcj/33764
libjava/
* configure.ac (INSTALL_BINARIES): New AM_CONDITIONAL.
* Makefile.am: If not INSTALL_BINARIES, use noinst_PROGRAMS
instead of bin_PROGRAMS for binaries.
* configure: Regenerated.
* Makefile.in: Regenerated.
libjava/classpath/
* configure.ac (INSTALL_BINARIES): New AM_CONDITIONAL.
* tools/Makefile.am: If not INSTALL_BINARIES, use noinst_PROGRAMS
instead of bin_PROGRAMS for binaries.
* configure: Regenerated.
* tools/Makefile.in: Regenerated.
* gcc/config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Remove
packed-stack special handling.
(FRAME_ADDR_RTX): Add definition.
2008-11-12 Andreas Krebbel <krebbel1@de.ibm.com>
* gcc.target/s390/frame-addr1.c: New testcase.
* gcc.target/s390/frame-addr2.c: New testcase.
* gcc.target/s390/return-addr1.c: New testcase.
* gcc.target/s390/return-addr2.c: New testcase.
Jakub Jelinek [Wed, 12 Nov 2008 17:01:51 +0000 (18:01 +0100)]
re PR target/35366 (gfortran.dg/equiv_7.f90 fails with -m64 -Os on powerpc-apple-darwin9)
PR target/35366
PR fortran/33759
* fold-const.c (native_encode_string): New function.
(native_encode_expr): Use it for STRING_CST.
* trans-const.c (gfc_conv_constant_to_tree): Warn when
converting an integer outside of LOGICAL's range to
LOGICAL.
* trans-intrinsic.c (gfc_conv_intrinsic_function,
gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_transfer):
Use INTEGER_TYPE instead of BOOLEAN_TYPE for TRANSFER as
argument of another TRANSFER.
* gfortran.dg/hollerith.f90: Don't assume a 32-bit value
stored into logical variable will be preserved.
* gfortran.dg/transfer_simplify_4.f90: Remove undefined
cases. Run at all optimization levels. Add a couple of
new tests.
* gfortran.dg/hollerith5.f90: New test.
* gfortran.dg/hollerith_legacy.f90: Add dg-warning.
Jakub Jelinek [Wed, 12 Nov 2008 08:16:12 +0000 (09:16 +0100)]
re PR target/35366 (gfortran.dg/equiv_7.f90 fails with -m64 -Os on powerpc-apple-darwin9)
PR target/35366
* expr.c (expand_expr_addr_expr_1): If EXP needs bigger alignment
than INNER and INNER is a constant, forcibly align INNER as much
as needed.
Vladimir Makarov [Mon, 10 Nov 2008 23:21:45 +0000 (23:21 +0000)]
re PR rtl-optimization/37948 (IRA generates slower code)
2008-11-07 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimizations/37948
* ira-int.h (struct ira_allocno_copy): New member constraint_p.
(ira_create_copy, ira_add_allocno_copy): New parameter.
* ira-conflicts.c (process_regs_for_copy): New parameter. Pass it
to ira_add_allocno_copy.
(process_reg_shuffles, add_insn_allocno_copies): Pass a new
parameter to process_regs_for_copy.
(propagate_copies): Pass a new parameter to ira_add_allocno_copy.
Fix typo in passing second allocno to ira_add_allocno_copy.
* ira-color.c (update_conflict_hard_regno_costs): Use head of
coalesced allocnos list.
(assign_hard_reg): Ditto. Check that assigned allocnos are not in
the graph.
(add_ira_allocno_to_bucket): Rename to add_allocno_to_bucket.
(add_ira_allocno_to_ordered_bucket): Rename to
add_allocno_to_ordered_bucket.
(push_ira_allocno_to_stack): Rename to push_allocno_to_stack. Use
head of coalesced allocnos list.
(push_allocnos_to_stack): Remove calculation of ALLOCNO_TEMP.
Check that it is aready calculated.
(push_ira_allocno_to_spill): Rename to push_ira_allocno_to_spill.
(setup_allocno_left_conflicts_num): Use head of coalesced allocnos
list.
(coalesce_allocnos): Do extended coalescing too.
* ira-emit.c (add_range_and_copies_from_move_list): Pass a new
parameter to ira_add_allocno_copy.
* ira-build.c (ira_create_copy, ira_add_allocno_copy): Add a new
parameter.
(print_copy): Print copy origination too.
* ira-costs.c (scan_one_insn): Use alloc_pref for load from
equivalent memory.
Kaz Kojima [Mon, 10 Nov 2008 23:10:10 +0000 (23:10 +0000)]
re PR rtl-optimization/37514 (Wrong code generated for 20021120-1.c with -O3 -fomit-frame-pointer on sh4)
PR rtl-optimization/37514
* config/sh/sh.h (OPTIMIZATION_OPTIONS): Set
flag_ira_share_spill_slots to 2 if it's already non-zero.
(OVERRIDE_OPTIONS): Clear flag_ira_share_spill_slots if
flag_ira_share_spill_slots is 2.
* gcc.target/sh/pr37514.c: New test.
DJ Delorie [Mon, 10 Nov 2008 19:37:20 +0000 (14:37 -0500)]
m32c.c (m32c_const_ok_for_constraint_p): Add ImB constraint for single-bit-clear in lower byte of HI constant...
* config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add ImB
constraint for single-bit-clear in lower byte of HI constant, vs
Imb which just ignores the upper byte.
* config/m32c/predicates.md (m32c_1mask8_operand): Use it.
* config/m32c/bitops.md (andhi3_16, andhi3_24): Use it.
(iorhi3_16): Check for single bit set, not single bit clear.
Paul Thomas [Sun, 9 Nov 2008 17:40:30 +0000 (17:40 +0000)]
re PR fortran/37836 (ICE in gfc_trans_auto_array_allocation)
2008-11-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/37836
* intrinsic.c (add_functions): Reference gfc_simplify._minval
and gfc_simplify_maxval.
* intrinsic.h : Add prototypes for gfc_simplify._minval and
gfc_simplify_maxval.
* simplify.c (min_max_choose): New function extracted from
simplify_min_max.
(simplify_min_max): Call it.
(simplify_minval_maxval, gfc_simplify_minval,
gfc_simplify_maxval): New functions.
2008-11-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/37836
* gfortran.dg/minmaxval_1.f90: New test.
Eric Botcazou [Sun, 9 Nov 2008 09:50:02 +0000 (09:50 +0000)]
ada-tree.def (PLUS_NOMOD_EXPR): New tree code.
* gcc-interface/ada-tree.def (PLUS_NOMOD_EXPR): New tree code.
(MINUS_NOMOD_EXPR): Likewise.
* gcc-interface/utils2.c (build_binary_op) <PREINCREMENT_EXPR>: Make
unreachable.
<PLUS_NOMOD_EXPR>: New case.
<MINUS_NOMOD_EXPR>: Likewise.
* gcc-interface/trans.c (Loop_Statement_to_gnu): Build increment-and-
assignment statement instead of using an increment operator.
Bechir Zalila [Fri, 7 Nov 2008 10:46:18 +0000 (10:46 +0000)]
re PR ada/34289 (gnatmake -s doesn't work)
PR ada/34289
* lib.ads: (Enable_Switch_Storing): Declare.
* lib.adb: (Enable_Switch_Storing): New procedure.
* switch-c.adb (Scan_Front_End_Switches): Add support for -gnatea.
* make.adb: (Compile_Sources.Compile): Add -gnatea as first option.
(Display): Never display -gnatea
* gcc-interface/lang-specs.h: If -gnatea is present, pass -gnatez.
Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>
From-SVN: r141673
Kazu Hirata [Thu, 6 Nov 2008 14:59:09 +0000 (14:59 +0000)]
re PR target/35574 (unrecognizable insn generated for vector move)
PR target/35574
* config/sparc/constraints.md (D): New.
* config/sparc/predicates.md (const_double_or_vector_operand):
New.
* config/sparc/sparc.c (sparc_extra_constraint_check): Handle the
'D' constraint.
* config/sparc/sparc.md (*movdf_insn_sp32_v9, *movdf_insn_sp64):
Use the 'D' constraint in addition to 'F' in some alternatives.
(DF splitter): Generalize for V64mode.
* doc/md.texi (SPARC): Document the 'D' constraint.
Eric Botcazou [Thu, 6 Nov 2008 11:28:07 +0000 (11:28 +0000)]
re PR ada/19419 (Overlapping memcpy with array slices)
PR ada/19419
* gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>:
Generate a call to memmove for an assignment between overlapping
array slices.