1. 02 Aug, 2011 40 commits
    • re PR c++/49834 ([C++0x] type deduction in for-each loop in template function) · 2b756fa2
      	PR c++/49834
      	* parser.c (build_range_temp): Split out from...
      	(cp_convert_range_for): ...here.
      	(do_range_for_auto_deduction): New.
      	(cp_parser_range_for): Use it.
      
      From-SVN: r177199
      Jason Merrill committed
    • trans-array.c (gfc_array_allocate): Pass token to gfc_allocate_allocatable for -fcoarray=lib. · 979d4598
      2011-08-02  Tobias Burnus  <burnus@net-b.de>
      
              * trans-array.c (gfc_array_allocate): Pass token to
                gfc_allocate_allocatable for -fcoarray=lib.
              * trans-stmt.c (gfc_trans_allocate): Update
              gfc_allocate_allocatable call.
              * trans.h (gfc_allocate_allocatable): Update prototype.
              (gfc_allocate_using_lib): Remove.
              * trans.c (gfc_allocate_using_lib): Make static, handle
              token.
              (gfc_allocate_allocatable): Ditto.
      
      2011-08-02  Tobias Burnus  <burnus@net-b.de>
      
              * gfortran.dg/coarray_lib_token_3.f90: New.
      
      From-SVN: r177198
      Tobias Burnus committed
    • re PR target/49881 ([AVR] Inefficient stack manipulation around calls) · b7cef595
      PR target/49881
              * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
      
      From-SVN: r177196
      Richard Henderson committed
    • backport: re PR fortran/46752 (OpenMP - Seg fault for unallocated allocatable… · 20906c66
      backport: re PR fortran/46752 (OpenMP - Seg fault for unallocated allocatable array in firstprivate clause)
      
      Merge from gomp-3_1-branch branch:
      
      2011-08-02  Jakub Jelinek  <jakub@redhat.com>
      
      gcc/
      	* c-parser.c (enum c_parser_prec): New enum, moved from within
      	c_parser_binary_expression.
      	(c_parser_binary_expression): Add PREC argument.  Stop parsing
      	if operator has lower or equal precedence than PREC.
      	(c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
      	callers.
      	(c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
      	Adjust c_finish_omp_atomic caller.
      	(c_parser_omp_taskyield): New function.
      	(c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
      	(c_parser_omp_clause_name): Handle final and mergeable clauses.
      	(c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
      	functions.
      	(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
      	and PRAGMA_OMP_CLAUSE_MERGEABLE.
      	(OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
      	(c_parser_omp_clause_reduction): Handle min and max.
      	* c-typeck.c (c_finish_omp_clauses): Don't complain about
      	const qualified predetermined vars in firstprivate clause.
      	andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
      	Handle MIN_EXPR and MAX_EXPR.
      	* tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
      	and OMP_CLAUSE_MERGEABLE.
      	(dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
      	and OMP_ATOMIC_CAPTURE_NEW.
      	* tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
      	OMP_CLAUSE_MERGEABLE.
      	(omp_clause_code_name): Likewise.
      	(walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
      	* tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
      	and OMP_CLAUSE_MERGEABLE.
      	(OMP_CLAUSE_FINAL_EXPR): Define.
      	* omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
      	OMP_CLAUSE_MERGEABLE.
      	(expand_task_call): Likewise.
      	(expand_omp_atomic_load, expand_omp_atomic_store): New functions.
      	(expand_omp_atomic_fetch_op): Handle cases where old or new
      	value is needed afterwards.
      	(expand_omp_atomic): Call expand_omp_atomic_load resp.
      	expand_omp_atomic_store.
      	* gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
      	OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
      	(gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
      	OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
      	* tree-nested.c (convert_nonlocal_omp_clauses,
      	convert_local_omp_clauses): Likewise.
      	* tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
      	OMP_ATOMIC_CAPTURE_NEW): New.
      	* gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
      	(gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
      	New inlines.
      	* omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
      	* doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
      	OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
      gcc/c-family/
      	* c-common.h (c_finish_omp_atomic): Adjust prototype.
      	(c_finish_omp_taskyield): New prototype.
      	* c-omp.c (c_finish_omp_atomic): Add OPCODE, V, LHS1 and RHS1
      	arguments. Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and
      	OMP_ATOMIC_CAPTURE_NEW in addition to OMP_ATOMIC.  If LHS1
      	or RHS1 have side-effects, evaluate those too in the right spot,
      	if it is a decl and LHS is also a decl, error out if they
      	aren't the same.
      	(c_finish_omp_taskyield): New function.
      	* c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP to 201107.
      	* c-pragma.c (omp_pragmas): Add taskyield.
      	* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_TASKYIELD.
      	(enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_FINAL and
      	PRAGMA_OMP_CLAUSE_MERGEABLE.
      gcc/cp/
      	* cp-tree.h (finish_omp_atomic): Adjust prototype.
      	(cxx_omp_const_qual_no_mutable): New prototype.
      	(finish_omp_taskyield): New prototype.
      	* parser.c (cp_parser_omp_atomic): (cp_parser_omp_atomic): Handle
      	parsing OpenMP 3.1 atomics.  Adjust finish_omp_atomic caller.
      	(cp_parser_omp_clause_name): Handle final and mergeable clauses.
      	(cp_parser_omp_clause_final, cp_parser_omp_clause_mergeable): New
      	functions.
      	(cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
      	and PRAGMA_OMP_CLAUSE_MERGEABLE.
      	(OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
      	(cp_parser_omp_taskyield): New function.
      	(cp_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
      	(cp_parser_omp_clause_reduction): Handle min and max.
      	* pt.c (tsubst_expr) <case OMP_ATOMIC>: Handle OpenMP 3.1 atomics.
      	(tsubst_omp_clauses): Handle OMP_CLAUSE_FINAL and
      	OMP_CLAUSE_MERGEABLE.
      	* semantics.c (finish_omp_atomic): Add OPCODE, V, LHS1 and RHS1
      	arguments.  Handle OpenMP 3.1 atomics.  Adjust c_finish_omp_atomic
      	caller.
      	(finish_omp_clauses): Don't complain about const qualified
      	predetermined vars and static data members in firstprivate clause.
      	Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. Handle MIN_EXPR
      	and MAX_EXPR.
      	(finish_omp_taskyield): New function.
      	* cp-gimplify.c (cxx_omp_const_qual_no_mutable): New function.
      	(cxx_omp_predetermined_sharing): Use it.
      gcc/fortran/
      	PR fortran/46752
      	* cpp.c (cpp_define_builtins): Change _OPENMP to 201107.
      	* openmp.c (gfc_free_omp_clauses): Free also final_expr.
      	(OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE): Define.
      	(gfc_match_omp_clauses): Handle parsing final and mergeable
      	clauses.
      	(OMP_TASK_CLAUSES): Allow final and mergeable clauses.
      	(gfc_match_omp_taskyield): New function.
      	(resolve_omp_clauses): Resolve final clause.  Allow POINTERs and
      	Cray pointers in clauses other than REDUCTION.
      	(gfc_match_omp_atomic): Match optional
      	read/write/update/capture keywords after !$omp atomic.
      	(resolve_omp_atomic): Handle all OpenMP 3.1 atomic forms.
      	* dump-parse-tree.c (show_omp_node): Handle EXEC_OMP_TASKYIELD,
      	print final and mergeable clauses.
      	(show_code_node): Handle EXEC_OMP_TASKYIELD.
      	* trans-openmp.c (gfc_trans_omp_clauses): Handle final and
      	mergeable clauses.
      	(gfc_trans_omp_taskyield): New function.
      	(gfc_trans_omp_directive): Handle EXEC_OMP_TASKYIELD.
      	(gfc_trans_omp_atomic): Handle all OpenMP 3.1 atomic forms.
      	(gfc_omp_clause_copy_ctor): Handle non-allocated allocatable.
      	(gfc_omp_predetermined_sharing): Adjust comment.
      	* gfortran.h (gfc_statement): Add ST_OMP_TASKYIELD and
      	ST_OMP_END_ATOMIC.
      	(gfc_omp_clauses): Add final_expr and mergeable fields.
      	(gfc_exec_op): Add EXEC_OMP_TASKYIELD.
      	(gfc_omp_atomic_op): New enum typedef.
      	(struct gfc_code): Add ext.omp_atomic.
      	* trans.c (trans_code): Handle EXEC_OMP_TASKYIELD.
      	* frontend-passes.c (gfc_code_walker): Also walk final_expr.
      	* resolve.c (gfc_resolve_blocks, resolve_code): Handle
      	EXEC_OMP_TASKYIELD.
      	* st.c (gfc_free_statement): Likewise.
      	* match.h (gfc_match_omp_taskyield): New prototype.
      	* parse.c (decode_omp_directive): Handle taskyield directive.
      	Handle !$omp end atomic.
      	(case_executable): Add ST_OMP_TASKYIELD case.
      	(gfc_ascii_statement): Handle ST_OMP_TASKYIELD.
      	(parse_omp_atomic): Return gfc_statement instead of void.
      	For !$omp atomic capture parse two assignments instead of
      	just one and require !$omp end atomic afterwards, for
      	other !$omp atomic forms just allow !$omp end atomic at the
      	end.
      	(parse_omp_structured_block, parse_executable): Adjust
      	parse_omp_atomic callers.
      
      2011-08-02  Tobias Burnus  <burnus@net-b.de>
      
      	* intrinsic.c (OMP_LIB): Updated openmp_version's
      	value to 201107.
      	* gfortran.texi (OpenMP): Update ref to OpenMP 3.1.
      	* intrinsic.texi (OpenMP Modules): Update ref to OpenMP 3.1;
      	remove deleted omp_integer_kind and omp_logical_kind constants.
      gcc/testsuite/
      	PR fortran/46752
      	* gcc.dg/gomp/atomic-5.c: Adjust expected diagnostics.
      	* gcc.dg/gomp/atomic-15.c: New test.
      	* g++.dg/gomp/atomic-5.C: Adjust expected diagnostics.
      	* g++.dg/gomp/atomic-15.C: New test.
      	* g++.dg/gomp/private-1.C: New test.
      	* g++.dg/gomp/sharing-2.C: New test.
      	* gfortran.dg/gomp/crayptr1.f90: Don't expect error
      	about Cray pointer in FIRSTPRIVATE/LASTPRIVATE.
      	* gfortran.dg/gomp/omp_atomic2.f90: New test.
      libgomp/
      	PR fortran/42041
      	PR fortran/46752
      	* omp.h.in (omp_in_final): New prototype.
      	* omp_lib.f90.in (omp_in_final): New interface.
      	(omp_integer_kind, omp_logical_kind): Remove
      	and replace all its uses in the module with 4.
      	(openmp_version): Change to 201107.
      	* omp_lib.h.in (omp_sched_static, omp_sched_dynamic,
      	omp_sched_guided, omp_sched_auto): Use omp_sched_kind
      	kind for the parameters.
      	(omp_in_final): New external.
      	(openmp_version): Change to 201107.
      	* task.c (omp_in_final): New function.
      	(gomp_init_task): Initialize final_task.
      	(GOMP_task): Remove unused attribute from flags.  Handle final
      	tasks.
      	(GOMP_taskyield): New function.
      	(omp_in_final): Return true if if (false) or final (true) task
      	or descendant of final (true).
      	* fortran.c (omp_in_final_): New function.
      	* libgomp.map (OMP_3.1): Export omp_in_final and omp_in_final_.
      	(GOMP_3.0): Export GOMP_taskyield.
      	* env.c (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New
      	variables.
      	(parse_unsigned_long_list): New function.
      	(initialize_env): Use it for OMP_NUM_THREADS.  Call parse_boolean
      	with "OMP_PROC_BIND".  If OMP_PROC_BIND=true, call gomp_init_affinity
      	even if parse_affinity returned false.
      	* config/linux/affinity.c (gomp_init_affinity): Handle
      	gomp_cpu_affinity_len == 0.
      	* libgomp_g.h (GOMP_taskyield): New prototype.
      	* libgomp.h (struct gomp_task): Add final_task field.
      	(gomp_nthreads_var_list, gomp_nthreads_var_list_len): New externs.
      	* team.c (gomp_team_start): Override new task's nthreads_var icv
      	if list form OMP_NUM_THREADS has been used and it has value for
      	the new nesting level.
      
      	* testsuite/libgomp.c/atomic-11.c: New test.
      	* testsuite/libgomp.c/atomic-12.c: New test.
      	* testsuite/libgomp.c/atomic-13.c: New test.
      	* testsuite/libgomp.c/atomic-14.c: New test.
      	* testsuite/libgomp.c/reduction-6.c: New test.
      	* testsuite/libgomp.c/task-5.c: New test.
      	* testsuite/libgomp.c++/atomic-2.C: New test.
      	* testsuite/libgomp.c++/atomic-3.C: New test.
      	* testsuite/libgomp.c++/atomic-4.C: New test.
      	* testsuite/libgomp.c++/atomic-5.C: New test.
      	* testsuite/libgomp.c++/atomic-6.C: New test.
      	* testsuite/libgomp.c++/atomic-7.C: New test.
      	* testsuite/libgomp.c++/atomic-8.C: New test.
      	* testsuite/libgomp.c++/atomic-9.C: New test.
      	* testsuite/libgomp.c++/task-8.C: New test.
      	* testsuite/libgomp.c++/reduction-4.C: New test.
      	* testsuite/libgomp.fortran/allocatable7.f90: New test.
      	* testsuite/libgomp.fortran/allocatable8.f90: New test.
      	* testsuite/libgomp.fortran/crayptr3.f90: New test.
      	* testsuite/libgomp.fortran/omp_atomic3.f90: New test.
      	* testsuite/libgomp.fortran/omp_atomic4.f90: New test.
      	* testsuite/libgomp.fortran/pointer1.f90: New test.
      	* testsuite/libgomp.fortran/pointer2.f90: New test.
      	* testsuite/libgomp.fortran/task4.f90: New test.
      
      2011-08-02  Tobias Burnus  <burnus@net-b.de>
      
      	* libgomp.texi: Update OpenMP spec references to 3.1.
      	(omp_in_final,OMP_PROC_BIND): New sections.
      	(OMP_NUM_THREADS): Document that the value can be now a list.
      	(GOMP_STACKSIZE,GOMP_CPU_AFFINITY): Update @ref.
      
      From-SVN: r177194
      Jakub Jelinek committed
    • New file. · 113430e5
      From-SVN: r177193
      Arnaud Charlet committed
    • Minor reformatting. · c2d601b8
      From-SVN: r177192
      Arnaud Charlet committed
    • Update dependencies · 9beddc4c
      From-SVN: r177191
      Arnaud Charlet committed
    • [multiple changes] · 0580d807
      2011-08-02  Robert Dewar  <dewar@adacore.com>
      
      	* a-direct.adb, sinfo.ads, exp_ch9.adb, scng.adb, sem_util.adb,
      	sem_util.ads, restrict.ads, par-prag.adb: Minor reformatting and/or
      	code reorganization.
      
      2011-08-02  Robert Dewar  <dewar@adacore.com>
      
      	* debug.adb: Debug flag d.P to suppress length comparison optimization
      	* exp_ch4.adb (Optimize_Length_Comparison): New routine to optimize
      	comparison of Length by comparing First/Last instead.
      
      2011-08-02  Matthew Heaney  <heaney@adacore.com>
      
      	* a-cobove.ads: Code clean up.
      
      From-SVN: r177190
      Arnaud Charlet committed
    • [multiple changes] · b191a125
      2011-08-02  Vincent Celier  <celier@adacore.com>
      
      	* adaint.c (file_names_case_sensitive_cache): New static int.
      	(__gnat_get_file_names_case_sensitive): Cache the return value in
      	file_names_case_sensitive_cache at the first invocation, to avoid
      	multiple calls to getenv.
      
      2011-08-02  Bob Duff  <duff@adacore.com>
      
      	* sem_ch12.adb (Validate_Derived_Type_Instance): Implement AI05-0218-1.
      
      From-SVN: r177189
      Arnaud Charlet committed
    • [multiple changes] · 316a0661
      2011-08-02  Yannick Moy  <moy@adacore.com>
      
      	* sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_prag.adb, sem.ads,
      	sem_util.adb, sem_util.ads, sem_res.adb, sem_ch2.adb, sem_ch4.adb,
      	sem_ch6.adb, sem_ch11.adb: Add semantic flag In_Pre_Post_Expression to
      	indicate that we are in a precondition or postcondition. This is used in
      	Mark_Non_ALFA_Subprogram (renaming of Mark_Non_ALFA_Subprogram_Body) to
      	decide whether to flag the spec or body of the current subprogram as
      	not in ALFA.
      
      2011-08-02  Fabien Chouteau  <chouteau@adacore.com>
      
      	* impunit.adb: Add Ada.Execution_Time.Interrupts in the Ada2012 package
      	list.
      	* a-extiin.ads: New file.
      
      2011-08-02  Bob Duff  <duff@adacore.com>
      
      	* a-direct.adb (Rename): Implement AI05-0231-1. In particular, Rename
      	now raises Name_Error instead of Use_Error in certain cases. The other
      	parts of this AI were already implemented properly.
      
      From-SVN: r177187
      Arnaud Charlet committed
    • * call.c (build_call_a): Also check at_function_scope_p. · 1e88210d
      From-SVN: r177185
      Jason Merrill committed
    • trim_optimize_5.f90: Remove spurious "use foo". · 3c3a5160
      2011-08-02  Tobias Burnus  <burnus@net-b.de>
      
              * trim_optimize_5.f90: Remove spurious "use foo".
              * actual_array_vect_1.f90: Fix or add dg-final cleanup-module
              * alloc_comp_assign_7.f90: Ditto.
              * allocatable_function_5.f90: Ditto.
              * allocate_stat.f90: Ditto.
              * array_constructor_20.f90: Ditto.
              * array_constructor_21.f90: Ditto.
              * array_constructor_22.f90: Ditto.
              * array_constructor_26.f03: Ditto.
              * array_function_4.f90: Ditto.
              * assumed_charlen_function_1.f90: Ditto.
              * assumed_size_dt_dummy.f90: Ditto.
              * bind_c_usage_15.f90: Ditto.
              * bind_c_usage_16.f03: Ditto.
              * bind_c_usage_3.f03: Ditto.
              * binding_label_tests_7.f03: Ditto.
              * class_15.f03: Ditto.
              * class_27.f03: Ditto.
              * class_33.f90: Ditto.
              * class_37.f03: Ditto.
              * class_40.f03: Ditto.
              * class_42.f03: Ditto.
              * class_defined_operator_1.f03: Ditto.
              * coarray/registering_1.f90: Ditto.
              * convert_1.f90: Ditto.
              * default_initialization_3.f90: Ditto.
              * dependency_25.f90: Ditto.
              * dependency_26.f90: Ditto.
              * dependency_36.f90: Ditto.
              * dependency_37.f90: Ditto.
              * derived_array_intrinisics_1.f90: Ditto.
              * dynamic_dispatch_10.f03: Ditto.
              * elemental_non_intrinsic_dummy_1.f90 |: Ditto.
              * elemental_pointer_1.f90: Ditto.
              * elemental_result_1.f90: Ditto.
              * empty_derived_type.f90: Ditto.
              * entry_7.f90: Ditto.
              * entry_dummy_ref_2.f90: Ditto.
              * equiv_constraint_3.f90: Ditto.
              * error_recovery_3.f90: Ditto.
              * extends_4.f03: Ditto.
              * func_assign.f90: Ditto.
              * func_assign_3.f90: Ditto.
              * generic_1.f90: Ditto.
              * generic_18.f90: Ditto.
              * generic_22.f03: Ditto.
              * generic_4.f90: Ditto.
              * generic_6.f90: Ditto.
              * generic_actual_arg.f90: Ditto.
              * graphite/id-21.f: Ditto.
              * graphite/pr45758.f90: Ditto.
              * host_assoc_call_2.f90: Ditto.
              * host_assoc_call_3.f90: Ditto.
              * host_assoc_call_4.f90: Ditto.
              * host_assoc_function_4.f90: Ditto.
              * host_used_types_1.f90: Ditto.
              * implicit_1.f90: Ditto.
              * implicit_11.f90: Ditto.
              * implicit_derived_type_1.f90: Ditto.
              * impure_actual_1.f90: Ditto.
              * impure_assignment_1.f90: Ditto.
              * impure_constructor_1.f90: Ditto.
              * initialization_10.f90: Ditto.
              * initialization_12.f90: Ditto.
              * interface_14.f90: Ditto.
              * interface_15.f90: Ditto.
              * interface_2.f90: Ditto.
              * interface_25.f90: Ditto.
              * interface_26.f90: Ditto.
              * interface_29.f90: Ditto.
              * interface_assignment_1.f90: Ditto.
              * internal_pack_6.f90: Ditto.
              * internal_pack_7.f90: Ditto.
              * internal_pack_8.f90: Ditto.
              * lto/pr45586_0.f90: Ditto.
              * lto/pr47839_0.f90: Ditto.
              * module_commons_3.f90: Ditto.
              * module_equivalence_4.f90: Ditto.
              * module_equivalence_6.f90: Ditto.
              * module_function_type_1.f90: Ditto.
              * module_naming_1.f90: Ditto.
              * namelist_4.f90: Ditto.
              * operator_c1202.f90: Ditto.
              * parens_7.f90: Ditto.
              * pr32921.f: Ditto.
              * pr33646.f90: Ditto.
              * pr41928.f90: Ditto.
              * pr42119.f90: Ditto.
              * pr43984.f90: Ditto.
              * present_1.f90: Ditto.
              * private_type_2.f90: Ditto.
              * proc_decl_2.f90: Ditto.
              * proc_ptr_10.f90: Ditto.
              * proc_ptr_22.f90: Ditto.
              * proc_ptr_8.f90: Ditto.
              * proc_ptr_comp_12.f90: Ditto.
              * proc_ptr_comp_pass_6.f90: Ditto.
              * pure_formal_proc_2.f90: Ditto.
              * realloc_on_assign_4.f03: Ditto.
              * substring_equivalence.f90: Ditto.
              * transfer_assumed_size_1.f90: Ditto.
              * transpose_optimization_1.f90: Ditto.
              * trim_optimize_6.f90: Ditto.
              * typebound_call_12.f03: Ditto.
              * typebound_operator_5.f03: Ditto.
              * typebound_operator_6.f03: Ditto.
              * typebound_proc_18.f03: Ditto.
              * unreferenced_use_assoc_1.f90: Ditto.
              * use_1.f90: Ditto.
              * use_10.f90: Ditto.
              * use_11.f90: Ditto.
              * use_14.f90: Ditto.
              * use_only_2.f90: Ditto.
              * use_rename_4.f90: Ditto.
              * use_rename_5.f90: Ditto.
              * used_dummy_types_3.f90: Ditto.
              * used_interface_ref.f90: Ditto.
              * used_types_11.f90: Ditto.
              * used_types_3.f90: Ditto.
              * used_types_4.f90: Ditto.
              * userdef_operator_2.f90: Ditto.
              * vect/fast-math-vect-8.f90: Ditto.
              * vect/pr46213.f90: Ditto.
              * whole_file_21.f90: Ditto.
              * whole_file_22.f90: Ditto.
              * coarray_lib_token_1.f90: Ditto. Add space before "}".
              * coarray_lib_token_2.f90: Ditto.
      
      From-SVN: r177184
      Tobias Burnus committed
    • [multiple changes] · f9adb9d4
      2011-08-02  Vincent Celier  <celier@adacore.com>
      
      	* link.c: Only import "auto-host.h" when building the gnattools.
      
      2011-08-02  Yannick Moy  <moy@adacore.com>
      
      	* sem_util.adb: Inter-unit inlining does not work for a subprogram
      	which calls a local subprogram, so extract subprogram
      	from Mark_Non_ALFA_Subprogram_Body.
      
      2011-08-02  Javier Miranda  <miranda@adacore.com>
      
      	* exp_ch9.adb
      	(Extract_Dispatching_Call): If the type of the dispatching object is an
      	access type then return an explicit dereference in the Object out-mode
      	parameter.
      
      2011-08-02  Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_ch3.adb (Analyze_Subtype_Declaration): Generate range
      	compatibility checks for all indexes of an array subtype, not just the
      	first. Reset Has_Dynamic_Range_Check on the subtype before each
      	potential check to ensure that Insert_Range_Checks will not elide any
      	of the dynamic checks.
      
      2011-08-02  Yannick Moy  <moy@adacore.com>
      
      	* par-prag.ad (Process_Restrictions_Or_Restriction_Warnings): recognize
      	SPARK restriction at parsing time.
      	* scng.adb (Scan): Generate a token Tok_SPARK_Hide for a SPARK HIDE
      	directive only if the SPARK restriction is set for this unit.
      
      From-SVN: r177183
      Arnaud Charlet committed
    • sem_ch3.adb, [...]: Protect call to Current_Subprogram which might be costly when repeated. · 83f33150
      2011-08-02  Yannick Moy  <moy@adacore.com>
      
      	* sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb, sem_util.ads,
      	sem_res.adb, sem_ch2.adb, sem_ch4.adb, sem_ch6.adb,
      	sem_ch11.adb: Protect call to Current_Subprogram which might be costly
      	when repeated. Rename Current_Subprogram_Is_Not_In_ALFA into
      	Mark_Non_ALFA_Subprogram_Body.
      	Split body of Mark_Non_ALFA_Subprogram_Body to get body small and
      	inlined.
      
      From-SVN: r177182
      Yannick Moy committed
    • sem_res.adb: Protect calls to Matching_Static_Array_Bounds which might be costly. · 7b98672f
      2011-08-02  Yannick Moy  <moy@adacore.com>
      
      	* sem_res.adb: Protect calls to Matching_Static_Array_Bounds which
      	might be costly.
      
      From-SVN: r177181
      Yannick Moy committed
    • [multiple changes] · 052e0603
      2011-08-02  Robert Dewar  <dewar@adacore.com>
      
      	* exp_ch9.adb, exp_sel.adb, restrict.ads, exp_disp.adb, erroutc.ads,
      	exp_ch3.adb: Minor reformatting.
      
      2011-08-02  Emmanuel Briot  <briot@adacore.com>
      
      	* adaint.c (__gnat_locate_exec_on_path): only returns executable
      	files, not any regular file.
      	(__gnat_locate_file_with_predicate): new subprogram.
      
      2011-08-02  Yannick Moy  <moy@adacore.com>
      
      	* sinfo.adb, sinfo.ads: Restrict the use of flags
      	Has_Dynamic_Length_Check and Has_Dynamic_Range_Check to expression
      	nodes, plus N_Subtype_Declaration for the 2nd one.
      
      From-SVN: r177180
      Arnaud Charlet committed
    • [multiple changes] · 4fbad0ba
      2011-08-02  Sergey Rybin  <rybin@adacore.com>
      
      	* gnat_rm.texi: Ramification of pragma Eliminate documentation
      	 - fix bugs in the description of Source_Trace;
      	 - get rid of UNIT_NAME;
      
      2011-08-02  Javier Miranda  <miranda@adacore.com>
      
      	* exp_ch9.adb
      	(Build_Dispatching_Requeue): Adding support for VM targets
      	since we cannot directly reference the Tag entity.
      	* exp_sel.adb (Build_K): Adding support for VM targets.
      	(Build_S_Assignment): Adding support for VM targets.
      	* exp_disp.adb
      	(Default_Prim_Op_Position): In VM targets do not restrict availability
      	of predefined interface primitives to compiling in Ada 2005 mode.
      	(Is_Predefined_Interface_Primitive): In VM targets this service is not
      	restricted to compiling in Ada 2005 mode.
      	(Make_VM_TSD): Generate code that declares and initializes the OSD
      	record. Needed to support dispatching calls through synchronized
      	interfaces.
      	* exp_ch3.adb
      	(Make_Predefined_Primitive_Specs): Enable generation of predefined
      	primitives associated with synchronized interfaces.
      	(Make_Predefined_Primitive_Bodies): Enable generation of predefined
      	primitives associated with synchronized interfaces.
      
      2011-08-02  Yannick Moy  <moy@adacore.com>
      
      	* par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence of
      	statements hidden in SPARK if preceded by the HIDE directive
      	(Parse_Exception_Handlers): mark each exception handler in a sequence of
      	exception handlers as hidden in SPARK if preceded by the HIDE directive
      	* par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARK
      	if starting with the HIDE directive
      	* par-ch7.adb (P_Package): mark a package body hidden in SPARK if
      	starting with the HIDE directive; mark the declarations in a private
      	part as hidden in SPARK if the private part starts with the HIDE
      	directive
      	* restrict.adb, restrict.ads
      	(Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK
      	(Is_In_Hidden_Part_In_SPARK): new function which returns whether its
      	argument node belongs to a part which is hidden in SPARK
      	(Check_SPARK_Restriction): do not issue violations on nodes in hidden
      	parts in SPARK; protect the possibly costly call to
      	Is_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on
      	* scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration
      	* scng.adb (Accumulate_Token_Checksum_GNAT_6_3,
      	Accumulate_Token_Checksum_GNAT_5_03): add case for new token
      	Tok_SPARK_Hide.
      	(Scan): recognize special comment starting with '#' and followed by
      	SPARK keyword "hide" as a HIDE directive.
      
      2011-08-02  Yannick Moy  <moy@adacore.com>
      
      	* types.ads, erroutc.ads: Minor reformatting.
      
      2011-08-02  Vincent Celier  <celier@adacore.com>
      
      	* link.c: Add response file support for cross platforms.
      
      From-SVN: r177179
      Arnaud Charlet committed
    • sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression in an association... · 6ff6152d
      2011-08-02  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression
      	in an association, set parent field of copy before partial analysis.
      	* sem_res.adb (Resolve_Slice): create reference to itype only when
      	expansion is enabled.
      
      From-SVN: r177178
      Ed Schonberg committed
    • einfo.adb, einfo.ads (Body_Is_In_ALFA, [...]): get/set for new flag denoting… · 975c6896
      einfo.adb, einfo.ads (Body_Is_In_ALFA, [...]): get/set for new flag denoting which subprogram bodies are in ALFA
      
      2011-08-02  Yannick Moy  <moy@adacore.com>
      
      	* einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set
      	for new flag denoting which subprogram bodies are in ALFA
      	* restrict.adb, sem_ch7.adb: Update comment
      	* sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
      	sem_ch9.adb, sem_res.adb: Add calls to
      	Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs.
      	* sem_ch6.adb (Analyze_Function_Return): add calls to
      	Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the
      	middle of the body, and extended return.
      	(Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument
      	False when missing return.
      	(Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA
      	to True for subprograms whose spec is in ALFA. Remove later on the flag
      	on the entity used for a subprogram body when there exists a separate
      	declaration.
      	* sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA):
      	if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to
      	False, otherwise do nothing.
      
      From-SVN: r177177
      Yannick Moy committed
    • [multiple changes] · afc8324d
      2011-08-02  Robert Dewar  <dewar@adacore.com>
      
      	* inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
      
      2011-08-02  Yannick Moy  <moy@adacore.com>
      
      	* sem_ch4.ads: minor formatting.
      
      From-SVN: r177176
      Arnaud Charlet committed
    • sem_aggr.adb, [...]: cleanup of SPARK mode · 2ba431e5
      2011-08-02  Yannick Moy  <moy@adacore.com>
      
      	* sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb,
      	debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb,
      	errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb,
      	restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb,
      	opt.ads: cleanup of SPARK mode
      
      From-SVN: r177175
      Yannick Moy committed
    • cstand.adb (Create_Standard): sets Is_In_ALFA component of standard types. · 0f853035
      2011-08-02  Yannick Moy  <moy@adacore.com>
      
      	* cstand.adb (Create_Standard): sets Is_In_ALFA component of standard
      	types.
      	* einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities
      	(Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA
      	* sem_ch3.adb
      	(Analyze_Object_Declaration): set Is_In_ALFA flag for objects
      	(Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes
      	(Constrain_Integer): set Is_In_ALFA flag for integer subtypes
      	(Enumeration_Type_Declaration): set Is_In_ALFA flag for enumeration
      	types.
      	(Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes with
      	non-static range.
      	* sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag for
      	functions whose return type is not in ALFA.
      	(Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogram
      	specifications.
      	(Process_Formals): unset Is_In_ALFA flag for subprograms if a
      	parameter's type is not in ALFA.
      	* stand.ads (Standard_Type_Is_In_ALFA): array defines which standard
      	types are in ALFA.
      
      From-SVN: r177174
      Yannick Moy committed
    • sem_ch6 (Analyze_Expression_Function): treat the function as Inline_Always... · d2b10647
      2011-08-02  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch6 (Analyze_Expression_Function): treat the function as
      	Inline_Always, and introduce a subprogram declaration for it when it is
      	not a completion.
      	* inline.adb (Add_Inlined_Body): recognize bodies that come from
      	expression functions, so that the back-end can determine whether they
      	can in fact be inlined.
      	* sem_util.adb (Is_Expression_Function): predicate to determine whether
      	a function body comes from an expression function.
      
      From-SVN: r177173
      Ed Schonberg committed
    • [multiple changes] · c7b9d548
      2011-08-02  Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_ch6.adb (Check_Conformance): Revise the check for nonconforming
      	null exclusions to test Can_Never_Be_Null on the anonymous access types
      	of the formals rather than testing the formals themselves. Exclude this
      	check in cases where the Old_Formal is marked as a controlling formal,
      	to avoid issuing spurious errors for bodies completing dispatching
      	operations (due to the flag not getting set on controlling access
      	formals in body specs).
      	(Find_Corresponding_Spec): When checking full and subtype conformance of
      	subprogram bodies in instances, pass Designated and E in that order, for
      	consistency with the expected order of the formals (New_Id followed by
      	Old_Id).
      
      2011-08-02  Robert Dewar  <dewar@adacore.com>
      
      	* sem_ch8.adb: Minor reformatting.
      
      From-SVN: r177172
      Arnaud Charlet committed
    • [multiple changes] · 1138cf59
      2011-08-02  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch8.adb (Analyze_Subprogram_Renaming): new procedure
      	Check_Class_Wide_Actual, to implement AI05-0071, on defaulted
      	primitive operations of class-wide actuals.
      
      2011-08-02  Javier Miranda  <miranda@adacore.com>
      
      	* exp_atag.ads, exp_atag.adb
      	(Build_Common_Dispatching_Select_Statements): Remove argument Loc
      	since its value is implicitly passed in argument Typ.
      	* exp_disp.adb (Make_Disp_Conditional_Select_Body,
      	Make_Disp_Timed_Select_Body): Remove Loc in calls to routine
      	Build_Common_Dispatching_Select_Statements.
      
      From-SVN: r177171
      Arnaud Charlet committed
    • gimple.c (canonicalize_cond_expr_cond): Handle cast from boolean-type. · 9b80d091
      	* gimple.c (canonicalize_cond_expr_cond): Handle cast from
      	boolean-type.
      	(ssa_forward_propagate_and_combine): Interprete result of
      	forward_propagate_comparison.
      	* gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
      	boolean-typed operands for comparisons.
      
      	* gcc.dg/tree-ssa/forwprop-15.c: New testcase.
      
      From-SVN: r177170
      Kai Tietz committed
    • sem_ch3.adb, [...]: Update comments. · 7b9db926
      2011-08-02  Robert Dewar  <dewar@adacore.com>
      
      	* sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads,
      	exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments.
      	Minor reformatting.
      
      From-SVN: r177169
      Robert Dewar committed
    • [multiple changes] · e8374e7a
      2011-08-02  Robert Dewar  <dewar@adacore.com>
      
      	* sem_res.adb: Minor reformatting.
      	* sem_prag.adb: Minor reformatting.
      
      2011-08-02  Javier Miranda  <miranda@adacore.com>
      
      	* exp_atag.adb, exp_atags.ads
      	(Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptr
      	by the tagged type Entity. Required to use this routine in the VM
      	targets since we do not have available the Tag entity in the VM
      	platforms.
      	* exp_ch6.adb
      	(Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if package
      	Ada.Tags has not been previously loaded.
      	* exp_ch7.adb
      	(Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invoke
      	Build_VM_TSDs if package Ada.Tags has not been previously loaded.
      	* sem_aux.adb
      	(Enclosing_Dynamic_Scope): Add missing support to handle the full
      	view of enclosing scopes. Required to handle enclosing scopes that
      	are synchronized types whose full view is a task type.
      	* exp_disp.adb
      	(Build_VM_TSDs): Minor code improvement to avoid generating and
      	analyzing lists with empty nodes.
      	(Make_Disp_Asynchronous_Select_Body): Add support for VM targets.
      	(Make_Disp_Conditional_Select_Body): Add support for VM targets.
      	(Make_Disp_Get_Prim_Op_Kind): Add support for VM targets.
      	(Make_Disp_Timed_Select_Body): Add support for VM targets.
      	(Make_Select_Specific_Data_Table): Add support for VM targets.
      	(Make_VM_TSD): Generate code to initialize the SSD structure of
      	the TSD.
      
      2011-08-02  Yannick Moy  <moy@adacore.com>
      
      	* lib-writ.adb (Write_ALI): when ALFA mode is set, write local
      	cross-references section in ALI.
      	* lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub
      	(enclosing subprogram), Slc (location of Sub) and Sun (unit number of
      	Sub).
      	(Enclosing_Subprogram_Or_Package): new function to return the enclosing
      	subprogram or package entity of a node
      	(Is_Local_Reference_Type): new function returns True for references
      	selected in local cross-references.
      	(Lt): function extracted from Lt in Output_References
      	(Write_Entity_Name): function extracted from Output_References
      	(Generate_Definition): generate reference with type 'D' for definition
      	of objects (object declaration and parameter specification), with
      	appropriate locations and units, for use in local cross-references.
      	(Generate_Reference): update fields Sub, Slc and Sun. Keep newly created
      	references of type 'I' for initialization in object definition.
      	(Output_References): move part of function Lt and procedure
      	Write_Entity_Name outside of the body. Ignore references of types 'D'
      	and 'I' introduced for local cross-references.
      	(Output_Local_References): new procedure to output the local
      	cross-references sections.
      	(Lref_Entity_Status): new array defining whether an entity is a local
      	* sem_ch3.adb (Analyze_Object_Declaration): call Generate_Reference
      	with 'I' type when initialization expression is present.
      	* get_scos.adb, get_scos.ads: Correct comments and typos
      
      From-SVN: r177168
      Arnaud Charlet committed
    • [multiple changes] · 1f6439e3
      2011-08-02  Javier Miranda  <miranda@adacore.com>
      
      	* exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs in
      	the JVM target.
      	* exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs in
      	the JVM target.
      	* exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has no
      	TSD support.
      
      2011-08-02  Vincent Celier  <celier@adacore.com>
      
      	* prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line
      	(No_Space_Img): New function
      	(Find_Excluded_Sources): When reading from a file, record the file name
      	and the line number for each excluded source.
      	(Mark_Excluded_Sources): When reporting an error, if the excluded
      	sources were read from a file, include file name and line number in
      	the error message.
      
      2011-08-02  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2).
      
      From-SVN: r177167
      Arnaud Charlet committed
    • Check __x86_64__ instead of __LP64__ for x86 futex. · c01ecafc
      2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* config/linux/x86/futex.h: Check __x86_64__ instead of
      	__LP64__.
      
      From-SVN: r177166
      H.J. Lu committed
    • exp_ch7.adb [...]: Minor reformatting · ab027d28
      2011-08-02  Robert Dewar  <dewar@adacore.com>
      
      	* exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting
      
      From-SVN: r177165
      Robert Dewar committed
    • exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the generation of… · b3b28b0c
      exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the generation of TSDs to the DOTNET compiler.
      
      2011-08-02  Javier Miranda  <miranda@adacore.com>
      
      	* exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the
      	generation of TSDs to the DOTNET compiler.
      	* exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict the
      	generation of TSDs to the DOTNET compiler.
      
      From-SVN: r177164
      Javier Miranda committed
    • exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data record of all… · 9732e886
      exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data record of all the tagged types declared...
      
      2011-08-02  Javier Miranda  <miranda@adacore.com>
      
      	* exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data
      	record of all the tagged types declared inside library level package
      	declarations, library level package bodies or library level subprograms.
      	* exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD
      	associated with a given tagged type.
      	(Build_VM_TSDs): New subprogram.
      	* exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main
      	compilation units that are subprograms.
      	* exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main
      	compilation units that are package bodies.
      	(Expand_N_Package_Declaration): Generate TSDs of the main compilation
      	units that are a package declaration or a package instantiation.
      	* exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code
      	reorganization to improve the error generated by the frontend when the
      	function Ada.Tags.Secondary_Tag is not available.
      	* rtsfind.ads (RE_Register_TSD): New runtime entity.
      	* exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup.
      
      From-SVN: r177163
      Javier Miranda committed
    • [multiple changes] · e526d0c7
      2011-08-02  Javier Miranda  <miranda@adacore.com>
      
      	* exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode.
      
      2011-08-02  Robert Dewar  <dewar@adacore.com>
      
      	* s-imenne.ads: Minor reformatting.
      
      2011-08-02  Robert Dewar  <dewar@adacore.com>
      
      	* a-stunau.ads: Add pragma Suppress_Initialization for Big_String
      	* freeze.adb (Warn_Overlay): Don't warn if initialization suppressed
      	* s-stalib.ads: Add pragma Suppress_Initialization for Big_String
      
      2011-08-02  Robert Dewar  <dewar@adacore.com>
      
      	* einfo.ads (Materialize_Entity): Document this is only for renamings
      	* exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate
      	required debug information in the case where we transform the object
      	declaration into a renaming declaration.
      	* exp_ch4.adb (Expand_Concatenate): Generate debug info for result
      	object
      	* exp_dbug.ads (Debug_Renaming_Declaration): Document setting of
      	Materialize_Entity.
      
      From-SVN: r177162
      Arnaud Charlet committed
    • einfo.ads, einfo.adb (Suppress_Initialization): Replaces Suppress_Init_Procs. · 5b1e6aca
      2011-08-02  Robert Dewar  <dewar@adacore.com>
      
      	* einfo.ads, einfo.adb (Suppress_Initialization): Replaces
      	Suppress_Init_Procs.
      	* exp_ch3.adb, exp_disp.adb, freeze.adb: Use
      	Suppress_Initialization/Initialization_Suppressed.
      	* gnat_rm.texi: New documentation for pragma Suppress_Initialization
      	* sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function
      	* sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed
      	* sem_prag.adb: New processing for pragma Suppress_Initialization.
      
      From-SVN: r177161
      Robert Dewar committed
    • gnat_rm.texi, [...]: Minor reformatting. · 5ad4969d
      2011-08-02  Robert Dewar  <dewar@adacore.com>
      
      	* gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb:
      	Minor reformatting.
      
      From-SVN: r177160
      Robert Dewar committed
    • [multiple changes] · 8c4ee6f5
      2011-08-02  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures can
      	only have inheritable classwide pre/postconditions.
      
      2011-08-02  Javier Miranda  <miranda@adacore.com>
      
      	* a-tags.ads, a-tags.adb (Check_TSD): New subprogram.
      	* rtsfind.ads (RE_Check_TSD): New runtime entity.
      	* exp_disp.adb (Make_DT): Generate call to the new runtime routine that
      	checks if the external tag of a type is the same as the external tag
      	of some other declaration.
      
      From-SVN: r177159
      Arnaud Charlet committed
    • [multiple changes] · 0b3d16c0
      2011-08-02  Thomas Quinot  <quinot@adacore.com>
      
      	* s-taskin.ads: Minor reformatting.
      
      2011-08-02  Emmanuel Briot  <briot@adacore.com>
      
      	* g-comlin.adb (Display_Help): swap the order in which it prints the
      	short help and the general usage.
      
      2011-08-02  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properly
      	the aspect declarations and attach them to the generic copy for
      	subsequent analysis.
      	(Analyze_Subprogram_Instantiation): copy explicitly the aspect
      	declarations of the generic tree to the new subprogram declarations.
      	* sem_attr.adb (Check_Precondition_Postcondition): recognize
      	conditions that apply to a subprogram instance.
      
      2011-08-02  Robert Dewar  <dewar@adacore.com>
      
      	* gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project].
      
      2011-08-02  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch3.adb (Derived_Type_Declaration): When checking that a untagged
      	private type with a tagged full view is not derived in the immediate
      	scope of the partial view, (RM 7.3 (7)) use the scope of the base type.
      
      From-SVN: r177157
      Arnaud Charlet committed
    • [multiple changes] · 4637729f
      2011-08-02  Robert Dewar  <dewar@adacore.com>
      
      	* exp_ch4.adb: Minor reformatting.
      
      2011-08-02  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch5.adb (Analyze_Loop_Statement):  If the iteration scheme is an
      	Ada2012 iterator, the loop will be rewritten during expansion into a
      	while loop with a cursor and an element declaration. Do not analyze the
      	body in this case, because if the container is for indefinite types the
      	actual subtype of the elements will only be determined when the cursor
      	declaration is analyzed.
      
      2011-08-02  Arnaud Charlet  <charlet@adacore.com>
      
      	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore
      	size/alignment related attributes in CodePeer_Mode.
      
      2011-08-02  Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call to
      	Prepend_Element, since this can result in the operation getting the
      	wrong slot in the full type's dispatch table if the full type has
      	inherited operations. The incomplete type's operation will get added
      	to the proper position in the full type's primitives
      	list later in Sem_Disp.Check_Operation_From_Incomplete_Type.
      	(Process_Incomplete_Dependents): Add Is_Primitive test when checking for
      	dispatching operations, since there are cases where nonprimitive
      	subprograms can get added to the list of incomplete dependents (such
      	as subprograms in nested packages).
      	* sem_ch6.adb (Process_Formals): First, remove test for being in a
      	private part when determining whether to add a primitive with a
      	parameter of a tagged incomplete type to the Private_Dependents list.
      	Such primitives can also occur in the visible part, and should not have
      	been excluded from being private dependents.
      	* sem_ch7.adb (Uninstall_Declarations): When checking the rule of
      	RM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependents
      	list of a Taft-amendment incomplete type is a primitive before issuing
      	an error that the full type must appear in the same unit. There are
      	cases where nonprimitives can be in the list (such as subprograms in
      	nested packages).
      	* sem_disp.adb (Derives_From): Use correct condition for checking that
      	a formal's type is derived from the type of the corresponding formal in
      	the parent subprogram (the condition was completely wrong). Add
      	checking that was missing for controlling result types being derived
      	from the result type of the parent operation.
      
      From-SVN: r177156
      Arnaud Charlet committed
    • errout.adb (First_Node): minor renaming · 4c60de0c
      2011-08-02  Yannick Moy  <moy@adacore.com>
      
      	* errout.adb (First_Node): minor renaming
      	* restrict.adb (Check_Formal_Restriction): put restriction warning on
      	first node.
      
      From-SVN: r177155
      Yannick Moy committed