1. 02 Aug, 2011 40 commits
    • Fix my last changelog entry. · cde7b553
      From-SVN: r177217
      Richard Henderson committed
    • re PR c++/43886 ([C++0x] name lookup failure on un-used local variable in lambda… · a9a740ba
      re PR c++/43886 ([C++0x] name lookup failure on un-used local variable in lambda compound-statement)
      
      	PR c++/43886
      	* parser.c (cp_parser_lambda_body): Clear local_variables_forbidden_p.
      
      From-SVN: r177216
      Jason Merrill committed
    • re PR c++/49577 ([C++0x] narrowing conversion not rejected) · 54e7d7f5
      	PR c++/49577
      	* typeck2.c (check_narrowing): Check unsigned mismatch.
      	* semantics.c (finish_compound_literal): check_narrowing.
      
      From-SVN: r177215
      Jason Merrill committed
    • re PR c++/49593 ([C++0x] cannot use T{t}... as pack expansion) · 326a6455
      	PR c++/49593
      	* pt.c (find_parameter_packs_r): Handle CONSTRUCTOR.
      
      From-SVN: r177214
      Jason Merrill committed
    • re PR c++/49803 ([C++0x] erroneous variant-member initialization in a union… · adc651f3
      re PR c++/49803 ([C++0x] erroneous variant-member initialization in a union containing an anonymous struct)
      
      	PR c++/49803
      	* init.c (sort_mem_initializers): Initialize uses_unions_p here.
      	(build_field_list): Not here.
      
      From-SVN: r177213
      Jason Merrill committed
    • re PR bootstrap/49914 (call to abs(long long) in gcc/fold-const.c) · 9f813990
      2011-08-02  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR bootstrap/49914
      	* fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
      	of abs.
      	* tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
      	* tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
      
      From-SVN: r177212
      Paolo Carlini committed
    • re PR fortran/49885 (Segmentation fault when writing to an automatic character array) · f315a6b4
      2011-08-02  Daniel Kraft  <d@domob.eu>
      
      	PR fortran/49885
      	* trans-array.c (gfc_trans_auto_array_allocation): Change
      	gfc_start_block to gfc_init_block to avoid spurious extra-scope.
      
      2011-08-02  Daniel Kraft  <d@domob.eu>
      
      	PR fortran/49885
      	* gfortran.dg/auto_char_dummy_array_3.f90: New test.
      
      From-SVN: r177211
      Daniel Kraft committed
    • h8300: Generate correct unwind info around swap_into/out_of_er6. · 8f1594b2
      Minimal bug fix is to unset RTX_FRAME_RELATED_P on the PUSH
      insn generated in h8300_swap_into_er6.  But with a tiny bit
      of effort we can generate real unwind info around the sequence.
      
      From-SVN: r177209
      Richard Henderson committed
    • re PR middle-end/49947 (FAIL: gcc.dg/tree-ssa/forwprop-15.c) · 66f1dc79
      2011-08-02  Kai Tietz  <ktietz@redhat.com>
      
      	PR middle-end/49947
      	* gcc.dg/tree-ssa/forwprop-15.c
      
      From-SVN: r177205
      Kai Tietz committed
    • Fix a typo in host_detect_local_cpu. · 3ed2c643
      2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
      
      From-SVN: r177204
      H.J. Lu committed
    • re PR target/49878 ([h8300] ICE in based_loc_descr, at dwarf2out.c:10478) · f9b4f8c1
      PR target/49878
      h8300: Don't allow eliminable registers to be pushed.
      
      From-SVN: r177200
      Richard Henderson committed
    • 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