* config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST):
Handle symbol offsets same as they are handled in ia64_expand_move
and move_operand.
From-SVN: r116983
2006-09-16 Andreas Tobler <a.tobler@schweiz.org>
* loop-doloop.c (doloop_optimize): Change type of max_cost to int.
Add forgotten parameter to the fprintf call.
From-SVN: r116982
PR ada/15802
* decl.c (same_discriminant_p): New static function.
(gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
subtype and we have discriminants, fix up the COMPONENT_REFs
for the discriminants to make them reference the corresponding
fields of the parent subtype after it has been built.
From-SVN: r116981
2006-09-15 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29051
* decl.c (match_old_style_init): Set the 'where' field of the
gfc_data structure 'newdata'.
* match.c (match_case_eos): Add a comprehensible error message.
2006-09-15 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29051
* gfortran.dg/oldstyle_3.f90: New test.
From-SVN: r116977
* doc/md.texi (Processor pipeline description): Fix typo in
example of how to use the absence_set directive and reword the
description to make it slightly easier to read.
From-SVN: r116973
* config/bfin/bfin.c (struct loop_info): New members block_bitmap and
bad.
(struct loop_work and related VEC declarations): Delete.
(bfin_dump_loops): Print out new member bad.
(bfin_bb_in_loop): Use plain bitmap test. Don't recurse.
(bfin_scan_loop): Don't recurse.
(bfin_optimize_loop): Don't use a loop depth of -1 to indicate bad
loops. No longer need to update outer loops if the current one is
found bad. Move some validitiy checks to bfin_discover_loop.
(bfin_discover_loop): New function, mostly split from bfin_reorg_loops,
but changed not to check for nesting. Also changed to use the new bad
flag.
(bfin_reorg_loops): Use bfin_discover_loop to find single loops one at a
time. Use bitmap based test to discover loop nesting.
From-SVN: r116972
* cfgrtl.c (emit_insn_at_entry): New function.
* rtl.h (emit_insn_at_entry): Declare it.
* integrate.c (emit_initial_value_sets): Use it.
From-SVN: r116968
* params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New.
* loop-doloop.c (doloop_optimize): Use it to limit costs of
expanding the number of iterations.
From-SVN: r116966
PR ada/18817
* utils.c (max_size): Perform constant folding of (A ? B : C) - D
into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
From-SVN: r116964
2006-09-14 Andrew Pinski <pinskia@physics.uc.edu>
PR C++/29002
* init.c (build_zero_init): If we have an error mark node for
the array size, return.
2006-09-14 Andrew Pinski <pinskia@physics.uc.edu>
PR C++/29002
* g++.dg/init/array22.C: New test.
* g++.dg/init/array23.C: New test.
From-SVN: r116962
2006-09-14 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/concurrence.h (__mutex::__mutex): Pass address of
mutex to *_MUTEX_INIT_FUNCTION.
From-SVN: r116954
PR other/23541
PR other/26507
Backport from gettext repository:
2003-09-04 Bruno Haible <bruno@clisp.org>
* dgettext.c: Include <locale.h> after gettextP.h, not before. This
ensures that libintl_dcgettext is correctly declared on Solaris.
(Needed because Solaris <locale.h> includes libintl.h.)
* dngettext.c: Likewise, for the libintl_dcngettext declaration.
From-SVN: r116931
PR ada/29025
* trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
of a SAVE_EXPR, just make the operand addressable/not-readonly and
let the common gimplifier code make and propagate a temporary copy.
(call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
out/in-out actuals and defer setting the addressable/readonly bits
to the gimplifier.
From-SVN: r116929
PR ada/28591
* decl.c (components_to_record): Defer emitting debug info for the
record type associated with the variant until after we are sure to
actually use it.
From-SVN: r116928
2006-09-13 Wolfgang Gellerich <gellerich@de.ibm.com>
* trans-expr.c (gfc_add_interface_mapping): For characters, dereference
pointer if necessary and then perform the cast.
From-SVN: r116921
2006-09-13 Andreas Krebbel <krebbel1@de.ibm.com>
* flow.c (calculate_global_regs_live): Invalidate eh registers
on eh edges. Renamed invalidated_by_call to invalidated_by_eh_edge.
(propagate_block): Handle eh registers as if they were set at basic
block start.
* except.c (dw2_build_landing_pads): Don't emit clobbers for eh
registers.
* global.c (global_conflicts): Make eh registers to conflict with
pseudos live at basic block begin.
* basic_block.h (bb_has_eh_pred): New function.
From-SVN: r116920
gcc/
PR rtl-optimization/28982
* reload.c (find_reloads_address_1): Use RELOAD_OTHER for the
index of a PRE_MODIFY or POST_MODIFY address.
* reload1.c (inc_for_reload): Use find_replacement on the original
base and index registers.
gcc/testsuite/
PR rtl-optimization/28982
* gcc.c-torture/execute/pr28982a.c: New test.
* gcc.c-torture/execute/pr28982b.c: Likewise.
From-SVN: r116919
PR rtl-optimization/28243
* combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
the insn to which the note was originally attached.
From-SVN: r116906
2006-09-12 Paul Thomas <pault@gcc.gnu.org>
PR fortran/28971
gfortran.dg/pr28971.f90: New test to act as a backstop in case
this undiagnosed regression reappears.
From-SVN: r116904