* include/tr1/cinttypes: Do not provide abs and div, conflicting
with the above overloads for _Longlong types.
* include/tr1/inttypes.h: Adjust.
* testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Adjust.
PR c++/9737
* pt.c (coerce_template_template_parms): Do not templates with
excess default arguments to match template template parameters
with fewer parameters.
(coerce_template_parms): Add use_default_args parameter; use
default arguments only when true.
(lookup_template_class): Adjust call to coerce_template_parms.
(fn_type_unification): Likewise.
(unify): Likewise.
(get_bindings): Likewise.
(dependent_type_p): Add assertions.
Pete Steinmetz [Tue, 7 Feb 2006 08:07:00 +0000 (08:07 +0000)]
sched-rgn.c (compute_dom_prob_ps, [...]): Eradicate use of float in probability computations.
2006-02-07 Pete Steinmetz <steinmtz@us.ibm.com>
* sched-rgn.c (compute_dom_prob_ps, compute_trg_info): Eradicate
use of float in probability computations. Use edge probabilities
in place of statically computed probabilities.
(min_spec_prob): New static variable.
(schedule_insns): Initialize it.
(GET_SRC_PROB): Removed.
* doc/invoke.texi (min-sched-prob): Renamed to min-spec-prob.
Tom Tromey [Tue, 7 Feb 2006 00:59:27 +0000 (00:59 +0000)]
gij.cc (version): Use 2006.
* gij.cc (version): Use 2006.
* gnu/java/rmi/rmic/RMIC.java (parseOptions): Use 2006.
* gnu/gcj/convert/Convert.java (version): Use 2006.
* gnu/gcj/tools/gcj_dbtool/Main.java (main): Use 2006.
Thomas Koenig [Mon, 6 Feb 2006 20:12:44 +0000 (20:12 +0000)]
re PR fortran/23815 (Add -byteswapio flag)
2005-02-06 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/23815
* gfortran.texi: Document the GFORTRAN_CONVERT_UNIT environment
variable.
* invoke.texi: Mention the "Runtime" chapter.
Document the -fconvert= option.
* gfortran.h: Add options_convert.
* lang.opt: Add fconvert=little-endian, fconvert=big-endian,
fconvert=native and fconvert=swap.
* trans-decl.c (top level): Add gfor_fndecl_set_convert.
(gfc_build_builtin_function_decls): Set gfor_fndecl_set_convert.
(gfc_generate_function_code): If -fconvert was specified,
and this is the main program, add a call to set_convert().
* options.c: Handle the -fconvert options.
2005-02-06 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/23815
* runtime/environ.c (init_unformatted): Add GFORTRAN_CONVERT_UNIT
environment variable.
(top level): Add defines, type and static variables for
GFORTRAN_CONVERT_UNIT handling.
(search_unit): New function.
(match_word): New function.
(match_integer): New function.
(next_token): New function.
(push_token): New function.
(mark_single): New function.
(mark_range): New funciton.
(do_parse): New function.
(init_unformatted): New function.
(get_unformatted_convert): New function.
* runtime/compile_options.c: Add set_convert().
* libgfortran.h: Add convert to compile_options_t.
* io/open.c (st_open): Call get_unformatted_convert to get
unit default; if CONVERT_NONE is returned, check for
the presence of a CONVERT specifier and use it.
As default, use compile_options.convert.
* io/io.h (top level): Add CONVERT_NONE to unit_convert, to signal
"nothing has been set".
(top level): Add prototype for get_unformatted_convert.
2005-02-06 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/23815
* unf_io_convert_4.f90: New test.
Roger Sayle [Mon, 6 Feb 2006 18:48:38 +0000 (18:48 +0000)]
trans-stmt.c (gfc_evaluate_where_mask): Allow the NMASK argument to be NULL to indicate that the not mask isn't required.
* trans-stmt.c (gfc_evaluate_where_mask): Allow the NMASK argument
to be NULL to indicate that the not mask isn't required.
(gfc_trans_where_2): Remove PMASK argument. Avoid calculating the
pending mask for the last clause of a WHERE chain. Update recursive
call.
(gfc_trans_forall_1): Update call to gfc_trans_where_2.
(gfc_trans_where): Likewise.
Backport from gomp-20050608-branch
* trans-decl.c (create_function_arglist): Handle dummy functions.
* trans-decl.c (gfc_get_symbol_decl): Revert explicit setting of
TYPE_SIZE_UNIT.
(gfc_trans_vla_type_sizes): Also "gimplify"
GFC_TYPE_ARRAY_DATAPTR_TYPE for GFC_DESCRIPTOR_TYPE_P types.
* trans-array.c (gfc_trans_deferred_array): Call
gfc_trans_vla_type_sizes.
* trans-decl.c (saved_function_decls, saved_parent_function_decls):
Remove unnecessary initialization.
(create_function_arglist): Make sure __result has complete type.
(gfc_get_fake_result_decl): Change current_fake_result_decl into
a tree chain. For entry master, create a separate variable
for each result name. For BT_CHARACTER results, call
gfc_finish_var_decl on length even if it has been already created,
but not pushdecl'ed.
(gfc_trans_vla_type_sizes): For function/entry result, adjust
result value type, not the FUNCTION_TYPE.
(gfc_generate_function_code): Adjust for current_fake_result_decl
changes.
(gfc_trans_deferred_vars): Likewise. Call gfc_trans_vla_type_sizes
even on result if it is assumed-length character.
* trans-decl.c (gfc_trans_dummy_character): Add SYM argument.
Call gfc_trans_vla_type_sizes.
(gfc_trans_auto_character_variable): Call gfc_trans_vla_type_sizes.
(gfc_trans_vla_one_sizepos, gfc_trans_vla_type_sizes_1,
gfc_trans_vla_type_sizes): New functions.
(gfc_trans_deferred_vars): Adjust gfc_trans_dummy_character
callers. Call gfc_trans_vla_type_sizes on assumed-length
character parameters.
* trans-array.c (gfc_trans_array_bounds,
gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias): Call
gfc_trans_vla_type_sizes.
* trans.h (gfc_trans_vla_type_sizes): New prototype.
* trans-decl.c (gfc_build_qualified_array): For non-assumed-size
arrays without constant size, create also an index var for
GFC_TYPE_ARRAY_SIZE (type). If the type is incomplete, complete
it as 0..size-1.
(gfc_create_string_length): Don't call gfc_defer_symbol_init
if just creating DECL_ARGUMENTS.
(gfc_get_symbol_decl): Call gfc_finish_var_decl and
gfc_defer_symbol_init even if ts.cl->backend_decl is already
set to a VAR_DECL that doesn't have DECL_CONTEXT yet.
(create_function_arglist): Rework, so that hidden length
arguments for CHARACTER parameters are created together with
the parameters. Resolve ts.cl->backend_decl for CHARACTER
parameters. If the argument is a non-constant length array
or CHARACTER, ensure PARM_DECL has different type than
its DECL_ARG_TYPE.
(generate_local_decl): Call gfc_get_symbol_decl even
for non-referenced non-constant length CHARACTER parameters
after optionally issuing warnings.
* trans-array.c (gfc_trans_array_bounds): Set last stride
to GFC_TYPE_ARRAY_SIZE (type) to initialize it as well.
(gfc_trans_dummy_array_bias): Initialize GFC_TYPE_ARRAY_SIZE (type)
variable as well.
* tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads.
(ANTIC_SAFE_LOADS): New macro.
(find_or_generate_expression): Add prototype.
(set_contains_value): Allow null set for sake of not always having
to allocate ANTIC_SAFE_LOADS.
(phi_translate): Move placement of AGGREGATE_TYPE_P check.
Allow COMPONENT_REF too.
(valid_in_set): Allow COMPONENT_REF.
Check ANTIC_SAFE_LOADS too.
(compute_antic_aux): Print out ANTIC_SAFE_LOADS.
(compute_rvuse_and_antic_safe): Add ANTIC_SAFE computation, and
rename.
(can_PRE_operation): Add COMPONENT_REF.
(create_component_ref_by_pieces): New function.
(create_expression_by_pieces): Use create_component_ref_by_pieces.
(insert_aux): Move AGGREGATE_TYPE_P check here.
(compute_avail): Set bb local stmt uids.
(pass_pre): Use TODO_update_ssa_only_virtuals.
2006-02-06 Daniel Berlin <dberlin@dberlin.org>
* gcc.dg/tree-ssa/loadpre10.c: New test.
* gcc.dg/tree-ssa/loadpre11.c: Ditto.
* gcc.dg/tree-ssa/loadpre6.c: Expect one more elimination.
* gcc.dg/tree-ssa/loadpre4.c: This should pass now.
Ben Elliston [Sun, 5 Feb 2006 22:59:35 +0000 (09:59 +1100)]
dfp.c (decimal_real_arithmetic): Change second argument type from int to enum tree_code.
* dfp.c (decimal_real_arithmetic): Change second argument type
from int to enum tree_code. Do not always return true, but now
return result of any call to decimal_do helper functions.
* dfp.h (decimal_real_arithmetic): Update prototype.
Roger Sayle [Sun, 5 Feb 2006 22:12:20 +0000 (22:12 +0000)]
dependency.c (gfc_check_dependency): Remove unused vars and nvars arguments.
* dependency.c (gfc_check_dependency): Remove unused vars and nvars
arguments. Replace with an "identical" argument. A full array
reference to the same symbol is a dependency if identical is true.
* dependency.h (gfc_check_dependency): Update prototype.
* trans-array.h (gfc_check_dependency): Delete duplicate prototype.
* trans-stmt.c: #include dependency.h for gfc_check_dependency.
(gfc_trans_forall_1): Update calls to gfc_check_dependency.
(gfc_trans_where_2): Likewise. Remove unneeded variables.
(gfc_trans_where_3): New function for simple non-dependent WHEREs.
(gfc_trans_where): Call gfc_trans_where_3 to translate simple
F90-style WHERE statements without internal dependencies.
* Make-lang.in (trans-stmt.o): Depend upon dependency.h.
Thomas Koenig [Sat, 4 Feb 2006 22:11:57 +0000 (22:11 +0000)]
re PR fortran/25075 ([4.1 only] array size mismatch in DOT_PRODUCT)
2006-02-04 Thomas Koenig <Thomas.Koenig@online.de>
PR fortran/25075
check.c (identical_dimen_shape): New function.
(check_dot_product): Use identical_dimen_shape() to check sizes
for dot_product.
(gfc_check_matmul): Likewise.
(gfc_check_merge): Check conformance between tsource and fsource
and between tsource and mask.
(gfc_check_pack): Check conformance between array and mask.
2006-02-04 Thomas Koenig <Thomas.Koenig@online.de>
PR fortran/25075
intrinsic_argument_conformance_1.f90: New test.
Alexandre Oliva [Sat, 4 Feb 2006 22:08:04 +0000 (22:08 +0000)]
re PR debug/24444 (invalid register in debug info)
PR debug/24444
* config/ia64/ia64.c: Include debug.h.
(MAX_ARTIFICIAL_LABEL_BYTES): New.
(ia64_label_after_insn, ia64_dwarf2out_def_steady_cfa): New.
(IA64_CHANGE_CFA_IN_EPILOGUE): Define to 0.
(process_epilogue, process_set, process_for_unwind_directive):
Output unwind info only if requested. Add CFA info if requested.
Add new arguments as needed. Adjust callers.
* config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Override
incorrect default.
(DWARF2_FRAME_INFO): Define to zero.
* config/ia64/unwind-ia64.c: Remove code that compensated for
the CFA offset error fixed above.
* config/ia64/t-ia64 (ia64.o): Depend on debug.h.
* dwarf2out.c (DWARF2_FRAME_INFO): Define default.
(dwarf2out_do_frame): Require nonzero DWARF2_UNWIND_INFO for
-funwind-tables and -fexceptions to enable frame info.
(dwarf2out_frame_init): Define initial CFA even if
DWARF2_UNWIND_INFO is disabled. Call initial_return_save if
DWARF2_UNWIND_INFO is nonzero, not just defined.
(dwarf2out_frame_finish): Output non-EH call frame info only
if DWARF2_FRAME_INFO is nonzero.
(convert_cfa_to_loc_list,
compute_frame_pointer_to_cfa_displacement): Define even if
unwind info is not supported.
(gen_subprogram_die): Use the above unconditionally. Remove
legacy alternate code.
* toplev.c (compile_file): Compile in call to
dwarf2out_frame_finish if DWARF2_DEBUGGING_INFO is defined.
(lang_dependent_init): Ditto for dwarf2out_frame_init.
Roger Sayle [Sat, 4 Feb 2006 18:57:53 +0000 (18:57 +0000)]
decl.c (java_init_decl_processing): Create char_type_node as a regular INTEGER_TYPE node.
* decl.c (java_init_decl_processing): Create char_type_node as a
regular INTEGER_TYPE node.
(push_promoted_type): Preserve TYPE_STRING_FLAG on types.
* typeck.c (convert): No longer check for CHAR_TYPEs but instead
test for char_type_node and promoted_char_type_node as special
instances of INTEGER_TYPE tree codes.
(promote_type,build_java_signature): Likewise.
* jcf-write.c (adjust_typed_op): Likewise.
* mangle.c (mangle_type): Likewise.
* parse.y (do_unary_numeric_promotion): No longer handle CHAR_TYPE.
* parse.h (JINTEGRAL_TYPE_P): Likewise.
Robert Schuster [Fri, 3 Feb 2006 13:47:51 +0000 (13:47 +0000)]
re PR libgcj/26073 (libjava fails to compile)
Fixes PR #26073.
2006-02-03 Robert Schuster <robertschuster@fsfe.org>
* include/jvm.h:
(_Jv_Linker::create_error_method): New method declaration.
* link.cc:
(_Jv_Linker::create_error_method): New method.
(_Jv_Linker::link_symbol_table): Use new method above.
Roger Sayle [Fri, 3 Feb 2006 03:41:47 +0000 (03:41 +0000)]
tree.h (TYPE_STRING_FLAG): Document that this field may be used on INTEGER_TYPEs to indicate that it...
* tree.h (TYPE_STRING_FLAG): Document that this field may be used
on INTEGER_TYPEs to indicate that it denotes a character type.
* tree.c (build_common_tree_nodes): Set TYPE_STRING_FLAG on
signed_char_type_node, unsigned_char_type_node and char_type_node.
* dwarf2out.c (base_type_die): Treat CHAR_TYPE identically to
INTEGER_TYPE. Use TYPE_STRING_FLAG to decide whether to emit
a DW_ATE_[un]signed_char instead of a DW_ATE_[un]signed.
Zdenek Dvorak [Fri, 3 Feb 2006 00:24:50 +0000 (01:24 +0100)]
tree-tailcall.c (arg_needs_copy_p): New function.
2006-02-02 Zdenek Dvorak <dvorakz@suse.cz>
Daniel Berlin <dberlin@dberlin.org>
* tree-tailcall.c (arg_needs_copy_p): New function.
(eliminate_tail_call): Use arg_needs_copy_p.
(tree_optimize_tail_calls_1): Ditto. Also call add_virtual_phis.
(add_virtual_phis): New function.
Co-Authored-By: Daniel Berlin <dberlin@dberlin.org>
From-SVN: r110530
cse.c (fold_rtx): When arg1 has a constant equivalent...
* cse.c (fold_rtx) <case RTX_COMM_COMPARE, RTX_COMPARE>: When arg1
has a constant equivalent, iterate over equivalents for arg0,
calling simplify_relational_operation and if there's a result
cheaper than X, apply fold_rtx and return the result.