* libiberty.h (expandargv): New function.
* argv.c (safe-ctype.h): Include it.
(ISBLANK): Remove.
(stdio.h): Include.
(buildargv): Use ISSPACE instead of ISBLANK.
(expandargv): New function.
From-SVN: r104664
2005-09-24 Janne Blomqvist <jblomqvi@cc.hut.fi>
* trans-io.c (gfc_build_io_library_fndecls): Add entry
iocall_x_array for transfer_array. (transfer_array_desc): New
function. (gfc_trans_transfer): Add code to call
transfer_array_desc.
2005-09-24 Janne Blomqvist <jblomqvi@cc.hut.fi>
* io.h: Changed prototypes of list_formatted_{read|write}.
* list_read.c (list_formatted_read): Renamed to
list_formatted_read_scalar and made static. (list_formatted_read):
New function.
* transfer.c: Prototype for transfer_array. Changed transfer
function pointer. (unformatted_read): Add nelems argument, use
it. (unformatted_write): Likewise. (formatted_transfer): Changed
name to formatted_transfer_scalar. (formatted_transfer): New
function. (transfer_integer): Add nelems argument to transfer
call, move updating item count to transfer
functions. (transfer_real): Likewise. (transfer_logical):
Likewise. (transfer_character): Likewise. (transfer_complex):
Likewise. (transfer_array): New function. (data_transfer_init):
Call formatted_transfer with new argument. (iolength_transfer):
New argument, use it.
* write.c (list_formatted_write): Renamed to
list_formatted_write_scalar, made static. (list_formatted_write):
New function.
From-SVN: r104662
PR fortran/23677
* symbol.c (gfc_is_var_automatic): Return true if character length
is non-constant rather than constant.
* resolve.c (gfc_resolve): Don't handle !gfc_option.flag_automatic
here.
* options.c (gfc_post_options): Set gfc_option.flag_max_stack_var_size
to 0 for -fno-automatic.
* gfortran.fortran-torture/execute/save_1.f90: New test.
* gfortran.dg/save_1.f90: New test.
From-SVN: r104661
* testsuite/libffi.call/float1.c (value_type): New typedef.
(CANARY): New define.
(main): Check for result buffer overflow.
* src/powerpc/linux64.S: Handle linux64 long double returns.
* src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
(ffi_prep_cif_machdep): Handle linux64 long double returns.
From-SVN: r104660
PR tree-optimization/23942
* Makefile.in (SCEV_H): Depends on PARAMS_H.
* tree-scalar-evolution.c: Include params.h.
(t_bool): New enum.
(follow_ssa_edge, follow_ssa_edge_in_rhs,
follow_ssa_edge_in_condition_phi_branch,
follow_ssa_edge_in_condition_phi, follow_ssa_edge_inner_loop_phi):
Change return type to t_bool. Use a parameter to limit the size of
trees that are walked before stopping
(analyze_evolution_in_loop): Initialize the limit to 0.
(follow_ssa_edge): Give up by returning t_dont_know if the limit
exceeds PARAM_SCEV_MAX_EXPR_SIZE.
From-SVN: r104653
PR target/24055
* config/i386/i386.md ("*fistdi2_1"): New pattern.
("*fist<mode>2_1"): Use only HImode and SImode register operands.
("fist<mode>2_with_temp"): Use only register operands.
From-SVN: r104647
2005-09-26 Richard Guenther <rguenther@suse.de>
PR middle-end/15855
* decl2.c (do_static_destruction): Remove.
(finish_static_initialization_or_destruction): Likewise.
(DECL_EFFECTIVE_INIT_PRIORITY): New macro.
(NEEDS_GUARD_P): Likewise.
(do_static_initialization): Rename to
do_static_initialization_or_destruction. Process all
initializers/destructors and handle common conditionalizing.
(start_static_initialization_or_destruction): Rename to
one_static_initialization_or_destruction. Handle only
decl-specific conditionalizing.
(cp_finish_file): Call do_static_initialization_or_destruction.
From-SVN: r104642
2005-09-26 Richard Guenther <rguenther@suse.de>
PR middle-end/15855
* gcse.c: Include hashtab.h, define ldst entry hashtable.
(pre_ldst_expr_hash, pre_ldst_expr_eq): New functions.
(ldst_entry): Use the hashtable instead of list-walking.
(find_rtx_in_ldst): Likewise.
(free_ldst_entry): Free the hashtable.
(compute_ld_motion_mems): Create the hashtable.
(trim_ld_motion_mems): Remove entry from hashtable if
removing it from list.
(compute_store_table): Likewise^2.
(store_motion): Free hashtable in case we did not see
any stores.
From-SVN: r104641
gcc/
PR tree-optimization/23960
* fold-const.c (fold_binary): Use op0 and op1 instead of arg0
and arg1 if we are passing them to fold_build2.
gcc/testsuite/
PR tree-optimization/23960
* gcc.c-torture/compile/pr23960.c: New.
From-SVN: r104634
* c-common.c (handle_mode_attribute): When not modifying in place,
create subtypes for enumerations.
(sync_resolve_return): Use TYPE_MAIN_VARIANT.
* gimplify.c (create_tmp_from_val): Likewise.
From-SVN: r104603
2005-09-23 Paul Thomas <pault@gcc.gnu.org>
PR fortran/16861
* module.c (mio_component_ref): Return if the symbol is NULL
and wait for another iteration during module reads.
(mio_symtree_ref): Suppress the writing of contained symbols,
when a symbol is available in the main namespace.
(read_module): Restrict scope of special treatment of contained
symbols to variables only and suppress redundant call to
find_true_name.
2005-09-23 Paul Thomas <pault@gcc.gnu.org>
PR fortran/16861
* gfortran.dg/nested_modules_3.f90: New.
From-SVN: r104574
2005-09-23 Rafael ��vila de Esp��ndola <rafael.espindola@gmail.com>
* parse.y : Changed pointer declaration from "type* var" to "type *var"
Removed trailing space. Wrap long lines.
2005-09-23 Rafael ��vila de Esp��ndola <rafael.espindola@gmail.com>
* parse.y : Fixed two compile warnings in "error" and "warning"
invocations. Removed trailing periods in messages. Decapitalized the
first word of each.
From-SVN: r104569
2005-09-23 David Edelsohn <edelsohn@gnu.org>
Pete Steinmetz <steinmtz@us.ibm.com>
* config/rs6000/rs6000.md (neg-minus-mult): Set type to dmul.
(rldic.): Set type to "compare".
(rldicr.): Same.
(movsf_hardfloat): Set type to mtjmpr for MTCTR/MTLR. Set type to
mfjmpr for MFCTR/MFLR.
(movdf_hardfloat64): Same.
(movdf_softfloat64): Same. Correct order of store and move types.
(movti_string): Set type to store_ux/load_ux.
(load_multiple): Set type to load_ux.
(store_multiple): Set type to store_ux.
(movmemsi): Set type to store_ux.
(output_cbranch direct_return): Set type to jmpreg.
(stmw): Set type to store_ux.
(lmw): Set type to load_ux.
* config/rs6000/40x.md (ppc403-store): Increase latency to 2.
* config/rs6000/440.md (ppc440-store): Increase latency to 6.
* config/rs6000/603.md (ppc603-store): Occupy LSU for 2 cycles.
* config/rs6000/6xx.md (ppc604-store): Increase latency to 3.
* config/rs6000/mpc.md (mpccore-store): Increase latency to 2.
* config/rs6000/rios1.md (rios1-store): Increase latency to 2.
(rios1-fpstore): Increase latency to 3.
* config/rs6000/rios2.md (rios2-store): Increase latency to 2.
* config/rs6000/rs64.md (rs64a-store): Increase latency to 2.
Co-Authored-By: Pete Steinmetz <steinmtz@us.ibm.com>
From-SVN: r104568