Commit Graph

110706 Commits

Author SHA1 Message Date
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
Kai Tietz
9b80d091af gimple.c (canonicalize_cond_expr_cond): Handle cast from boolean-type.
* 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
2011-08-02 16:55:47 +02:00
Robert Dewar
7b9db92637 sem_ch3.adb, [...]: Update comments.
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
2011-08-02 16:54:14 +02:00
Arnaud Charlet
e8374e7af3 [multiple changes]
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
2011-08-02 16:50:56 +02:00
Arnaud Charlet
1f6439e34b [multiple changes]
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
2011-08-02 16:46:28 +02:00
H.J. Lu
c01ecafca3 Check __x86_64__ instead of __LP64__ for x86 futex.
2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>

	* config/linux/x86/futex.h: Check __x86_64__ instead of
	__LP64__.

From-SVN: r177166
2011-08-02 07:44:06 -07:00
Robert Dewar
ab027d2814 exp_ch7.adb [...]: Minor reformatting
2011-08-02  Robert Dewar  <dewar@adacore.com>

	* exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting

From-SVN: r177165
2011-08-02 16:43:43 +02:00
Javier Miranda
b3b28b0cd6 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
2011-08-02 16:42:28 +02:00
Javier Miranda
9732e886ed 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
2011-08-02 16:41:13 +02:00
Arnaud Charlet
e526d0c765 [multiple changes]
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
2011-08-02 16:39:06 +02:00
Robert Dewar
5b1e6aca6a einfo.ads, einfo.adb (Suppress_Initialization): Replaces Suppress_Init_Procs.
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
2011-08-02 16:35:51 +02:00
Robert Dewar
5ad4969daf gnat_rm.texi, [...]: Minor reformatting.
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
2011-08-02 16:30:35 +02:00
Arnaud Charlet
8c4ee6f532 [multiple changes]
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
2011-08-02 16:28:32 +02:00
Arnaud Charlet
0b3d16c08a [multiple changes]
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
2011-08-02 16:02:45 +02:00