- 03 Aug, 2011 8 commits
-
-
2011-08-03 Gary Dismukes <dismukes@adacore.com> * sem_aggr.adb (Analyze_Array_Aggregate): When checking the discrete choices of a named array aggregate, bail out when any choices are marked as Errors_Posted. 2011-08-03 Ed Schonberg <schonberg@adacore.com> * exp_ch13.adb (Expand_N_Freeze_Entity): cleanup determination of scope in which entity is frozen, to handle properly loop variables in iterators. 2011-08-03 Ed Schonberg <schonberg@adacore.com> * sem_res.adb (Set_String_Literal_Subtype): if the lower bound of the subtype is not static, compute the upper bound using attributes, to handle properly index types that are not integer types. 2011-08-03 Bob Duff <duff@adacore.com> * gnat_rm.texi, gnat_ugn.texi: Fix some dangling URLs. Update copyright notice. 2011-08-03 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Build_Discriminant_Constraints): Only use Original_Discriminant if within an instance. * sem_ch4.adb (Analyze_Selected_Component): Ditto. 2011-08-03 Thomas Quinot <quinot@adacore.com> * einfo.ads: Minor reformatting. 2011-08-03 Ed Schonberg <schonberg@adacore.com> * exp_disp.adb (Check_Premature_Freezing): diagnose the presence of a composite type with an unfrozen subcomponent, in the profile of a primitive operation. From-SVN: r177236
Arnaud Charlet committed -
From-SVN: r177235
Revital Eres committed -
2011-08-03 Robert Dewar <dewar@adacore.com> * sem_util.ads, exp_aggr.adb, exp_ch3.adb: Minor reformatting. 2011-08-03 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Analyze_Object_Declaration): if a constant object of an unconstrained type with discriminants is initialized with an aggregate, use the constrained subtype of the aggregate as the type of the object, because it is immutable, and this allows the back-end to generate no code for the object declaration. From-SVN: r177234
Arnaud Charlet committed -
2011-08-03 Robert Dewar <dewar@adacore.com> * exp_ch4.adb (Optimize_Length_Check): Fix bad handling of case where comparison operand is variable, and turns out to be zero or negative. 2011-08-03 Javier Miranda <miranda@adacore.com> * exp_intr.adb (Expand_Dispatching_Constructor_Call): Disable expansion of code required for native targets. Done to avoid generating references to unavailable runtime entities in VM targets. * exp_ch3.adb (Expand_N_Object_Declaration): Add missing support to handle the explicit initialization of class-wide interface objects. Fix documentation. 2011-08-03 Matthew Heaney <heaney@adacore.com> * a-cobove.adb (Merge): Move source onto target, instead of using Assign 2011-08-03 Matthew Heaney <heaney@adacore.com> * a-cbdlli.adb (Splice): move source items from first to last 2011-08-03 Yannick Moy <moy@adacore.com> * sem_util.ads: comment added. 2011-08-03 Javier Miranda <miranda@adacore.com> * exp_aggr.adb (Expand_Record_Aggregate): In VM targets disable the expansion into assignments of aggregates whose type is not known at compile time. From-SVN: r177233
Arnaud Charlet committed -
exp_ch9.adb (Build_Renamed_Formal_Declaration): common procedure for protected entries and task entries... 2011-08-03 Ed Schonberg <schonberg@adacore.com> * exp_ch9.adb (Build_Renamed_Formal_Declaration): common procedure for protected entries and task entries, to build the proper renaming declaration for entry formals, used in debugging. * exp_ch2.adb (Expand_Entry_Parameter): handle task and entry parameters in the same way. From-SVN: r177232
Ed Schonberg committed -
2011-08-02 H.J. Lu <hongjiu.lu@intel.com> * config/i386/linux-unwind.h (RT_SIGRETURN_SYSCALL): New. (x86_64_fallback_frame_state): Use RT_SIGRETURN_SYSCALL and long long to check rt_sigreturn syscall. From-SVN: r177229
H.J. Lu committed -
gccgo: Added code to dump the AST tree. The AST dump is activated with -fgo-dump-ast. Initial version, it only dumps (most) constructs that are expected after the lowering transformation. * Make-lang.in (GO_OBJS): Add go/ast-dump.o. (go/ast-dump.o): New target. (go/expressions.o): Depend on go/gofrontend/ast-dump.h. (go/statements.o): Likewise. From-SVN: r177225
Roberto Lublinerman committed -
From-SVN: r177224
GCC Administrator committed
-
- 02 Aug, 2011 32 commits
-
-
From-SVN: r177219
Richard Henderson committed -
PR target/49864 * reg-notes.def (REG_ARGS_SIZE): New. * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop. (expand_call): Add REG_ARGS_SIZE to emit_stack_restore. * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to different stack levels. * combine-stack-adj.c (adjust_frame_related_expr): Remove. (maybe_move_args_size_note): New. (combine_stack_adjustments_for_block): Use it. * combine.c (distribute_notes): Place REG_ARGS_SIZE. * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member. (dw_trace_info): Add beg_true_args_size, end_true_args_size, beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined. (cur_cfa): New. (queued_args_size): Remove. (add_cfi_args_size): Assert size is non-negative. (stack_adjust_offset, dwarf2out_args_size): Remove. (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove. (notice_args_size, notice_eh_throw): New. (dwarf2out_frame_debug_def_cfa): Use cur_cfa. (dwarf2out_frame_debug_adjust_cfa): Likewise. (dwarf2out_frame_debug_cfa_offset): Likewise. (dwarf2out_frame_debug_expr): Likewise. Don't stack_adjust_offset. (dwarf2out_frame_debug): Don't handle non-frame-related-p insns. (change_cfi_row): Don't emit args_size. (maybe_record_trace_start_abnormal): Split out from ... (maybe_record_trace_start): Here. Set args_size_undefined. (create_trace_edges): Update to match. (scan_trace): Handle REG_ARGS_SIZE. (connect_traces): Connect args_size between EH insns. * emit-rtl.c (try_split): Handle REG_ARGS_SIZE. * explow.c (suppress_reg_args_size): New. (adjust_stack_1): Split out from ... (adjust_stack): ... here. (anti_adjust_stack): Use it. (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE. * expr.c (mem_autoinc_base): New. (fixup_args_size_notes): New. (emit_single_push_insn_1): Rename from emit_single_push_insn. (emit_single_push_insn): New. Generate REG_ARGS_SIZE. * recog.c (peep2_attempt): Handle REG_ARGS_SIZE. * reload1.c (reload_as_needed): Likewise. * rtl.h (fixup_args_size_notes): Declare. From-SVN: r177218
Richard Henderson committed -
From-SVN: r177217
Richard Henderson committed -
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 -
PR c++/49577 * typeck2.c (check_narrowing): Check unsigned mismatch. * semantics.c (finish_compound_literal): check_narrowing. From-SVN: r177215
Jason Merrill committed -
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 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 -
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 -
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 -
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 -
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 -
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 -
PR target/49878 h8300: Don't allow eliminable registers to be pushed. From-SVN: r177200
Richard Henderson committed -
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 -
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 -
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 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 -
From-SVN: r177193
Arnaud Charlet committed -
From-SVN: r177192
Arnaud Charlet committed -
From-SVN: r177191
Arnaud Charlet committed -
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 -
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 -
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 -
From-SVN: r177185
Jason Merrill committed -
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 -
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 -
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 -
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 -
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 -
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 -
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 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
-