* config/i386/i386.c (ix86_function_regparm): Ditto. Use REGPARM_MAX
to check that no regparm hard register is taken by a fixed register
variable. Check up to and including DI_REG when adjusting regparm
value due to fixed regs usage.
(rep_prefix_usable): Check fixed_regs array, not global_regs array for
available hard registers.
(ix86_expand_strlen): Ditto.
* config/i386/i386.md (strmov): Ditto.
(cmpstrnsi): Ditto.
From-SVN: r130737
* genopinit.c: Include tm_p.h in generated file.
* config/arm/neon.md (vec_set<mode>_internal): Use INTVAL
to extract the integer from operands[2].
(vec_setv2di_internal): Likewise.
* config/arm/arm.c (arm_size_return_regs): Make return type
unsigned.
(arm_init_neon_builtins): Move code after declarations.
From-SVN: r130736
* reload.c (find_reloads_address_1): To properly mark as an
autoincdec, pass X for non-NULL OUT in call to push_reload for
autoincdec which can't be trivially used as an address.
From-SVN: r130734
* caller-save.c (insert_one_insn): If inserting before a call_insn
then the registers containing the arguments of the call are
live_throughout in the new insn.
Co-Authored-By: Hans-Peter Nilsson <hp@axis.com>
From-SVN: r130733
PR c++/34178
PR c++/34340
* repo.c (repo_emit_p): Return 2 for DECL_INTEGRAL_CONSTANT_VAR_P
in class scope rather than DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
Return 2 also if DECL_EXPLICIT_INSTANTIATION.
* decl2.c (import_export_decl): Don't make VAR_DECLs import_p when
flag_use_repository and repo_emit_p returned 2.
* g++.dg/template/repo6.C: New test.
* g++.dg/template/repo7.C: New test.
* g++.dg/template/repo8.C: New test.
From-SVN: r130727
gcc/ada/
PR ada/34366
* sem_ch3.adb (Designates_T): New function.
(Mentions_T): Factor reusable part of the logic into Designates_T.
Consider non-access parameters and access and non-access result.
(Check_Anonymous_Access_Components): Set ekind of anonymous access to
E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
* einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
gcc/testsuite/
PR ada/34366
* gnat.dg/enclosing_record_reference.ads,
gnat.dg/enclosing_record_reference.adb: New test.
From-SVN: r130720
2007-12-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/32129
* dump-parse-tree.c (gfc_show_expr_n): New function for
debugging.
* gfortran.h : Add prototype for gfc_show_expr_n.
* expr.c (simplify_constructor): Copy the constructor
expression and try to simplify that. If success, replace the
original. Otherwise discard the copy, keep going through
the structure and return success.
PR fortran/31487
* decl.c (build_struct): Pad out default initializers with
spaces to the component character length.
2007-12-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/32129
* gfortran.dg/derived_comp_array_ref_6.f90: New test.
* gfortran.dg/derived_comp_array_ref_7.f90: New test.
PR fortran/31487
* gfortran.dg/char_component_initializer_1.f90: New test.
From-SVN: r130719
PR fortran/34359
* gfortran.h (gfc_file): Remove sibling and down fields.
* scanner.c (file_changes, file_changes_cur, file_changes_count,
file_changes_allocated): New variables.
(add_file_change, report_file_change): New functions.
(change_file): Remove.
(gfc_start_source_files, gfc_end_source_files): Call
report_file_change instead of change_file.
(gfc_advance_line): Call report_file_change instead of change_file,
call it even if lb->file == lb->next->file.
(get_file): Revert last changes.
(preprocessor_line): Call add_file_change when entering or leaving
a file.
(load_file): Likewise. Set file_change[...].lb for all newly added
file changes.
* gfortran.dg/include_1.f90: New test.
* gfortran.dg/include_1.inc: New.
* gfortran.dg/include_2.f90: New test.
From-SVN: r130712
2007-12-08 David Daney <ddaney@avtrex.com>
* src/mips/n32.S (ffi_call_N32): Replace dadd with ADDU, dsub with
SUBU, add with ADDU and use smaller code sequences.
From-SVN: r130711
2007-12-08 Andreas Tobler <a.tobler@schweiz.org>
* configure.host: Add bits for i?86-*-darwin9 and x86_64-*-darwin9.
* configure.ac: Add darwin-signal.h to x86_64-*-darwin9 and
i?86-*darwin9.
* configure.in: Regenerate.
* darwin.cc: Add definitions for Darwin specific functions for 64-bit.
(darwin_java_register_dyld_add_image_hook): Use this specific
functions.
* Makefile.am (gij_LDFLAGS): Add extra_gij_ldflags for Darwin9.
* Makefile.in: Regenerate.
* include/Makefile.in: Likewise.
* gcj/Makefile.in: Likewise.
* testsuite/Makefile.in: Likewise.
* testsuite/lib/libjava.exp (libjava_arguments): Add allow_stack_execute
for *-*-darwin9*.
From-SVN: r130709
2007-12-08 Richard Guenther <rguenther@suse.de>
PR tree-optimization/34391
* tree-vect-transform.c (vect_setup_realignment): Mark new
symbols for renaming.
From-SVN: r130707
2007-12-07 Ludovic Brenta <ludovic@ludovic-brenta.org>
gcc/ada/
PR ada/34261
* mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
the new implementation of target-specific calls.
From-SVN: r130695
2007-12-07 Olivier Hainque <hainque@adacore.com>
ada/
* decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
the designated full view, only follow a second level Full_View link
for Non_Limited_Views of from_limited_with references.
testsuite/
* gnat.dg/tamdt*.ad?: Support for ...
* gnat.dg/test_tamdt.adb: New test.
From-SVN: r130679
2007-12-07 Olivier Hainque <hainque@adacore.com>
testsuite/
* gnat.dg/unc_memops.ads: Comment out the alloc/free/realloc
exports and document how these can be exercised.
From-SVN: r130678
gcc/ada/
* sem_ch3.adb (Analyze_Object_Declaration): Signal an error
when an access to constant is used to initialize an access
value.
gcc/testsuite/
* gnat.dg/specs/access_constant_decl.ads: New test.
From-SVN: r130677
gcc/ada/
PR ada/15805
* sem_ch6.adb (Process_Formals): Prevent an access type formal
to be initialized with an access to constant object.
gcc/testsuite/
PR ada/15805
* gnat.dg/specs/access_constants.ads: New test.
From-SVN: r130676
2007-12-07 Olivier Hainque <hainque@adacore.com>
PR ada/34173
* decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
this is from an alignment clause on the GNAT entity.
* utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
to distinguish the case where we set it from the type's alignment.
When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
whether this alignment was set from an explicit alignment clause.
From-SVN: r130673
2007-12-07 Richard Guenther <rguenther@suse.de>
* tree-profile.c (gcov_type_tmp_var): New global variable.
(tree_gen_edge_profiler): Use a single shared variable decl per
function for edge counter incrementing.
(tree_profiling): Re-set the shared variable.
From-SVN: r130672
* decl.c (make_packable_type): Revert last change.
(gnat_to_gnu_field): Avoid setting size and position multiple times.
* utils.c (finish_record_type): Retrieve the real name of the type.
From-SVN: r130665
2007-12-06 David Daney <ddaney@avtrex.com>
* include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
defined.
(ffi_java_raw): New typedef.
(ffi_java_raw_call, ffi_java_ptrarray_to_raw,
ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
ffi_java_raw.
(ffi_java_raw_closure) : Same.
(ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
parameter types.
* src/java_raw_api.c (ffi_java_raw_size): Replace FFI_SIZEOF_ARG with
FFI_SIZEOF_JAVA_RAW.
(ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
sizeof(ffi_java_raw) for alignment calculations.
(ffi_java_ptrarray_to_raw): Same.
(ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
if FFI_SIZEOF_JAVA_RAW == 4.
(ffi_java_raw_to_rvalue): Same.
(ffi_java_raw_call): Change type of raw to ffi_java_raw.
(ffi_java_translate_args): Same.
(ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
parameter types.
* src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
2007-12-06 David Daney <ddaney@avtrex.com>
* interpret.cc: Replace ffi_raw with INTERP_FFI_RAW_TYPE throughout.
(ncode_closure, ffi_closure_fun): Define versions for
non-FFI_NATIVE_RAW_API case.
* include/java-interp.h (INTERP_FFI_RAW_TYPE): Define and use to
replace ffi_raw throughout.
* jni.cc, interpret-run.cc: Replace ffi_raw with INTERP_FFI_RAW_TYPE
throughout.
From-SVN: r130660
2007-12-06 Andreas Tobler <a.tobler@schweiz.org>
* testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation): Make
the testsuite multilib aware for Darwin.
From-SVN: r130657