DJ Delorie [Fri, 7 Apr 2006 21:50:47 +0000 (17:50 -0400)]
m32c.c (m32c_function_arg): Structures are always passed on the stack.
* config/m32c/m32c.c (m32c_function_arg): Structures are always
passed on the stack.
(m32c_init_cumulative_args): When a function returns a structure,
always pass the pointer to that return area on the stack.
(m32c_function_arg_advance): Don't increment the parameter number
if we're processing the returned structure pointer.
(pushm_info): Reverse order of registers.
Robert Millan [Thu, 6 Apr 2006 22:16:11 +0000 (22:16 +0000)]
linux.h: Add a comment to mark macros that are being overriden in config/k*bsd-gnu.h.
* gcc/config/i386/linux.h: Add a comment to mark macros that are
being overriden in config/k*bsd-gnu.h.
* gcc/config/kfreebsd-gnu.h: Redefine GLIBC_DYNAMIC_LINKER instead of
DYNAMIC_LINKER.
* gcc/config/knetbsd-gnu.h: Ditto.
Jan Hubicka [Thu, 6 Apr 2006 20:33:21 +0000 (22:33 +0200)]
re PR gcov-profile/20815 (-fprofile-use barfs with "coverage mismatch for function '...' while reading counter 'arcs'.")
PR profile/20815
PR profile/26399
* coverage.c (coverage_checksum_string): Reorganize loop to not read
after buffer.
* g++.dg/bprob/g++-bprob-2.C: New testcase.
Mike Stump [Thu, 6 Apr 2006 19:36:30 +0000 (19:36 +0000)]
* builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
for HAVE_nonlocal_goto to be consistent.
(expand_builtin_nonlocal_goto): Likewise.
(expand_builtin_strcmp): Use #ifdef instead of #if
for HAVE_cmpstrnsi to be consistent.
2006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
Andreas Tobler <a.tobler@schweiz.ch>
* Makefile.am: Add PA_HPUX port.
* Makefile.in: Regenerate.
* include/Makefile.in: Likewise.
* testsuite/Makefile.in: Likewise.
* configure.ac: Add PA_HPUX rules.
* configure: Regenerate.
* src/pa/ffitarget.h: Rename linux target to PA_LINUX.
Add PA_HPUX and PA64_HPUX.
Rename FFI_LINUX ABI to FFI_PA32 ABI.
(FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
(FFI_TYPE_SMALL_STRUCT2): Define.
(FFI_TYPE_SMALL_STRUCT4): Likewise.
(FFI_TYPE_SMALL_STRUCT8): Likewise.
(FFI_TYPE_SMALL_STRUCT3): Redefine.
(FFI_TYPE_SMALL_STRUCT5): Likewise.
(FFI_TYPE_SMALL_STRUCT6): Likewise.
(FFI_TYPE_SMALL_STRUCT7): Likewise.
* src/pa/ffi.c (ROUND_DOWN): Delete.
(fldw, fstw, fldd, fstd): Use '__asm__'.
(ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
(ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
Simplify incrementing of stack slot variable. Change type of local
'n' to unsigned int.
(ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
double on PA_HPUX.
(ffi_prep_cif_machdep): Likewise.
(ffi_call): Likewise.
(ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
return type to ffi_status. Simplify incrementing of stack slot
variable. Only copy floating point argument registers when PA_LINUX
is true. Reformat debug statement.
Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
FFI_TYPE_SMALL_STRUCT8.
(ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
declaration.
(ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
Add nops to cache flush. Add trampoline for PA_HPUX.
* src/pa/hpux32.S: New file.
* src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
ffi_prep_args_LINUX to ffi_prep_args_pa32.
Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
argument type checks so that common argument types appear first.
(ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
Co-Authored-By: Andreas Tobler <a.tobler@schweiz.ch>
From-SVN: r112719
H.J. Lu [Wed, 5 Apr 2006 13:23:35 +0000 (06:23 -0700)]
Correct PR number in ChangeLogs.
gcc/fortran/
2006-04-03 Paul Thomas <pault@gcc.gnu.org>
PR fortran/26891
* trans.h : Prototype for gfc_conv_missing_dummy.
* trans-expr (gfc_conv_missing_dummy): New function
(gfc_conv_function_call): Call it and tidy up some of the code.
* trans-intrinsic (gfc_conv_intrinsic_function_args): The same.
gcc/testsuite/
2006-04-03 Paul Thomas <pault@gcc.gnu.org>
PR fortran/26891
* gfortran.dg/missing_optional_dummy_1.f90: New test.
install.texi (Prerequisites): Refine some wording on bootstrapping and ksh.
* doc/install.texi (Prerequisites): Refine some wording on
bootstrapping and ksh.
Move the version numbers of DejaGnu here from the testing section
and fix casing of names.
Fix markup and clarify wording for autogen requirements.
Refer to GCJ instead of just java.
Refer to SVN instead of CVS.
Describe diffutils as useful instead of necessary.
(Downloading the source): Refer to SVN instead of CVS.
Adjust a link to our web site accordingly.
(Configuration): Fix casing of Bison.
(Specific): Avoid reference to CVS.
(Building): Refer to SVN instead of CVS.
Fix a sentence on the use of Bison and remove duplicate (and
incorrect) version number of Bison requirement.
Remove one redundant list of packages needed for building.
Sebastian Pop [Tue, 4 Apr 2006 17:08:16 +0000 (19:08 +0200)]
tree-scalar-evolution.c (compute_overall_effect_of_inner_loop, [...]): Use build_int_cst instead of build_int_cst_type.
* tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
set_nb_iterations_in_loop): Use build_int_cst instead of
build_int_cst_type.
* tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
build_int_cst instead of convert.
Carlos O'Donell [Tue, 4 Apr 2006 16:19:59 +0000 (16:19 +0000)]
tm.texi (TARGET_STRUCT_VALUE_RTX): Document new value 2 for incoming.
gcc/
2006-04-04 Carlos O'Donell <carlos@codesourcery.com>
* doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
new value 2 for incoming.
* function.c (expand_function_start): Call struct_value_rtx
with incoming as 2.
* config/sparc/sparc.md: Comment updated_return.
* config/sparc/sparc.opt: Add -mstd-struct-return option.
* config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
struct return if sparc_std_struct_return and incoming is 2.
(print_operand): Do not adjust return if
sparc_std_struct_return.
gcc/testsuite/
2006-04-04 Carlos O'Donell <carlos@codesourcery.com>
* doc/extend.texi (Function Attributes): Rewrite visibility
attribute documentation.
* doc/invoke.texi (C++ Dialect Options): Rewrite
-fvisibility-inlines-hidden documentation to describe something
entirely different, although in practise compatible.
(Code Gen Options): Warn about system headers in -fvisibiltity=
documentation.
Adam Nemet [Mon, 3 Apr 2006 18:12:15 +0000 (18:12 +0000)]
simplify-rtx.c (simplify_unary_operation_1): When trying to remove TRUNCATE check if all bits outside the new mode are...
* simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
trying to remove TRUNCATE check if all bits outside the new mode
are identical to the sign bit.
Paolo Bonzini [Mon, 3 Apr 2006 11:20:07 +0000 (11:20 +0000)]
re PR target/19653 (x87 reg allocated for constants for -mfpmath=sse)
2005-08-08 Paolo Bonzini <bonzini@gnu.org>
Dale Johannesen <dalej@apple.com>
PR target/19653
* regclass.c (struct reg_pref): Update documentation.
(regclass): Set prefclass to NO_REGS if memory is the best option.
(record_reg_classes): Cope with a prefclass set to NO_REGS.
* reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
into account. For non-registers, equate an empty preferred
reload class to a `!' in the constraint; move the if clause to
do so after those that reject the insn.
(push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
return NO_REGS.
(find_dummy_reload): Likewise.
* doc/tm.texi (Register Classes): Document what it means
if PREFERRED_*_RELOAD_CLASS return NO_REGS.
* config/i386/i386.c (ix86_preferred_reload_class): Force
using SSE registers (and return NO_REGS for floating-point
constants) if math is done with SSE.
(ix86_preferred_output_reload_class): New.
* config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
* config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
* config/i386/i386.md: Remove # register preferences.
Sebastian Pop [Mon, 3 Apr 2006 09:59:38 +0000 (11:59 +0200)]
re PR tree-optimization/26992 (Internal Compiler Error in dwarf2out.c:7607 build_polynomial_chrec)
PR bootstrap/26992
* tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
the type of nb_iter.
(instantiate_parameters_1): Convert the operands before calling
chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
* tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
Paul Thomas [Mon, 3 Apr 2006 04:20:57 +0000 (04:20 +0000)]
re PR testsuite/26981 (g++.old-deja/g++.other/init18.C fails)
2006-04-03 Paul Thomas <pault@gcc.gnu.org>
PR fortran/26981
* trans.h : Prototype for gfc_conv_missing_dummy.
* trans-expr (gfc_conv_missing_dummy): New function
(gfc_conv_function_call): Call it and tidy up some of the code.
* trans-intrinsic (gfc_conv_intrinsic_function_args): The same.
PR fortran/26976
* array.c (gfc_array_dimen_size): If available, return shape[dimen].
* resolve.c (resolve_function): If available, use the argument shape for the
function expression.
* iresolve.c (gfc_resolve_transfer): Set shape[0] = size.
2006-04-03 Paul Thomas <pault@gcc.gnu.org>
PR fortran/26981
* gfortran.dg/missing_optional_dummy_1.f90: New test.
PR fortran/26976
* gfortran.dg/compliant_elemental_intrinsics_1.f90: New test.
* gfortran.dg/initialization_1.f90: Make assignment compliant.
* gfortran.dg/transfer_array_intrinsic_1.f90: Simplify.
* gfortran.dg/transfer_array_intrinsic_2.f90: Make assignments compliant and detect
bigendian-ness.
Erik Edelmann [Sun, 2 Apr 2006 17:00:39 +0000 (17:00 +0000)]
trans-array.c (gfc_trans_dealloc_allocated): Take a tree representation of the array to be deallocated as argument instead...
2006-04-02 Erik Edelmann <eedelman@gcc.gnu.org>
* trans-array.c (gfc_trans_dealloc_allocated): Take a
tree representation of the array to be deallocated as argument
instead of its gfc_symbol.
(gfc_trans_deferred_array): Update call to
gfc_trans_dealloc_allocated.
* trans-array.h (gfc_trans_dealloc_allocated): Update prototype.
* trans-expr.c (gfc_conv_function_call): Update call to
gfc_trans_dealloc_allocated, get indirect reference to dummy
arguments.
2006-04-02 Erik Edelmann <eedelman@gcc.gnu.org>
* gfortran.dg/allocatable_dummy_1.f90: Also check that allocatable
dummy arguments work when the actual argument is itself a dummy
argument of the caller.
Sebastian Pop [Sun, 2 Apr 2006 04:27:40 +0000 (06:27 +0200)]
tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument at_stmt.
* tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
at_stmt. Convert the type of operands before calling
build_polynomial_chrec.
(add_to_evolution): Pass an extra argument at_stmt. Adjust the call to
add_to_evolution_1.
(follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
(instantiate_parameters_1): Convert the type of operands before calling
build_polynomial_chrec.
* tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
reset_evolution_in_loop): Insert asserts to check the types of the
operands.
(chrec_type): Moved...
(eq_evolutions_p): Use operand_equal_p.
* tree-chrec.h (build_polynomial_chrec): Insert an assert to check
the types of the operands.
(chrec_type): ...here.
* tree-data-ref.c (create_data_ref): Convert the operands before
calling chrec_replace_initial_condition.
(same_access_functions, analyze_subscript_affine_affine,
analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
(compute_subscript_distance, analyze_ziv_subscript,
analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
analyze_miv_subscript): Convert the operands before calling
chrec_fold_minus or chrec_fold_plus.
Sebastian Pop [Sun, 2 Apr 2006 04:08:02 +0000 (06:08 +0200)]
tree-data-ref.c (compute_all_dependences): Use a pointer to the dependence_relations vector.
* tree-data-ref.c (compute_all_dependences): Use a pointer to
the dependence_relations vector.
(compute_data_dependences_for_loop): Adjust call to
compute_all_dependences.
Roger Sayle [Sat, 1 Apr 2006 19:19:22 +0000 (19:19 +0000)]
re PR fortran/25270 (testcases fail with a type mismatch)
PR fortran/25270
* trans-array.c (gfc_trans_allocate_array_storage): In array index
calculations use gfc_index_zero_node and gfc_index_one_node instead
of integer_zero_node and integer_one_node respectively.
(gfc_conv_array_transpose): Likewise.
(gfc_conv_ss_startstride): Likewise.
(gfc_trans_dummy_array_bias): Likewise.
Roger Sayle [Sat, 1 Apr 2006 07:11:35 +0000 (07:11 +0000)]
dependency.c (gfc_dep_compare_expr): Strip parentheses and unary plus operators when comparing expressions.
* dependency.c (gfc_dep_compare_expr): Strip parentheses and unary
plus operators when comparing expressions. Handle comparisons of
the form "X+C vs. X", "X vs. X+C", "X-C vs. X" and "X vs. X-C" where
C is an integer constant. Handle comparisons of the form "P+Q vs.
R+S" and "P-Q vs. R-S". Handle comparisons of integral extensions
specially (increasing functions) so extend(A) > extend(B), when A>B.
(gfc_check_element_vs_element): Move test later, so that we ignore
the fact that "A < B" or "A > B" when A or B contains a forall index.
* gfortran.dg/dependency_14.f90: New test case.
* gfortran.dg/dependency_15.f90: Likewise.
* gfortran.dg/dependency_16.f90: Likewise.
Bob Wilson [Sat, 1 Apr 2006 01:29:11 +0000 (01:29 +0000)]
lib1funcs.asm: Rename abi_entry/abi_return macros to leaf_entry/leaf_return.
* config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
to leaf_entry/leaf_return. Change leaf_entry to add 16 bytes to
the frame size. Update to use the new macros.
* config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
* config/xtensa/ieee754-df.S: Likewise.
* tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
(make_edges): ... here. Control fallthru creation with a local
variable. Do not play with fake edges.
(make_omp_sections_edges): Don't set EDGE_ABNORMAL.
(make_goto_expr_edges): Don't play with fake edges. Make for_call
a boolean.
Joseph Myers [Sat, 1 Apr 2006 00:21:46 +0000 (01:21 +0100)]
dwarf2.h (DW64_CIE_ID): Define.
* dwarf2.h (DW64_CIE_ID): Define.
* dwarf2out.c (DWARF_CIE_ID): Define.
(output_call_frame_info): Output 0xffffffff before standard 8-byte
length header. Use DWARF_CIE_ID.
(value_format): Use DW_FORM_data4 or DW_FORM_data8 for
dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
Mark Mitchell [Fri, 31 Mar 2006 22:16:35 +0000 (22:16 +0000)]
pex-win32.c (<errno.h>): Include.
* pex-win32.c (<errno.h>): Include.
(fix_argv): Remove.
(argv_to_cmdline): New function.
(std_suffixes): New variable.
(no_suffixes): Likewise.
(find_executable): New function.
(win32_spawn): Likewise.
(spawn_script): Use win32_spawn instead of _spawnv[p].
(pex_win32_exec_child): Replace MSVCRT calls with Win32 API calls.
(pex_win32_wait): Likewise.
Andrew Haley [Fri, 31 Mar 2006 11:43:43 +0000 (11:43 +0000)]
re PR libgcj/26858 (NullPointerException not generated for large classes...)
2006-03-30 Andrew Haley <aph@redhat.com>
PR java/26858
* lang.c (java_attribute_table): New.
(LANG_HOOKS_ATTRIBUTE_TABLE): Define.
* expr.c (build_field_ref): Add a null pointer check for all
fields of offset > 4k. Don't do so for accesses via the this
pointer, which we know can never be null.
* class.c (build_java_method_type): Mark arg 1 of all nonstatic
methods nonnull.
Jerry DeLisle [Fri, 31 Mar 2006 05:11:03 +0000 (05:11 +0000)]
re PR libfortran/26890 (SIZE parameter interacts with same variable in IO list character length specification.)
2006-03-30 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/26890
* io/io.h: Add size_used to st_parameter_dt, adjust pad size.
*io/transfer.c (data_transfer_init): Initialize size_used to zero.
(read_sf): Use size_used.
(read_block): Likewise.
(read_block_direct): Likewise.
(write_block): Likewise.
(write_buf): Likewise and eliminate erroneous FAILURE return.
(finalize_transfer): Assign value of size_used to *dtp->size.