2007-12-19 Robert Dewar <dewar@adacore.com>
* g-expect-vms.adb, g-expect.adb, s-poosiz.adb:
Add pragma Warnings (Off) for unassigned IN OUT arguments
* sem_warn.adb (Output_Reference): Suppress messages for internal names
(Check_References): Extensive changes to tune up warnings
(Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
(Has_Pragma_Unmodifed_Check_Spec): New function
(Check_References): Implement pragma Unmodified
(Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
* par-prag.adb: Dummy entry for pragma Unmodified
* sem_prag.adb: Implement pragma Unmodified
* einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
(Proc_Next_Component_Or_Discriminant): Fix typo.
Update comments.
* sem_util.adb (Note_Possible_Modification): Add processinng for pragma
Unmodified.
(Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
because the former already takes care of discarding the result.
(Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
Add comment.
* snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
From-SVN: r131068
PR tree-optimization/34355
* tree-parloops.c (take_address_of): Handle expresions
instead of just variables.
(eliminate_local_variables_1): Force whole invariant
address to ssa name.
* g++.dg/tree-ssa/pr34355.C: New test.
From-SVN: r131063
2007-12-19 Etsushi Kato <ek.kato@gmail.com>
Paolo Bonzini <bonzini@gnu.org>
PR target/30572
* Makefile.in: Use @shlib_slibdir@ substitution to get correct install name
on darwin.
* config/t-slibgcc-darwin: Use @shlib_slibdir@ for -install_name.
Co-Authored-By: Paolo Bonzini <bonzini@gnu.org>
From-SVN: r131062
PR c++/34513
* parser.c (cp_parser_omp_parallel): For non-combined parallel
call cp_parser_statement rather than
cp_parser_already_scoped_statement.
* testsuite/libgomp.c/pr34513.c: New test.
* testsuite/libgomp.c++/pr34513.C: New test.
From-SVN: r131059
gcc/
* tree.h (set_decl_incoming_rtl): Add a by_reference_p parameter.
* emit-rtl.c (set_decl_incoming_rtl): Likewise. Don't set the
rtl's register attributes when the parameter is true.
* function.c (assign_parms_unsplit_complex, assign_parms)
(expand_function_start): Update calls to set_decl_incoming_rtl.
From-SVN: r131056
gcc/
* rtl.def (SUBREG): Update comments.
* rtl.h (reg_attrs): Be explicit about the type of offset used.
(set_reg_attrs_from_mem): Rename to...
(set_reg_attrs_from_value): ...this.
(adjust_reg_mode, byte_lowpart_offset): Declare.
* emit-rtl.c (byte_lowpart_offset): New function.
(update_reg_offset): Remove special offset handling for big-endian
targets.
(gen_rtx_REG_offset, gen_reg_rtx_offset): Explicitly say that the
offset parameter is added to REG_OFFSET.
(adjust_reg_mode): New function.
(set_reg_attrs_for_mem): Rename to...
(set_reg_attrs_for_value): ...this and generalize to all values.
If the register is a lowpart of the value, adjust the offset
accordingly.
(set_reg_attrs_for_parm): Update after the above renaming.
(set_reg_attrs_for_decl_rtl): New function, split out from
set_decl_incoming_rtl. Set the offset of plain REGs to the
offset of the REG's mode from the decl's. Assert that all
subregs are lowparts and handle their inner registers in the
same way as plain REGs.
(set_decl_rtl, set_incoming_decl_rtl): Use reg_attrs_for_decl_rtl.
(subreg_lowpart_offset): Explicitly say that the returned offset
is a SUBREG_BYTE.
* combine.c (do_SUBST_MODE, try_combine, undo_all): Use adjust_reg_mode
instead of PUT_MODE.
* final.c (alter_subreg): Fix/update argument to gen_rtx_REG_offset.
* config/ia64/ia64.c (ia64_expand_load_address): Likewise.
* regclass.c (reg_scan_mark_refs): Use set_reg_attrs_from_value.
* reload.c (find_reloads_subreg_address): Call set_mem_offset
when offseting a MEM.
* var-tracking.c (offset_valid_for_tracked_p): Delete.
(mode_for_reg_attrs): Replace with...
(track_loc_p): ...this new function. Return the mode and offset
to the caller, checking that the latter is valid. If the rtx is
a paradoxical lowpart of the decl, use the decl's mode instead.
Do the same when storing to a register that contains the entire decl.
(var_lowpart): Use byte_lowpart_offset rather than
subreg_lowpart_offset when adjusting the offset attribute.
(count_uses, add_uses, add_stores): Use track_reg_p instead of
REG_EXPR, MEM_EXPR, REG_OFFSET, INT_MEM_OFFSET, track_expr_p,
offset_valid_for_tracked_p and mode_for_reg_attrs. Generate
lowparts for MEMs as well as REGs.
(vt_add_function_parameters): When obtaining the information from
the decl_rtl, adjust the offset to match incoming. Use track_loc_p
and var_lowpart.
From-SVN: r131055
2007-12-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/34325
* match.h: New function declaration.
* match.c (gfc_match_parens): New function to look for mismatched
parenthesis. (gfc_match_if): Use new function to catch missing '('.
From-SVN: r131052
gcc/fortran:
2007-12-19 Daniel Franke <franke.daniel@gmail.com>
PR fortran/34495
* expr.c (check_init_expr): Check whether variables with flavor
FL_PARAMETER do have a value assigned. Added error messages where
appropriate.
* simplify.c (gfc_simplify_transfer): Added check if the MOLD
argument is a constant if working with initialization
expressions.
gcc/testsuite:
2007-12-19 Daniel Franke <franke.daniel@gmail.com>
PR fortran/34495
* gfortran.dg/transfer_simplify_2.f90: Fixed invalid initialization
expressions.
* gfortran.dg/transfer_simplify_7.f90: New test.
From-SVN: r131047
PR c++/34206
* pt.c (tsubst_aggr_type): Do nothing if the type already doesn't
use template parms.
(dependent_type_p_r): Handle the domain of an array.
From-SVN: r131044
2007-12-18 David Daney <ddaney@avtrex.com>
* config/mips/mips.md (clear_hazard): Use PRINT_OPERAND punctuation
instead of .set push and .set pop.
From-SVN: r131038
2007-12-18 Andrew Haley <aph@redhat.com>
PR java/27643
* jcf-parse.c (java_parse_file): Remove call to
java_mark_class_local.
(parse_class_file): Reinstate call to java_mark_class_local here.
* decl.c (java_mark_cni_decl_local): If the ASSEMBLER_NAME is
already set, call java_mangle_decl() and make_decl_rtl() to
rewrite its name as a hidden alias.
From-SVN: r131036
* testsuite/Makefile.am (compile-tests): Build
libjava.jvmti/interp/*.h with -jni rather than -cni.
* testsuite/Makefile.in: Rebuilt.
From-SVN: r131010
PR c/34506
* c-parser.c (c_parser_omp_all_clauses): Accept optional comma
in between clauses.
* parser.c (cp_parser_omp_all_clauses): Accept optional comma
in between clauses.
* gcc.dg/gomp/clause-2.c: New test.
* g++.dg/gomp/clause-4.C: New test.
From-SVN: r131008
2007-12-17 Tobias Burnus <burnus@net-b.de>
* intrinsic.c (add_functions): Undo change; mark float and
sngl as STD_F77.
* intrinsic.texi (FLOAT, SNGL): Change standard to F77 and later.
* gfortran.texi (BOZ): Make note about FLOAT etc. clearer.
2007-12-17 Tobias Burnus <burnus@net-b.de>
* gfortran.dg/initialization_16.f90: Update as FLOAT/SNGL are
part of Fortran 77/95/2003.
From-SVN: r131007
PR tree-optimization/34445
* tree-vect-trasnform.c (vect_estimate_min_profitable_iters): Skip
stmts (including live stmts) that are not relevant.
From-SVN: r131006
2007-12-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/34427
* io/list_read.c (read_real): Handle intervening line ends and spaces.
(get_name): Don't push separators to saved_string.
(eat_separator): If in namelist mode eat spaces and line ends as well.
From-SVN: r131003