Commit Graph

110819 Commits

Author SHA1 Message Date
Arnaud Charlet 3e5828693d [multiple changes]
2011-08-03  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch3.adb (Build_Derived_Record_Type): Test the Derive_Subps formal
	as a condition for the delayed call to Derived_Subprograms done for the
	case of the rewriting of a derived type that constrains the
	discriminants of its parent type.
	Avoids redundant subprogram derivations for private subtype derivations.

2011-08-03  Javier Miranda  <miranda@adacore.com>

	* exp_aggr.adb (Init_Hidden_Discriminants): New subprogram of
	Build_Record_Aggr_Code.
	(Build_Record_Aggr_Code): Add missing support to initialize hidden
	discriminants in extension aggregates.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

	* prj-pp.adb (Print): also output project qualifiers, since in
	particular "aggregate" is mandatory in an aggregate project.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

	* prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-env.adb:
	(Debug_Output): new function.

From-SVN: r177240
2011-08-03 10:26:17 +02:00
Arnaud Charlet 56e941863b [multiple changes]
2011-08-03  Eric Botcazou  <ebotcazou@adacore.com>

	* gnat_ugn.texi: Document -Wstack-usage.
	* gcc-interface/misc.c (enumerate_modes): Add guard for ghost FP modes.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

	* sem_prag.adb Issue an error (not a warning) when a C++ type does not
	have keyword LIMITED.

2011-08-03  Yannick Moy  <moy@adacore.com>

	* alfa.adb, alfa.ads, alfa_test.adb: New files.
	* ali.adb (Known_ALI_Lines): add 'C' lines (SCO) and 'F' lines (ALFA)
	(Scan_ALI): do not issue a fatal error if parsing known lines after Xref
	section (does not happen in compiler, only if code directly calls
	Scan_ALI).
	* get_alfa.adb, get_alfa.ads: New files.
	* lib-writ.adb, lib-writ.ads (Write_ALI): output ALFA information if
	needed.
	* lib-xref-alfa.adb: New file.
	* lib-xref.adb, lib-xref.ads
	(Xref_Entry): redefine information needed in cross-references for ALFA.
	Push ALFA treatments in separated local package.
	(Enclosing_Subpragram_Or_Package): treat specially subprogram
	identifiers. Return entity of package body instead of spec. Return
	Empty for a scope with no location.
	(Generate_Reference): adapt to new components for ALFA information.
	Remove the need for D references on definitions.
	(Is_Local_Reference): moved to ALFA local package
	(Output_References): extract subfunction as Extract_Source_Name
	(Output_Local_References): remove procedure, replaced by filtering of
	cross-references in package ALFA and printing in Put_ALFA.
	(Write_Entity_Name): remove procedure
	* lib.adb, lib.ads (Extract_Source_Name): extract here function to
	print exact name of entity as it appears in source file
	(Unit_Ref_Table): make type public for use in Lib.Xref.ALFA
	* put_alfa.adb, put_alfa.ads: New files.
	* xref_lib.adb (Search_Xref): protect read of cross-references against
	reading other sections of the ALI file, in gnatxref
	(Search): protect read of cross-references against reading other
	sections of the ALI file, in gnatfind.
	* gcc-interface/Make-lang.in: Update dependencies.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

	* sem_ch3.adb: Minor reformatting.

2011-08-03  Jose Ruiz  <ruiz@adacore.com>

	* s-inmaop-vxworks.adb (Setup_Interrupt_Mask): Do nothing instead of
	raising an exception.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Set_String_Literal_Subtype): if index type is an integer
	type, always use 1 as the lower bound or string, even if lower bound of
	context is not static, to handle properly null strings in a non-static
	context.

2011-08-03  Bob Duff  <duff@adacore.com>

	* sem_prag.adb (Resolve_Aggregate): An array aggregate with 'others' is
	always legal on the right-hand side of an assignment statement; there
	is always an applicable index constraint in this case. Therefore, the
	check for Pkind = N_Assignment_Statement is now unconditional -- it
	doesn't depend on whether Is_Constrained (Typ).

From-SVN: r177239
2011-08-03 10:22:52 +02:00
Arnaud Charlet 4317e442b4 [multiple changes]
2011-08-03  Robert Dewar  <dewar@adacore.com>

	* exp_ch5.adb, sem_prag.adb, exp_ch4.adb: Minor reformatting.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Build_Itype_Reference): do not create an itype reference
	for an itype created within a generic unit.

