2010-08-11 Janus Weil <janus@gcc.gnu.org>
PR fortran/44595
* intrinsic.c (gfc_current_intrinsic_arg): Change type from 'char' to
'gfc_intrinsic_arg'.
(check_arglist,check_specific): Add reference to 'name' field.
(init_arglist): Remove reference to 'name' field.
* intrinsic.h (gfc_current_intrinsic_arg): Modify prototype.
* check.c (variable_check): Reverse order of checks. Respect intent of
formal arg.
(int_or_proc_check): New function.
(coarray_check): New function.
(allocatable_check): New function.
(gfc_check_allocated,gfc_check_move_alloc): Use 'allocatable_check'.
(gfc_check_complex): Use 'int_or_real_check'.
(gfc_check_lcobound,gfc_check_image_index,gfc_check_this_image,
gfc_check_ucobound): Use 'coarray_check'.
(gfc_check_pack): Use 'real_or_complex_check'.
(gfc_check_alarm_sub,gfc_check_signal,gfc_check_signal_sub): Use
'int_or_proc_check'.
(scalar_check,type_check,numeric_check,int_or_real_check,
real_or_complex_check,kind_check,double_check,logical_array_check,
array_check,same_type_check,rank_check,nonoptional_check,
kind_value_check,gfc_check_a_p,gfc_check_associated,gfc_check_cmplx,
gfc_check_cshift,gfc_check_dcmplx,gfc_check_dot_product,gfc_check_dprod,
gfc_check_eoshift,gfc_check_fn_rc2008,gfc_check_index,gfc_check_kind,
gfc_check_matmul,gfc_check_minloc_maxloc,check_reduction,gfc_check_null,
gfc_check_present,gfc_check_reshape,gfc_check_same_type_as,
gfc_check_spread,gfc_check_unpack,gfc_check_random_seed,
gfc_check_getarg,gfc_check_and,gfc_check_storage_size): Add reference
to 'name' field.
2010-08-11 Janus Weil <janus@gcc.gnu.org>
Steve Kargl <kargl@gcc.gnu.org>
PR fortran/44595
* gfortran.dg/move_alloc_3.f90: New.
* gfortran.dg/random_seed_2.f90: New.
Co-Authored-By: Steve Kargl <kargl@gcc.gnu.org>
From-SVN: r163096
* opts.h (struct cl_option_handler_func): Make handler take
cl_decoded_option structure as parameter, not individual elements.
(struct cl_option_handlers): Make callbacks take cl_decoded_option
structure as parameter, not individual elements.
(handle_option): Take cl_decoded_option structure as parameter,
not individual elements.
(handle_generated_option): Declare.
* opts-common.c (handle_option): Take cl_decoded_option structure
as parameter, not individual elements. Update calls to callback
and handler functions.
(handle_generated_option): New.
(read_cmdline_option): Update calls to callback functions and
handle_option.
* opts.c (common_handle_option, complain_wrong_lang,
unknown_option_callback, post_handling_callback,
lang_handle_option, target_handle_option): Take cl_decoded_option
structure as parameter, not individual elements.
(lang_handle_option, target_handle_option, common_handle_option):
Assert option has at most one argument.
(enable_warning_as_error): Call handle_generated_option instead of
handle_option. Do not pass -Werror argument as argument of
generated option.
c-family:
* c-opts.c (c_common_handle_option): Call handle_generated_option
instead of handle_option.
From-SVN: r163095
2010-08-10 Vladimir Makarov <vmakarov@redhat.com>
* ira-live.c: Include sbitmap.h.
(remove_some_program_points_and_update_live_ranges): Use sbitmaps.
Compress live ranges even more.
From-SVN: r163080
PR bootstrap/45177
* config/arm/arm.c (multiple_operation_profitable_p): Move xscale
test here from arm_gen_load_multiple_1.
(arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
multiple_operation_profitable_p.
From-SVN: r163077
2010-08-10 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/shared_ptr_base.h: Remove a few now redundant
__glibcxx_function_requires(_ConvertibleConcept...).
* testsuite/20_util/shared_ptr/cons/43820.cc: Adjust dg-error
line number.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Likewise.
From-SVN: r163075
2010-08-10 Daniel Kraft <d@domob.eu>
* gfortran.texi (Interoperability with C): Fix ordering in menu
and add new subsection about pointers.
(Interoperable Subroutines and Functions): Split off the pointer part.
(working with Pointers): New subsection with extended discussion
of pointers (especially procedure pointers).
From-SVN: r163073
* config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
after saving registers. Assert that SSE registers are only saved
with a sufficiently aligned frame.
(ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
remove stack_realign_fp handling.
(ix86_expand_prologue): Save int registers before stack_realign_fp,
and do not mark the stack alignment as frame related.
(ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
* dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
saves when re-aligning the stack.
From-SVN: r163068
2010-08-10 Robert Dewar <dewar@adacore.com>
* sem_ch8.adb, sem_ch8.ads: Change name Write_Scopes to ws.
* sem_util.adb: Minor reformatting.
From-SVN: r163067
2010-08-10 Javier Miranda <miranda@adacore.com>
* sem_aggr.adb (Resolve_Extension_Aggregate): Warn on the use of C++
constructors that leave the object partially initialized.
* exp_atag.ads, exp_atags.adb (Build_Inherit_CPP_Prims): New subprogram
that copies from parent of Typ the dispatch table slots of inherited
C++ primitives. It handles primary and secondary dispatch tables.
* einfo.adb (Related_Type): Moved from Node26 to Node27. Required to
use this attribute with E_Variable entities.
(Set_Is_Tag): Relax assertion to allow its use with variables that
store tags.
(Set_Related_Type): Relax assertion to allow its use with variables
that store the tag of a C++ class.
(Write_26_Field_Name): Remove Related_Type.
(Write_27_Field_Name): Add Related_Type.
* einfo.ads (Related_Type): Moved from Node26 to Node27. Available also
with E_Variable entities.
* sem_prag.adb (CPP_Constructor): Warn on duplicated occurrence of this
pragma.
* sem_util.adb (Search_Tag): Add missing support for CPP types.
(Enclosing_CPP_Parent): New subprogram.
(Has_Suffix): New subprogram.
* sem_util.ads (Enclosing_CPP_Parent): New subprogram that returns the
closest ancestor of a type that is a C++ type.
(Has_Suffix): New subprogram. Used in assertions to check the suffix of
internal entities.
* sem_attr.adb (Analyze_Access_Attribute): Check wrong use of current
instance in derivations of C++ types.
* exp_tss.adb (CPP_Init_Proc): New subprogram.
(Is_CPP_Init_Proc): New subprogram.
(Set_TSS): Handle new C++ init routines.
* exp_tss.ads (TSS_CPP_Init): New TSS name. For initialization of C++
dispatch tables.
(CPP_Init_Proc): New subprogram.
(Is_CPP_Init_Proc): New subprogram.
* exp_disp.adb (CPP_Num_Prims): New subprogram.
(Has_CPP_Constructors): New subprogram.
(Make_Secondary_DT, Make_DT): For derivations of CPP types, do not
initialize slots located in the C++ part of the dispatch table.
(Make_Tags): For CPP types declare variables used by the IP routine to
store the C++ tag values after the first invocation of the C++
constructor.
(Build_CPP_Init_DT): New subprogram.
(Set_CPP_Constructors): New implementation that builds an IP for each
CPP constructor. These IP are wrappers of the C++ constructors that,
after the first invocation of the constructor, read the C++ tags from
the object and save them locally. These copies of the C++ tags are used
by the IC routines to initialize tables of Ada derivations of CPP types.
(Write_DT): Indicate what primitives are imported from C++
* exp_disp.ads (CPP_Num_Prims): New subprogram.
(Has_CPP_Constructors): New subprogram.
* exp_aggr.adb (Build_Record_Aggr_Code): For derivations of C++ types
invoke the IC routine to inherit the slots of the parents.
* sem_ch13.adb (Analyze_Freeze_Entity): Add new warnings on CPP types.
* exp_ch3.adb (Is_Variable_Size_Array): New subprogram.
(Is_Variable_Size_Record): Factorize code calling
Is_Variable_Size_Array.
(Build_CPP_Init_Procedure): New subprogram that builds the tree
corresponding to the procedure that initializes the C++ part of the
dispatch table of an Ada tagged type that is a derivation of a CPP type.
(Build_Init_Procedure): Adding documentation plus code reorganization to
leave more clear the construction of the IP with C++ types.
(Expand_Freeze_Record_Type): Delay call to Set_CPP_Constructors because
it cannot be called after Make_Tags has been invoked.
(Inherit_CPP_Tag): Removed.
(Init_Secondary_Tags): For derivations of CPP types, warn on tags
located at variable offset.
* freeze.ads: Minor reformating.
* sem_ch8.adb (Write_Scopes): Add pragma export. Required to have it
available in gdb.
* gcc-interface/Make-lang.in: Update dependencies.
From-SVN: r163065
2010-08-10 Robert Dewar <dewar@adacore.com>
* a-chahan.ads: Add comments on handling of obsolescent entries.
* opt.ads: Add Ada_2005 and Ada_2012 renamings for versions.
* restrict.adb (Check_Obsolescent_2005_Entity): New procedure.
* restrict.ads (Check_Obsolescent_2005_Entity): New procedure.
* sem_attr.adb (Analyze_Access_Attribute): Call
Check_Obsolescent_2005_Entity to check for access to obsolescent
Ada.Characters.Handling subprogram.
(Analyze_Attribute, case Class): Applying Class to untagged incomplete
type is obsolescent in Ada 2005.
(Analyze_Attribute, case Constrained): Better placement of flag when
flagged as obsolescent feature.
(Analyze_Attribute, case Storage_Size): Use with tasks is obsolescent
* sem_ch10.adb (Analyze_With_Clause): With of renamings such as Text_IO
is an obsolescent feature.
* sem_ch11.adb (Analyze_Raise_Statement): Numeric_Error is obsolescent
feature.
* sem_ch8.adb (Analyze_Subprogram_Renaming): Call
Check_Obsolescent_2005_Entity to check for renaming obsolete
Ada.Characters.Handling subprogram.
* sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): Check
for obsolescent restrictions in Ada 2005.
(Analyze_Pragma, case Suppress): Entity arg is obsolescent in Ada 2005
(Analyze_Pragma, case Interface): Interface is obsolescent in Ada 2005
* sem_res.adb (Resolve_Call): Call Check_Obsolescent_2005_Entity to
check for obsolescent references to Ada.Characters.Handling subprograms
2010-08-10 Robert Dewar <dewar@adacore.com>
* einfo.adb, einfo.ads: Fix bad -gnatdt output for incomplete type.
2010-08-10 Robert Dewar <dewar@adacore.com>
* errout.ads: Add VMS table entries for 2005, 12, 2012 switches
* par-ch4.adb: Change wording of Ada 2012 messages
* vms_data.ads: Add VMS entries for /2005, /12, /2012
From-SVN: r163063
2010-08-10 Robert Dewar <dewar@adacore.com>
* a-suenco.adb (Convert): Fix bug in UTF-16 to UTF-8 conversion for
codes in the range 16#80#..16#7FF#.
* sem_ch10.adb: Minor reformatting.
2010-08-10 Arnaud Charlet <charlet@adacore.com>
* gnat1drv.adb (Scan_Front_End_Switches): Always perform semantics and
generate ali files in CodePeer mode, so that a gnatmake -c -k will
proceed further when possible
* freeze.adb (Freeze_Static_Object): Fix thinko. Do not generate error
messages when ignoring representation clauses (-gnatI).
2010-08-10 Ed Schonberg <schonberg@adacore.com>
* exp_ch4.adb (Expand_N_Selected_Component): Do not attempt to
constant-fold discriminant reference if the constraint is an object
with non-static expression. Expression may contain volatile references
in the presence of renamings.
2010-08-10 Vincent Celier <celier@adacore.com>
* prj-proc.adb (Get_Attribute_Index): If Index is All_Other_Names,
returns Index.
* prj-strt.adb (Attribute_Reference): Recognize 'others' as a valid
index for an associative array where it is allowed.
From-SVN: r163060
PR middle-end/45182
* combine.c (make_compound_operation): Don't try to convert
shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
PR middle-end/45182
* gcc.c-torture/compile/pr45182.c: New test.
From-SVN: r163057
2010-08-10 Richard Guenther <rguenther@suse.de>
* tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
(copy_prop_visit_assignment): Simplify.
(copy_prop_visit_stmt): Also visit assignments from
constants.
(copy_prop_visit_phi_node): Use operand_equal_p.
From-SVN: r163050
2010-08-09 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/44235
* array.c (gfc_ref_dimen_size): Add end argument.
If end is non-NULL, calculate it.
(ref_size): Adjust call to gfc_ref_dimen_size.
(gfc_array_dimen_size): Likewise.
(gfc_array_res_shape): Likewise.
* gfortran.h: Adjust prototype for gfc_ref_dimen_size.
* resolve.c (resolve_array_ref): For stride not equal to -1,
fill in the lowest possible end.
2010-08-09 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/44235
* gfortran.dg/dependency_32.f90: New test.
From-SVN: r163041
2010-08-09 Bingfeng Mei <bmei@broadcom.com>
* ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
alias_sets_conflict_p.
(walk_mems_1): Moved from alias.c.
(insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
in alias.c.
(add_inter_loop_mem_dep): Use insns_may_alias_p now.
* cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
* alias.c (walk_mems_2): Moved to ddg.c.
(walk_mems_1): Ditto.
(insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
to ddg.c.
(nonoverlapping_memrefs_p): Add flag to guard offset-based memory
disambiguation.
*(may_alias_p): New function to check whether two memory expression
may alias or not. Currently used in buidling inter-iteration memory
dependence.
*alias.h (nonoverlapping_memrefs_p): New flag as third argument.
(insn_alias_sets_conflict_p): Removed
*rtl.h (may_alias_p): New function prototype.
From-SVN: r163037