- Aug 02, 2011
-
-
Jakub Jelinek authored
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
-
Arnaud Charlet authored
From-SVN: r177193
-
Arnaud Charlet authored
From-SVN: r177192
-
Arnaud Charlet authored
From-SVN: r177191
-
Arnaud Charlet authored
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 authored
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 authored
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
-
Jason Merrill authored
From-SVN: r177185
-
Tobias Burnus authored
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
-
Arnaud Charlet authored
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
-
Yannick Moy authored
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 authored
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
-
Arnaud Charlet authored
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 authored
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
-
Ed Schonberg authored
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
-
Yannick Moy authored
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
-
Arnaud Charlet authored
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
-
Yannick Moy authored
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 authored
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
-
Ed Schonberg authored
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
-
Arnaud Charlet authored
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 authored
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
-
Kai Tietz authored
* 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
-
Robert Dewar authored
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
-
Arnaud Charlet authored
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 authored
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
-
H.J. Lu authored
2011-08-02 H.J. Lu <hongjiu.lu@intel.com> * config/linux/x86/futex.h: Check __x86_64__ instead of __LP64__. From-SVN: r177166
-
Robert Dewar authored
2011-08-02 Robert Dewar <dewar@adacore.com> * exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting From-SVN: r177165
-
Javier Miranda authored
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 authored
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
-
Arnaud Charlet authored
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
-
Robert Dewar authored
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 authored
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
-
Arnaud Charlet authored
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 authored
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 authored
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
-
Yannick Moy authored
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
-
Arnaud Charlet authored
2011-08-02 Yannick Moy <moy@adacore.com> * sem_res.adb (Resolve_Logical_Op): ensure N is a binary operator before accessing operands. * sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes to decide whether an initialization expression respects SPARK rules, as the plain node is the expanded one. This allows for more valid warnings to be issued. * gnat_rm.texi: Minor update. 2011-08-02 Arnaud Charlet <charlet@adacore.com> * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revert previous change. 2011-08-02 Robert Dewar <dewar@adacore.com> * sem_ch3.adb, sem_ch4.adb: Minor reformatting. 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the original loop statements and the element renaming declaration with a block when the element type is controlled. 2011-08-02 Yannick Moy <moy@adacore.com> * sinfo.ads: Minor formatting. 2011-08-02 Ed Schonberg <schonberg@adacore.com> * sem_aggr.adb (Add_Association): if the association has a box and no expression, use the Sloc of the aggregate itself for the new association. * errout.adb (First_Node): Exclude nodes with no Sloc, and always use the Original_Node. From-SVN: r177153
-
Arnaud Charlet authored
2011-08-02 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring. When a container is provided via a function call, generate a renaming of the function result. This avoids the creation of a transient scope and the premature finalization of the container. * exp_ch7.adb (Is_Container_Cursor): Removed. (Wrap_Transient_Declaration): Remove the supression of the finalization of the list controller when the declaration denotes a container cursor, it is not needed. 2011-08-02 Yannick Moy <moy@adacore.com> * restrict.adb (Check_Formal_Restriction): only issue a warning if the node is from source, instead of the original node being from source. * sem_aggr.adb (Resolve_Array_Aggregate): refine the check for a static expression, to recognize also static ranges * sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration, Array_Type_Declaration): postpone the test for the type being a subtype mark after the type has been resolved, so that component-selection and expanded-name are discriminated. (Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schm to distinguish the case of an iteration scheme, so that an error is issed on a non-static range in SPARK except in an iteration scheme. * sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index with In_Iter_Schm = True. * sem_ch6.adb (Analyze_Subprogram_Specification): refine the check for user-defined operators so that they are allowed in renaming * sem_ch8.adb (Find_Selected_Component): refine the check for prefixing of operators so that they are allowed in renaming. Move the checks for restrictions on selector name after analysis discriminated between component-selection and expanded-name. * sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning on concatenation argument of string type if it is static. * sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): add a new function Is_Later_Declarative_Item to decice which declarations are allowed as later items, in the two different modes Ada 83 and SPARK. In the SPARK mode, add that renamings are considered as later items. (Enclosing_Package): new function to return the enclosing package (Enter_Name): correct the rule for homonyms in SPARK (Is_SPARK_Initialization_Expr): default to returning True on nodes not from source (result of expansion) to avoid issuing wrong warnings. 2011-08-02 Ed Schonberg <schonberg@adacore.com> * errout.adb: On anything but an expression First_Node returns its argument. From-SVN: r177152
-
Arnaud Charlet authored
2011-08-02 Pascal Obry <obry@adacore.com> * prj-proc.adb, make.adb, makeutl.adb: Minor reformatting. 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization. Set the associated loop as the related expression of internally generated cursors. * exp_ch7.adb (Is_Container_Cursor): New routine. (Wrap_Transient_Declaration): Supress the finalization of the list controller when the declaration denotes a container cursor. 2011-08-02 Yannick Moy <moy@adacore.com> * opt.ads (SPARK_Mode): update comment, SPARK_Mode only set through command line now. * par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that the expression is a simple expression. This check cannot be performed in the semantics, so just drop it. (P_Index_Or_Discriminant_Constraint): move check that the index or discriminant is a subtype mark to Analyze_Subtype_Declaration in the semantics. Other cases were previously checked in the semantics. * par-ch4.adb (P_Name): move checks that a selector name is not character literal or an operator symbol to Find_Selected_Component in the semantics * par-ch5.adb (Parse_Decls_Begin_End): move check that basic declarations are not placed after later declarations in a separate procedure in Sem_Util (possibly not the best choice?), to be used both during parsing, for Ada 83 mode, and during semantic analysis, for SPARK mode. * par-endh.adb (Check_End): move check that end label is not missing to Process_End_Label in the semantics * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): remove the special case for SPARK restriction * par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End * restrict.adb, restrict.ads (Check_Formal_Restriction): add a parameter Force to issue the error message even on internal node (used for generated end label). Call Check_Restriction to check when an error must be issued. In SPARK mode, issue an error message even if the restriction is not set. (Check_Restriction): new procedure with an additional out parameter to inform the caller that a message has been issued * sem_aggr.adb: Minor modification of message * sem_attr.adb (Analyze_Attribute): call Check_Formal_Restriction instead of issuing an error message directly * sem_ch3.adb (Analyze_Declarations): move here the check that basic declarations are not placed after later declarations, by calling Check_Later_Vs_Basic_Declarations (Analyze_Subtype_Declaration): move here the check that an index or discriminant constraint must be a subtype mark. Change the check that a subtype of String must start at one so that it works on subtype marks. * sem_ch4.adb (Analyze_Call): move here the check that a named association cannot follow a positional one in a call * sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restriction instead of issuing an error message directly * sem_ch8.adb (Find_Selected_Component): move here the check that a selector name is not a character literal or an operator symbol. Move here the check that the prefix of an expanded name cannot be a subprogram or a loop statement. * sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): new procedure called from parsing and semantics to check that basic declarations are not placed after later declarations (Process_End_Label): move here the check that end label is not missing 2011-08-02 Arnaud Charlet <charlet@adacore.com> * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enum representation clause in codepeer mode, since it confuses CodePeer and does not bring useful info. 2011-08-02 Ed Falis <falis@adacore.com> * init.c: initialize fp hw on MILS. 2011-08-02 Ed Schonberg <schonberg@adacore.com> * errout.adb (First_Node): for bodies, return the node itself (small optimization). For other nodes, do not check source_unit if the node comes from Standard. From-SVN: r177151
-