2011-08-03  Eric Botcazou  <ebotcazou@adacore.com>

	* gnat_ugn.texi (Switches for gcc): Make it clearer that -fno-inline
	suppresses all inlining.

From-SVN: r177238
2011-08-03 10:11:09 +02:00
Arnaud Charlet 53f29d4f64 [multiple changes]
2011-08-03  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb, sem_res.adb, exp_ch13.adb, exp_disp.adb,
	exp_aggr.adb: Minor reformatting.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

	* exp_ch5.adb (Expand_N_Assignment_Statement): Do not force inlining of
	tagged assignment when discriminant checks are suppressed. This is
	useless and extremely costly in terms of static stack usage.

2011-08-03  Bob Duff  <duff@adacore.com>

	* sem_prag.adb (Get_Base_Subprogram): Do not follow Alias for instances
	of generics, because this leads to the wrong entity in the wrong scope,
	causing (e.g.) pragma Export_Procedure to get an error if the entity is
	an instance.
	(Process_Interface_Name): Follow Alias for instances of generics, to
	correct for the above change.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch4.adb (Expand_N_Selected_Component): If the discriminant value
	is an integer literal it is always safe to replace the reference. In
	addition, if the reference appears in the generated code for an object
	declaration it is necessary to copy because otherwise the reference
	might be to the uninitilized value of the discriminant of the object
	itself.

2011-08-03  Pascal Obry  <obry@adacore.com>

	* adaint.c (__gnat_is_executable_file_attr): Fix Win32 circuitry when no
	ACL used, in this case we want to check for ending .exe, not .exe
	anywhere in the path.

2011-08-03  Sergey Rybin  <rybin@adacore.com>

	* tree_io.ads (ASIS_Version_Number): Update because of the changes in
	the tree structure (semantic decoration of references to record
	discriminants).

From-SVN: r177237
2011-08-03 10:08:31 +02:00
Arnaud Charlet c0b1185020 [multiple changes]
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
2011-08-03 10:02:56 +02:00
Revital Eres edc429ff61 Optimize stage count
From-SVN: r177235
2011-08-03 07:59:23 +00:00
Arnaud Charlet 5c34e9cd07 [multiple changes]
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
2011-08-03 09:52:00 +02:00
Arnaud Charlet abcd9db2c8 [multiple changes]
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
2011-08-03 09:45:36 +02:00
Ed Schonberg b474d6c3f1 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
2011-08-03 09:37:15 +02:00
H.J. Lu 40f2f11f1f Update x32 __NR_rt_sigreturn system call number.
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
2011-08-02 21:59:41 -07:00
Roberto Lublinerman 16c57fe280 gccgo: Added code to dump the AST tree.
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
2011-08-03 00:37:26 +00:00
GCC Administrator 44e7bfcb6f Daily bump.
From-SVN: r177224
2011-08-03 00:18:01 +00:00
Richard Henderson a3fef928c4 Add another PR tag.
From-SVN: r177219
2011-08-02 15:20:17 -07:00
Richard Henderson 9a08d23082 re PR debug/49864 (ICE: in maybe_record_trace_start, at dwarf2cfi.c:2439)
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
2011-08-02 15:18:35 -07:00
Richard Henderson cde7b553db Fix my last changelog entry.
From-SVN: r177217
2011-08-02 14:23:58 -07:00
Jason Merrill a9a740baf7 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
2011-08-02 17:09:26 -04:00
Jason Merrill 54e7d7f5e9 re PR c++/49577 ([C++0x] narrowing conversion not rejected)
PR c++/49577
	* typeck2.c (check_narrowing): Check unsigned mismatch.
	* semantics.c (finish_compound_literal): check_narrowing.

From-SVN: r177215
2011-08-02 17:09:17 -04:00
Jason Merrill 326a64554b re PR c++/49593 ([C++0x] cannot use T{t}... as pack expansion)
PR c++/49593
	* pt.c (find_parameter_packs_r): Handle CONSTRUCTOR.

From-SVN: r177214
2011-08-02 17:09:08 -04:00
Jason Merrill adc651f305 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
2011-08-02 17:08:57 -04:00
Paolo Carlini 9f8139900d re PR bootstrap/49914 (call to abs(long long) in gcc/fold-const.c)
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
2011-08-02 20:26:57 +00:00
Daniel Kraft f315a6b438 re PR fortran/49885 (Segmentation fault when writing to an automatic character array)
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
2011-08-02 22:10:13 +02:00
Richard Henderson 8f1594b2b8 h8300: Generate correct unwind info around swap_into/out_of_er6.
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
2011-08-02 12:56:29 -07:00
Kai Tietz 66f1dc79f5 re PR middle-end/49947 (FAIL: gcc.dg/tree-ssa/forwprop-15.c)
2011-08-02  Kai Tietz  <ktietz@redhat.com>

	PR middle-end/49947
	* gcc.dg/tree-ssa/forwprop-15.c

From-SVN: r177205
2011-08-02 21:31:30 +02:00
H.J. Lu 3ed2c64330 Fix a typo in host_detect_local_cpu.
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
2011-08-02 12:23:10 -07:00
Richard Henderson f9b4f8c126 re PR target/49878 ([h8300] ICE in based_loc_descr, at dwarf2out.c:10478)
PR target/49878
h8300: Don't allow eliminable registers to be pushed.

From-SVN: r177200
2011-08-02 11:48:00 -07:00
Jason Merrill 2b756fa297 re PR c++/49834 ([C++0x] type deduction in for-each loop in template function)
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
2011-08-02 14:08:58 -04:00
Tobias Burnus 979d459888 trans-array.c (gfc_array_allocate): Pass token to gfc_allocate_allocatable for -fcoarray=lib.
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
2011-08-02 20:07:52 +02:00
Richard Henderson b7cef5958d re PR target/49881 ([AVR] Inefficient stack manipulation around calls)
PR target/49881
        * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.

From-SVN: r177196
2011-08-02 10:38:16 -07:00
Jakub Jelinek 20906c66f2 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
2011-08-02 18:13:29 +02:00
Arnaud Charlet 113430e542 New file.
From-SVN: r177193
2011-08-02 17:53:12 +02:00
Arnaud Charlet c2d601b814 Minor reformatting.
From-SVN: r177192
2011-08-02 17:52:59 +02:00
Arnaud Charlet 9beddc4c27 Update dependencies
From-SVN: r177191
2011-08-02 17:49:38 +02:00
Arnaud Charlet 0580d80707 [multiple changes]
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
2011-08-02 17:47:39 +02:00
Arnaud Charlet b191a12525 [multiple changes]
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
2011-08-02 17:36:49 +02:00
Arnaud Charlet 316a066191 [multiple changes]
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
2011-08-02 17:35:25 +02:00
Jason Merrill 1e88210d7f * call.c (build_call_a): Also check at_function_scope_p.
From-SVN: r177185
2011-08-02 11:35:09 -04:00
Tobias Burnus 3c3a516054 trim_optimize_5.f90: Remove spurious "use foo".
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
2011-08-02 17:32:31 +02:00
Arnaud Charlet f9adb9d480 [multiple changes]
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
2011-08-02 17:30:55 +02:00
Yannick Moy 83f331504e sem_ch3.adb, [...]: Protect call to Current_Subprogram which might be costly when repeated.
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
2011-08-02 17:28:12 +02:00
Yannick Moy 7b98672ff9 sem_res.adb: Protect calls to Matching_Static_Array_Bounds which might be costly.
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
2011-08-02 17:26:43 +02:00
Arnaud Charlet 052e0603b1 [multiple changes]
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
2011-08-02 17:25:25 +02:00
Arnaud Charlet 4fbad0ba4c [multiple changes]
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
2011-08-02 17:21:19 +02:00
Ed Schonberg 6ff6152d50 sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression in an association...
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
2011-08-02 17:17:00 +02:00
Yannick Moy 975c689678 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
2011-08-02 17:15:07 +02:00
Arnaud Charlet afc8324d66 [multiple changes]
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
2011-08-02 17:12:44 +02:00
Yannick Moy 2ba431e53e sem_aggr.adb, [...]: cleanup of SPARK mode
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
2011-08-02 17:10:17 +02:00
Yannick Moy 0f85303509 cstand.adb (Create_Standard): sets Is_In_ALFA component of standard types.
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
2011-08-02 17:07:10 +02:00
Ed Schonberg d2b1064719 sem_ch6 (Analyze_Expression_Function): treat the function as Inline_Always...
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
2011-08-02 17:04:46 +02:00
Arnaud Charlet c7b9d548d3 [multiple changes]
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
2011-08-02 17:00:07 +02:00
Arnaud Charlet 1138cf593b [multiple changes]
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
2011-08-02 16:56:42 +02:00