Commit Graph

145318 Commits

Author SHA1 Message Date
Michael Matz fe37c7afd1 tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
* tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
	(SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
	* tree-core.h (tree_type_common.align): Use bit-field.
	(tree_type_common.spare): New.
	(tree_decl_common.off_align): Make smaller.
	(tree_decl_common.align): Use bit-field.

	* expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
	* omp-low.c (install_var_field): Use SET_DECL_ALIGN.
	(scan_sharing_clauses): Ditto.
	(finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
	(omp_finish_file): Ditto.
	* stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
	(layout_decl): Ditto.
	(relayout_decl): Ditto.
	(finalize_record_size): Use SET_TYPE_ALIGN.
	(finalize_type_size): Ditto.
	(finish_builtin_struct): Ditto.
	(layout_type): Ditto.
	(initialize_sizetypes): Ditto.
	* targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
	* tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
	(lookup_field_for_decl): Use SET_DECL_ALIGN.
	(get_chain_field): Ditto.
	(get_trampoline_type): Ditto.
	(get_nl_goto_field): Ditto.
	* tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
	SET_DECL_ALIGN.
	(unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
	* gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
	* tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
	(build_qualified_type): Use SET_TYPE_ALIGN.
	(build_aligned_type, build_range_type_1): Ditto.
	(build_atomic_base): Ditto.
	(build_common_tree_nodes): Ditto.
	* cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
	(expand_one_stack_var_at): Ditto.
	* coverage.c (build_var): Use SET_DECL_ALIGN.
	* except.c (init_eh): Ditto.
	* function.c (assign_parm_setup_block): Ditto.
	* symtab.c (increase_alignment_1): Ditto.
	* tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
	* tree-vect-stmts.c (ensure_base_align): Ditto.
	* varasm.c (align_variable): Ditto.
	(assemble_variable): Ditto.
	(build_constant_desc): Ditto.
	(output_constant_def_contents): Ditto.

	* config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
	* config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
	* config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
	* config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
	* config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.

ada/
	* gcc-interface/decl.c (gnat_to_gnu_entity): Use SET_TYPE_ALIGN.
	(gnat_to_gnu_field): Ditto.
	(components_to_record): Ditto.
	(create_variant_part_from): Ditto.
	(copy_and_substitute_in_size): Ditto.
	(substitute_in_type): Ditto.
	* gcc-interface/utils.c (make_aligning_type): Use SET_TYPE_ALIGN.
	(make_packable_type): Ditto.
	(maybe_pad_type): Ditto.
	(finish_fat_pointer_type): Ditto.
	(finish_record_type): Ditto and use SET_DECL_ALIGN.
	(rest_of_record_type_compilation): Use SET_TYPE_ALIGN.
	(create_field_decl): Use SET_DECL_ALIGN.

c-family/
	* c-common.c (handle_aligned_attribute): Use SET_TYPE_ALIGN
	and SET_DECL_ALIGN.

c/
	* c-decl.c (merge_decls): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
	(grokdeclarator, parser_xref_tag, finish_enum): Use SET_TYPE_ALIGN.

cp/
	* class.c (build_vtable): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
	(layout_class_type): Ditto.
	(build_base_field): Use SET_DECL_ALIGN.
	(fixup_attribute_variants): Use SET_TYPE_ALIGN.
	* decl.c (duplicate_decls): Use SET_DECL_ALIGN.
	(record_unknown_type): Use SET_TYPE_ALIGN.
	(cxx_init_decl_processing): Ditto.
	(copy_type_enum): Ditto.
	(grokfndecl): Use SET_DECL_ALIGN.
	(copy_type_enum): Use SET_TYPE_ALIGN.
	* pt.c (instantiate_class_template_1): Use SET_TYPE_ALIGN.
	(tsubst): Ditto.
	* tree.c (cp_build_qualified_type_real): Use SET_TYPE_ALIGN.
	* lambda.c (maybe_add_lambda_conv_op): Use SET_DECL_ALIGN.
	* method.c (implicitly_declare_fn): Use SET_DECL_ALIGN.
	* rtti.c (emit_tinfo_decl): Ditto.

fortran/
	* trans-io.c (gfc_build_io_library_fndecls): Use SET_TYPE_ALIGN.
	* trans-common.c (build_common_decl): Use SET_DECL_ALIGN.
	* trans-types.c (gfc_add_field_to_struct): Use SET_DECL_ALIGN.

go/
	* go-gcc.cc (Gcc_backend::implicit_variable): Use SET_DECL_ALIGN.

java/
	* class.c (add_method_1): Use SET_DECL_ALIGN.
	(make_class_data): Ditto.
	(emit_register_classes_in_jcr_section): Ditto.
	* typeck.c (build_java_array_type): Ditto.

objc/
	* objc-act.c (objc_build_struct): Use SET_DECL_ALIGN.

libcc1/
	* plugin.cc (plugin_finish_record_or_union): Use SET_TYPE_ALIGN.

From-SVN: r235172
2016-04-18 20:36:27 +00:00
H.J. Lu 91a47c39bf Optimize load double into xmm with zero_extend
"movq" should used to load double into xmm register with zero_extend:

(set (reg:V2DF 90)
     (vec_concat:V2DF (reg/v:DF 88 [ d ])
                      (const_double:DF 0.0 [0x0.0p+0])))

Unlike "movsd", which only works with load from memory, "movq" works
with both memory and xmm register.

gcc/

	PR target/70708
	* config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
	replace %vmovsd with "%vmovq".
	(vec_concatv2df): Likewise.

gcc/testsuite/

	PR target/70708
	* gcc.target/i386/pr70708.c: New test.

From-SVN: r235169
2016-04-18 12:40:30 -07:00
Jason Merrill 81c160c6f3 re PR c++/70690 (r235002 miscompiles tcmalloc)
PR c++/70690

	PR c++/70528
	* class.c (type_maybe_constexpr_default_constructor): New.
	(type_has_constexpr_default_constructor): Revert.

From-SVN: r235165
2016-04-18 15:00:00 -04:00
Uros Bizjak 827f44ebeb mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
* config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
	(*vec_extractv2si_0): Ditto.
	* config/i386/sse.md (*vec_extractv4sf_0): Ditto.
	(zero_extended_scalar_load_operand splitters): Ditto.
	(vec_extract splitters): Ditto.
	(*vec_extractv4si_0_zext): Ditto.
	(avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
	and lowpart_subreg.
	(avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
	(avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
	(*sse4_1_extractps): Use lowpart_subreg.

From-SVN: r235164
2016-04-18 20:52:47 +02:00
Rainer Orth a8430f1914 Update install.texi for GCC 6 on Solaris
* doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
	gld requirements.
	(Specific, *-*-solaris2*): Update Solaris 11 bundled gcc
	versions.
	Mention Solaris 11 packaging changes.
	Update gas and gld requirements.
	Remove reference to pre-Solaris 10 bug.
	(Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
	systems and bugs.
	(Specific, sparc64-*-solaris2*): Remove reference to bootstrap
	with cc.

From-SVN: r235162
2016-04-18 18:39:03 +00:00
Jonathan Wakely 0cded43df4 PR libstdc++/41759 reword static assertions in <random>
PR libstdc++/41759
	* include/bits/random.h: Reword static assertion messages to state
	positive conditions.
	* include/bits/random.tcc: Likewise.
	* include/bits/uniform_int_dist.h: Likewise.
	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
	patterns.

From-SVN: r235160
2016-04-18 19:03:50 +01:00
Jan Hubicka fa519ca610 tree-ssa-loop-ivopts.c (avg_loop_niter): Use also max_loop_iterations_int.
* tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
	max_loop_iterations_int.

From-SVN: r235158
2016-04-18 17:16:27 +00:00
Jonathan Wakely 90751aa731 Remove unused typedefs in std::bind types
* include/std/function (_Bind, _Bind_result): Remove unused typedefs.

From-SVN: r235157
2016-04-18 17:37:56 +01:00
Jonathan Wakely 351a5f8142 * config/cpu/sh/atomicity.h: Fix typo in comment.
From-SVN: r235156
2016-04-18 17:19:25 +01:00
Jonathan Wakely b05cf382e0 Define std:🧵:id comparison operators at namespace-scope
From-SVN: r235155
2016-04-18 17:16:14 +01:00
Jonathan Wakely 4ed6e52446 Make use of extensions more explicit in libstdc++ tests
* testsuite/18_support/bad_exception/23591_thread-1.c: Add
	-Wno-pedantic to dg-options.
	* testsuite/20_util/align/2.cc: Use type as operand of alignof.
	* testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
	to dg-options.
	* testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
	Remove extra semi-colon.
	* testsuite/23_containers/array/tuple_interface/tuple_element.cc:
	Always supply second argument to static_assert.
	* testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
	semi-colon.
	* testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
	dg-options.
	* testsuite/26_numerics/complex/literals/values.cc: Likewise.
	* testsuite/29_atomics/atomic/60695.cc: Likewise.
	* testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
	alignof when operand is an object not a type.
	* testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
	* testsuite/decimal/make-decimal.cc: Likewise.
	* testsuite/experimental/type_traits/value.cc: Always supply second
	argument to static_assert.
	* testsuite/util/testsuite_common_types.h: Use __extension__ for
	__int128 types.

From-SVN: r235154
2016-04-18 16:44:25 +01:00
Jonathan Wakely abb6e0a19d Don't include internal header in libstdc++ tests
* testsuite/experimental/type_erased_allocator/1.cc: Don't include
	internal header.
	* testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
	* testsuite/experimental/type_erased_allocator/2.cc: Likewise.
	* testsuite/experimental/type_erased_allocator/uses_allocator.cc:
	Likewise. Add licence and change to compile-only test.

From-SVN: r235153
2016-04-18 16:44:16 +01:00
Jonathan Wakely 6b6147dd48 Add attribute((unused)) in libstdc++ headers
* include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
	unused parameter.
	* include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.

From-SVN: r235152
2016-04-18 16:44:12 +01:00
Jonathan Wakely 8dc1e574ae Avoid -Wsign-compare warnings in std::to_string()
* include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
        warnings.

From-SVN: r235151
2016-04-18 16:43:50 +01:00
Richard Biener 8270b82dd6 re PR tree-optimization/43434 (Missed vectorization: "not vectorized: data ref analysis": pointer incremented by a parameter)
2016-04-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/43434
	* tree-ssa-structalias.c (struct vls_data): New.
	(visit_loadstore): Handle all pointer-based accesses.
	(compute_dependence_clique): Compute a bitmap of restrict tags
	assigned bases and pass it to visit_loadstore.

	* gcc.dg/vect/pr43434.c: New testcase.
	* c-c++-common/goacc/kernels-alias-3.c: Adjust.
	* c-c++-common/goacc/kernels-alias-4.c: Likewise.
	* c-c++-common/goacc/kernels-alias-5.c: Likewise.
	* c-c++-common/goacc/kernels-alias-6.c: Likewise.
	* c-c++-common/goacc/kernels-alias-7.c: Likewise.
	* c-c++-common/goacc/kernels-alias-8.c: Likewise.
	* gcc.dg/gomp/pr68640.c: Likewise.
	* gfortran.dg/goacc/kernels-alias-3.f95: Likewise.
	* gfortran.dg/goacc/kernels-alias-4.f95: Likewise.

From-SVN: r235147
2016-04-18 13:09:53 +00:00
Arnaud Charlet be0355585f [multiple changes]
2016-04-18  Arnaud Charlet  <charlet@adacore.com>

	* einfo.adb (Overridden_Operation): assert that
	function is called for valid arguments.
	* sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, sem_type.adb,
	s-osinte-vxworks.ads, a-ngcefu.adb, sem_ch10.adb, einfo.ads,
	sem_prag.adb, sem_ch12.adb, sem.adb, i-cobol.ads, freeze.adb,
	sem_util.adb, a-chtgop.ads, s-rannum.adb, exp_ch6.adb, s-bignum.adb,
	s-osinte-freebsd.ads, par-ch5.adb, a-chtgbo.ads, a-cofove.adb:
	No space after closing parenthesis except where required for
	layout.
	* sem_res.adb: Minor reformatting.

2016-04-18  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch4.adb (Expand_N_Case_Expression): Convert into a case
	statement when relevant.

2016-04-18  Bob Duff  <duff@adacore.com>

	* a-cuprqu.adb (Enqueue): Properly handle the
	case where the new element has a unique priority.

2016-04-18  Tristan Gingold  <gingold@adacore.com>

	* adaint.h: Define stat structures and functions for iOS
	simulator.

From-SVN: r235146
2016-04-18 14:58:22 +02:00
Arnaud Charlet 9d4f983251 [multiple changes]
2016-04-18  Arnaud Charlet  <charlet@adacore.com>

	* sem_res.adb (Resolve_Entry_Call): reset
	Is_Overloaded flag after resolving calls to overloaded protected
	operations.
	* exp_spark.adb (Expand_SPARK): call
	Qualify_Entity_Names for tasking nodes, i.e. protected types,
	task types and entries.
	* exp_ch4.adb (Expand_N_If_Expression): Refine previous change
	in case of an unconstrained type.

2016-04-18  Yannick Moy  <moy@adacore.com>

	* sem_eval.adb, sem_eval.ads (Check_Non_Static_Context): Add
	comment to document usage of subprogram in GNATprove.

From-SVN: r235145
2016-04-18 14:53:35 +02:00
Arnaud Charlet a65dcb0d6e [multiple changes]
2016-04-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Analyze_Pragma, case Test_Case): Improve error
	message for wrong placement of aspect Test_Case.

2016-04-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* einfo.ads: Update the documentation of attribute Renamed_Object.
	* exp_spark.adb (Expand_Potential_Renaming): Reimplemented.

2016-04-18  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch4.adb (Optimize_Length_Comparison): Return immediately
	in the case of AAMP (same as for use of the -gnatd.P switch) to
	suppress this optimization, which avoids creating a dependence
	on the 64-bit arithmetic package.

From-SVN: r235144
2016-04-18 14:48:42 +02:00
Arnaud Charlet 7b3ccbbf0e Minor editing.
From-SVN: r235143
2016-04-18 14:47:22 +02:00
Arnaud Charlet 7548f2cb23 [multiple changes]
2016-04-18  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch4.adb: Update comment.

2016-04-18  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch6.adb (Expand_Call): Make sure instantiations are
	registered only once as pending here.

From-SVN: r235142
2016-04-18 14:47:02 +02:00
Arnaud Charlet f916243bde [multiple changes]
2016-04-18  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch4.adb, gnat1drv.adb, opt.ads, sem_res.adb
	(Minimize_Expression_With_Actions): New flag.
	(Adjust_Global_Switches): Set Minimize_Expression_With_Actions
	when generating C.
	(Resolve_Short_Circuit): Redo previous change
	using Minimize_Expression_With_Actions.
	(Expand_N_If_Expression,
	Expand_Short_Circuit_Operator): Restore old code to avoid
	Expression_With_Actions when Minimize_Expression_With_Actions
	is set.

2016-04-18  Vincent Celier  <celier@adacore.com>

	* s-os_lib.adb (Non_Blocking_Spawn, version with Stdout_File and
	Stderr_File): Close local file descriptors when no longer needed.

2016-04-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Iterator_Specification): Remove SPARK
	mode check that the type of the cursor in an iteration over
	a formal container is not volatile. The proper check on the
	element type is done elsewhere.

2016-04-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Process_Formals): Do not set a delay freeze on
	a subprogram that returns a class-wide type, if the subprogram
	is a compilation unit, because otherwise gigi will treat the
	subprogram as external, leading to link errors.

From-SVN: r235141
2016-04-18 14:44:01 +02:00
Arnaud Charlet 22071092ed sem_res.adb (Resolve_Short_Circuit): Do not use expression-with-actions when generating C.
2016-04-18  Arnaud Charlet  <charlet@adacore.com>

	* sem_res.adb (Resolve_Short_Circuit): Do not use
	expression-with-actions when generating C.

From-SVN: r235140
2016-04-18 14:41:08 +02:00
Arnaud Charlet ad81cb782b [multiple changes]
2016-04-18  Yannick Moy  <moy@adacore.com>

	* sem_util.adb (Apply_Compile_Time_Constraint_Error): Do not generate
	raise node in GNATprove mode.

2016-04-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* s-fileio.adb: Minor reformatting.
	* sem_prag.adb (Analyze_Input_Item): Add local
	variable Input_OK. Do not consider mappings of generic formal
	parameters to actuals.

2016-04-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Get_Cursor_Type): If iterator type is a derived
	type, the cursor is declared in the scope of the parent type.
	(Analyze_Parameter_Specification): A qualified expression with an
	iterator type indicates an iteration over a container (explicit
	or implicit).

From-SVN: r235139
2016-04-18 14:39:36 +02:00
Arnaud Charlet 520c0201eb [multiple changes]
2016-04-18  Arnaud Charlet  <charlet@adacore.com>

	* osint-c.ads, osint-c.adb (Delete_C_File, Delete_H_File): New.
	* gnat1drv.adb (Gnat1drv): Delete old C files before regenerating them.
	* debug.adb: Reserve -gnatd.4 to force generation of C files.

2016-04-18  Yannick Moy  <moy@adacore.com>

	* sem_eval.adb (Eval_Arithmetic_Op): Do not issue error on static
	division by zero, instead possibly issue a warning.
	* sem_res.adb (Resolve_Arithmetic_Op): Do not issue error on
	static division by zero, instead add check flag on original
	expression.
	* sem_util.adb, sem_util.ads (Compile_Time_Constraint_Error):
	Only issue error when both SPARK_Mode is On and Warn is False.

2016-04-18  Yannick Moy  <moy@adacore.com>

	* checks.adb (Apply_Scalar_Range_Check): Force
	warning instead of error when SPARK_Mode is On, on index out of
	bounds, and set check flag for GNATprove.

From-SVN: r235138
2016-04-18 14:33:46 +02:00
Arnaud Charlet 274c2cda3e [multiple changes]
2016-04-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb (Check_In_Out_States.Check_Constituent_Usage):
	Update the comment on usage.  Reimplemented.
	(Check_Input_States.Check_Constituent_Usage): Update the comment
	on usage. A Proof_In constituent can now refine an Input state
	as long as there is at least one Input constituent present.

2016-04-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Check_Inline_Pragma): Use the Sloc of the
	body id as the sloc of the entity in the generated subprogram
	declaration, to avoid spurious conformance errors when style
	checks are enabled.

From-SVN: r235137
2016-04-18 14:30:55 +02:00
Arnaud Charlet a6363ed30e [multiple changes]
2016-04-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Analyze_Selected_Component, Has_Dereference):
	Refine check on illegal calls to entities within a task body,
	when the entity is declared in an object of the same type. In
	a generic context there might be no explicit dereference but if
	the prefix includes an access type the construct is legal.

2016-04-18  Arnaud Charlet  <charlet@adacore.com>

	* rtsfind.ads, rtsfind.adb (RE_Id, RE_Unit_Table): add
	RE_Default_Priority.

2016-04-18  Bob Duff  <duff@adacore.com>

	* sem_prag.adb (Check_Arg_Is_Local_Name): Don't do the check
	if the pragma came from an aspect specification.

2016-04-18  Gary Dismukes  <dismukes@adacore.com>

	* gnat1drv.adb, contracts.adb: Minor reformatting and wording fixes.

2016-04-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): To suppress
	superfluous conformance check on an inlined body with a previous
	spec, use the fact that the generated declaration does not come
	from source. We must treat the entity as coming from source to
	enable some back-end inlining when pragma appears after the body.

From-SVN: r235136
2016-04-18 14:29:53 +02:00
Arnaud Charlet 4afcf3a5a0 [multiple changes]
2016-04-18  Gary Dismukes  <dismukes@adacore.com>

	* lib-xref-spark_specific.adb, par-ch2.adb, errout.ads,
	exp_intr.adb: Minor reformatting and typo corrections.

2016-04-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb: Code cleanup.

2016-04-18  Thomas Quinot  <quinot@adacore.com>

	* sem_ch13.adb: Minor reformatting and error message tweaking
	(remove extraneous spaces).

2016-04-18  Johannes Kanig  <kanig@adacore.com>

	* gnat1drv.adb (Gnat1drv): Force loading of System unit for SPARK.

2016-04-18  Bob Duff  <duff@adacore.com>

	* s-fileio.adb (Fopen_Mode): If Mode = Out_File, and the file
	exists, and it's a fifo, we use "w" as the open string instead of
	"r+". This is necessary to make a write to the fifo block until
	a reader is ready.

2016-04-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_attr.adb (Denote_Same_Function): Account
	for a special case where a primitive of a tagged type inherits
	a class-wide postcondition from a parent type.

From-SVN: r235135
2016-04-18 14:27:10 +02:00
Hristian Kirtchev 58ba241591 par-ch2.adb (P_Expression_Or_Reserved_Word): New routine.
2016-04-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* par-ch2.adb (P_Expression_Or_Reserved_Word): New routine.
	(P_Pragma): Signal Scan_Pragma_Argument_Association when the use
	of reserved words is OK.
	(Scan_Pragma_Argument_Association):
	Add new formal Reserved_Words_OK and update the comment on
	usage. Code cleanup. Parse an expression or a reserved word in
	identifier form for pragmas Restriction_Warnings and Restrictions
	No_Use_Of_Attribute.
	* restrict.adb (Check_Restriction_No_Use_Of_Attribute):
	Reimplemented.	(Check_Restriction_No_Use_Of_Pragma): Code cleanup.
	(Set_Restriction_No_Specification_Of_Aspect): Properly set the warning
	flag for an aspect.
	(Set_Restriction_No_Use_Of_Attribute): Properly set the warning
	flag for an attribute.	(Set_Restriction_No_Use_Of_Entity):
	Update the parameter profile.
	(Set_Restriction_No_Use_Of_Pragma): Properly set the warning flag for
	a pragma.
	* restrict.ads (Check_Restriction_No_Use_Of_Attribute): Update
	the comment on usage.
	(Set_Restriction_No_Use_Of_Entity): Update the parameter profile.
	* sem_attr.adb (Analyze_Attribute): Check restriction
	No_Use_Of_Attribute.
	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Check
	restriction No_Use_Of_Attribute before any rewritings have
	taken place.
	* sem_prag.adb (Analyze_Pragma): Check restriction
	No_Use_Of_Pragma before any rewritings have taken place.

From-SVN: r235134
2016-04-18 14:18:16 +02:00
Matthew Wahab 95e01976cb re PR target/70711 (GCC ARM big-endian ARMv8.1 code fails.)
PR target/70711
	* config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
	armv8.1-a and armv8.1-a+crc.

From-SVN: r235132
2016-04-18 12:11:03 +00:00
Richard Biener edd048e29a re PR tree-optimization/70701 (incomplete value numbering when memcpy-ing from array)
2016-04-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/70701
	* tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
	references after translating through a memcpy.

	* gcc.dg/tree-ssa/ssa-fre-53.c: New testcase.

From-SVN: r235131
2016-04-18 11:39:04 +00:00
Richard Biener 65833da69d tree-ssa-pre.c (postorder, [...]): Make locals ...
2016-04-18  Richard Biener  <rguenther@suse.de>

	* tree-ssa-pre.c (postorder, postorder_num): Make locals ...
	(compute_antic): ... here.  For partial antic use regular
	postorder and scrap iteration.
	(compute_partial_antic_aux): Remove unused return value.
	(init_pre): Do not allocate postorder.
	(fini_pre): Do not free postorder.

From-SVN: r235130
2016-04-18 11:38:05 +00:00
Bob Duff b269f47786 sem_ch6.adb (Is_Inline_Pragma): The pragma argument can be a selected component...
2016-04-18  Bob Duff  <duff@adacore.com>

	* sem_ch6.adb (Is_Inline_Pragma): The pragma
	argument can be a selected component, which has no Chars field,
	so we need to deal with that case (use the Selector_Name).
	(Check_Inline_Pragma): We need to test Is_List_Member before
	calling In_Same_List, because in case of a library unit, they're
	not in lists, so In_Same_List fails an assertion.

2016-04-18  Bob Duff  <duff@adacore.com>

	* namet.ads, namet.adb: Add an Append that appends a
	Bounded_String onto a Bounded_String. Probably a little more
	efficient than "Append(X, +Y);". Also minor cleanup.
	(Append_Decoded, Append_Decoded_With_Brackets, Append_Unqualified,
	Append_Unqualified_Decoded): Make sure these work with non-empty
	buffers.
	* casing.ads, casing.adb (Set_Casing): Pass a Bounded_String
	parameter, defaulting to Global_Name_Buffer.
	* errout.ads, errout.adb (Adjust_Name_Case): Pass a
	Bounded_String parameter, no default.
	* exp_ch11.adb (Expand_N_Raise_Statement): Use local
	Bounded_String instead of Global_Name_Buffer.
	* exp_intr.ads, exp_intr.adb (Write_Entity_Name): Rename it
	to Append_Entity_Name, and pass a Bounded_String parameter,
	instead of using globals.
	(Add_Source_Info): Pass a Bounded_String parameter, instead of
	using globals.
	(Expand_Source_Info): Use local instead of globals.
	* stringt.ads, stringt.adb (Append): Add an Append procedure
	for appending a String_Id onto a Bounded_String.
	(String_To_Name_Buffer, Add_String_To_Name_Buffer): Rewrite in
	terms of Append.
	* sem_prag.adb (Set_Error_Msg_To_Profile_Name): Adjust for new
	Adjust_Name_Case parameter.
	* erroutc.adb, uname.adb: Don't pass D => Mixed_Case to
	Set_Casing; that's the default.
	* lib-xref-spark_specific.adb (Add_SPARK_Scope): Pretend that calls to
	protected subprograms are entry calls; otherwise it is not possible to
	distinguish them from regular subprogram calls.

From-SVN: r235129
2016-04-18 12:53:32 +02:00
Arnaud Charlet 876f16240d [multiple changes]
2016-04-18  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch13.adb (Has_Good_Profile): Improvement
	of error message. Now indicates subtype_mark of formal parameter
	rather than the formal's name, plus minor rewording.

2016-04-18  Pascal Obry  <obry@adacore.com>

	* adaint.c, adaint.h, s-os_lib.ads: Add new routine Current_Process_Id.

From-SVN: r235128
2016-04-18 12:52:05 +02:00
Arnaud Charlet 77039fe27c [multiple changes]
2016-04-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* stringt.adb, exp_ch6.adb, sem_ch13.adb: Minor reformatting.

2016-04-18  Gary Dismukes  <dismukes@adacore.com>

	* par-ch4.adb, sem_prag.adb: Minor reformatting.

From-SVN: r235127
2016-04-18 12:50:37 +02:00
Bob Duff ea1027992d sinput.ads, sinput.adb (Build_Location_String): Take a parameter instead of using a global variable.
2016-04-18  Bob Duff  <duff@adacore.com>

	* sinput.ads, sinput.adb (Build_Location_String): Take a
	parameter instead of using a global variable.  The function
	version no longer destroys the Name_Buffer.
	* stringt.ads, stringt.adb (String_From_Name_Buffer): Take a
	parameter, which defaults to the Global_Name_Buffer, so some
	calls can avoid the global.
	* exp_ch11.adb, exp_intr.adb: Use new interfaces above
	to avoid using globals. All but one call to Build_Location_String
	avoids the global. Only one call to String_From_Name_Buffer
	avoids it.

From-SVN: r235126
2016-04-18 12:48:33 +02:00
Arnaud Charlet bd717ec9b7 Minor code cleanups.
From-SVN: r235125
2016-04-18 12:47:29 +02:00
Arnaud Charlet 87feba051d [multiple changes]
2016-04-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* namet.adb, namet.ads, exp_unst.adb: Minor reformatting.

2016-04-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_eval.adb (Choice_Matches): Check the expression
	against the predicate values when the choice denotes a
	subtype with a static predicate.
	(Eval_Membership_Op): Code cleanup. Remove the suspicious guard which
	tests for predicates.
	(Is_OK_Static_Subtype): A subtype with a dynamic predicate
	is not static.	(Is_Static_Subtype): A subtype with a dynamic
	predicate is not static.
	* sem_eval.ads (Is_OK_Static_Subtype): Update the comment on usage.
	(Is_Static_Subtype): Update the comment on usage.

2016-04-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb (Analyze_Input_Item): Allow
	generic formals to appear as initialization items.

2016-04-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb (Analyze_Stream_TSS_Definition,
	Has_Good_Profile): Additional error message to indicate that
	the second parameter of the subprogram must be a first subtype.

2016-04-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper, Is_Inline_Pragma):
	Use the pragma lookahead that determines whether a subprogram
	is to be inlined, when some level of backend optimization is
	required.
	* sem_ch12.ads, sem_ch12.adb (Add_Pending_Instantiation): Factorize
	code used to create an instance body when needed for inlining.
	* exp_ch6.adb (Expand_Call): When a call is to be inlined, and the
	call appears within an instantiation that is not a compilation
	unit, add a pending instantiation for the enclosing instance,
	so the backend can inline in turn the calls contained in the
	inlined body.

From-SVN: r235124
2016-04-18 12:46:40 +02:00
Arnaud Charlet 3e20cb680f [multiple changes]
2016-04-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Build_Pragma_Check_Equivalent): The mapping
	that relates operations of the parent type to the operations of
	the derived type has three distinct sources:
	a) explicit operations of the derived type carry an
	Overridden_Operation that designates the operation in the
	ancestor.
	b) Implicit operations that are inherited by the derived type
	carry an alias that may be an explicit subprogram (in which case
	it may have an Overridden_ Operation indicator) or may also be
	inherited and carry its own alias.
	c) If the parent type is an interface, the operation of the
	derived type does not override, but the interface operation
	indicates the operation that implements it.
	* sem_prag.adb: Minor reformatting.
	* sem_prag.adb (Check_External_Property): Update
	the comment on usage. Reimplement.

2016-04-18  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch5.adb (Expand_Assignment_Statement): In restricted
	profiles such as ZFP, ceiling priority is not available.

2016-04-18  Bob Duff  <duff@adacore.com>

	* namet-sp.ads: Minor typo fix, ironically in 'Spelling_Checker'.

2016-04-18  Bob Duff  <duff@adacore.com>

	* sem_elab.adb (Output_Calls): Use
	Get_Name_String, to clearly indicate that the global Name_Buffer
	is being used. The previous code used Is_Internal_Name, which
	returns a Boolean, but also has a side effect of setting the
	Name_Buffer. Then it called the other Is_Internal_Name, which uses
	the Name_Buffer for its input. And then it called Error_Msg_N,
	again using the Name_Buffer. We haven't eliminated the global
	usage here, but we've made it a bit clearer.
	This also allows us to have a side-effect-free version of
	Is_Internal_Name.
	* namet.ads, namet.adb: Provide a type Bounded_String, along with
	routines that can be used without using global variables. Provide
	Global_Name_Buffer so existing code can continue to use the
	global. Mark the routines that use globals as obsolete.  New code
	shouldn't call the obsolete ones, and we should clean up existing
	code from time to time.
	Name_Find_Str is renamed as Name_Find.
	* namet.h: Changed as necessary to interface to the new version
	of Namet.
	* bindgen.adb, exp_unst.adb: Name_Find_Str is renamed as
	Name_Find.

From-SVN: r235123
2016-04-18 12:44:09 +02:00
Arnaud Charlet 1f55088db5 [multiple changes]
2016-04-18  Yannick Moy  <moy@adacore.com>

	* sem_util.adb, sem_util.ads (Has_Full_Default_Initialization): used
	outside of GNATprove, hence it should not be removed.

2016-04-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb (Analyze_Refinement_Clause):
	The refinement of an external abstract state can now mention
	non-external constituents.
	(Check_External_Property): Update all SPARK RM references.

2016-04-18  Bob Duff  <duff@adacore.com>

	* exp_intr.adb: Remove some duplicated code.

2016-04-18  Yannick Moy  <moy@adacore.com>

	* a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-nuflra.ads: Mark
	package spec and body out of SPARK.

2016-04-18  Johannes Kanig  <kanig@adacore.com>

	* spark_xrefs.ads: Minor comment update.

2016-04-18  Johannes Kanig  <kanig@adacore.com>

	* gnat1drv.adb (Gnat1drv): Force loading of System
	unit for SPARK.

2016-04-18  Bob Duff  <duff@adacore.com>

	* a-cuprqu.adb: Correction to previous change. If a new node
	is inserted at the front of the queue (because it is higher
	priority than the previous front node), we need to update
	Header.Next_Unequal -- not just in the case where the queue was
	previously empty.

From-SVN: r235122
2016-04-18 12:41:18 +02:00
Arnaud Charlet 142870f570 [multiple changes]
2016-04-18  Bob Duff  <duff@adacore.com>

	* a-cuprqu.ads: Change the representation of List_Type from a
	singly-linked list to a doubly-linked list. In addition, add a
	pointer Next_Unequal, which points past a possibly-long chain
	of equal-priority items. This increases efficiency, especially
	in the case of many equal-priority items.
	* a-cuprqu.adb (Dequeue, Enqueue): Rewrite algorithms to take
	advantage of new data structure.
	(Finalize): Rewrite in terms of Dequeue, for simplicity.

2016-04-18  Yannick Moy  <moy@adacore.com>

	* contracts.adb (Analyze_Object_Contract,
	Analyze_Protected_Contract): Remove tests performed in GNATprove.
	* sem_util.adb, sem_util.ads (Has_Full_Default_Initialization):
	Remove query for tests performed in GNATprove.

From-SVN: r235121
2016-04-18 12:37:47 +02:00
Arnaud Charlet ec3c7387ac [multiple changes]
2016-04-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb (Resolve_Record_Aggregate): If
	Warn_On_Redundant_Constructs is enabled, report a redundant box
	association that does not cover any components, as it done for
	redundant others associations in case statements.

2016-04-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Collect_Inherited_Class_Wide_Conditions):
	Analyze the generated Check pragma for an inherited condition so
	that it does not freeze the dispatching type of the primitive
	operation, because it is pre-analyzed at the point of the
	subprogram declaration (and not in the subprogram body, as is
	done during regular expansion).

2016-04-18  Vincent Celier  <celier@adacore.com>

	* ali.ads: Increase the range of all _Id types to 100 millions.

2016-04-18  Gary Dismukes  <dismukes@adacore.com>

	* sem_warn.adb (Check_References): Change warning to suggest
	using pragma Export rather than saying "volatile has no effect".

2016-04-18  Bob Duff  <duff@adacore.com>

	* g-souinf.ads (Compilation_ISO_Date): New function to return
	the current date in ISO form.
	* exp_intr.adb (Expand_Source_Info, Add_Source_Info): Expand
	a call to Compilation_ISO_Date into a string literal containing
	the current date in ISO form.
	* exp_intr.ads (Add_Source_Info): Improve documentation.
	* sem_intr.adb (Check_Intrinsic_Subprogram): Recognize
	Compilation_ISO_Date.
	* snames.ads-tmpl (Name_Compilation_ISO_Date): New Name_Id.

From-SVN: r235120
2016-04-18 12:35:36 +02:00
Arnaud Charlet 0f6251c7ac [multiple changes]
2016-04-18  Eric Botcazou  <ebotcazou@adacore.com>

	* layout.adb (Set_Elem_Alignment): Extend setting of alignment
	to subtypes that are not first subtypes.

2016-04-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.ads (Collect_Inherited_Class_Wide_Conditions):
	Simplify interface.
	* sem_prag.adb (Collect_Inherited_Class_Wide_Conditions): Insert
	generated pragmas after subprogram declaration, rather than in
	the corresponding subprogram body.
	* sem_ch6.adb (New_Overloaded_Entity): In GNATProve
	mode, if the operation is overridding, call
	Collect_Inherited_Class_Wide_Conditions to generate the
	corresponding pragmas immediately after the corresponding
	subprogram declaration.

2016-04-18  Arnaud Charlet  <charlet@adacore.com>

	* spark_xrefs.ads (Xref_Index, Scope_Index, File_Index): restrict
	type to natural numbers.
	(Stype): document code characters for concurrent entities.

2016-04-18  Olivier Hainque  <hainque@adacore.com>

	* targparm.ads: Update the Frontend_Exceptions default internal
	value.
	(Frontend_Exceptions_On_Target): Change default value to True.

2016-04-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Analyze_Selected_Component): Refine error
	detection when a selected component in the body of a synchronized
	type is a reference to an object of the same type declared
	elsewhere. The construct is legal if the prefix of the selected
	component includes an explicit dereference at any point.

From-SVN: r235118
2016-04-18 12:30:27 +02:00
Hristian Kirtchev 070d862dde sem_ch3.adb (Analyze_Object_Declaration): Do not consider internally generated expressions when...
2016-04-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch3.adb (Analyze_Object_Declaration): Do not consider
	internally generated expressions when trying to determine whether
	a formal parameter of a tagged type subject to Extensions_Visible
	False is used to initialize an object.
	* sem_ch4.adb (Analyze_Type_Conversion): Do not consider
	internally generated expressions when trying to determine whether
	a formal parameter of a tagged type subject to Extensions_Visible
	False is used in a type conversion.

From-SVN: r235117
2016-04-18 12:27:19 +02:00
Arnaud Charlet 933aa0ac81 [multiple changes]
2016-04-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_res.adb (Is_Protected_Operation_Call):
	Add guards to account for a non-decorated selected component.

2016-04-18  Yannick Moy  <moy@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Improve
	implementation of Body_Has_SPARK_Mode_On.
	* sem_prag.adb, sem_prag.ads (Get_SPARK_Mode_From_Annotation):
	New function replacing previous Get_SPARK_Mode_From_Pragma, that
	deals also with aspects.
	(Get_SPARK_Mode_Type): Make function internal again.
	* inline.adb, sem_ch7.adb, sem_util.adb: Use new
	Get_SPARK_Mode_From_Annotation.

From-SVN: r235116
2016-04-18 12:24:03 +02:00
Hristian Kirtchev 4179af278f contracts.adb (Analyze_Object_Contract): Update references to SPARK RM.
2016-04-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* contracts.adb (Analyze_Object_Contract): Update references to
	SPARK RM.
	* freeze.adb (Freeze_Entity): Update references to SPARK RM.
	* ghost.adb Add with and use clauses for Sem_Disp.
	(Check_Ghost_Derivation): Removed.
	(Check_Ghost_Overriding):
	Reimplemented.	(Check_Ghost_Policy): Update references to SPARK RM.
	(Check_Ghost_Primitive): New routine.
	(Check_Ghost_Refinement): New routine.	(Is_OK_Ghost_Context):
	Update references to SPARK RM.	(Is_OK_Pragma): Update references
	to SPARK RM. Predicates are now a valid context for references
	to Ghost entities.
	* ghost.ads (Check_Ghost_Derivation): Removed.
	(Check_Ghost_Overriding): Update the comment on usage.
	(Check_Ghost_Primitive): New routine.
	(Check_Ghost_Refinement): New routine.
	(Remove_Ignored_Ghost_Code): Update references to SPARK RM.
	* sem_ch3.adb (Process_Full_View): Remove the now obsolete check
	related to Ghost derivations
	* sem_ch6.adb (Check_Conformance): Remove now obsolete check
	related to the convention-like behavior of pragma Ghost.
	(Check_For_Primitive_Subprogram): Verify that the Ghost policy
	of a tagged type and its primitive agree.
	* sem_prag.adb (Analyze_Pragma): Update references to SPARK
	RM. Move the verification of pragma Assertion_Policy Ghost
	to the proper place. Remove the now obsolete check related
	to Ghost derivations.
	(Collect_Constituent): Add a call to Check_Ghost_Refinement.
	* sem_res.adb (Resolve_Actuals): Update references to SPARK RM.

From-SVN: r235115
2016-04-18 12:22:13 +02:00
Arnaud Charlet 0d6014fad7 [multiple changes]
2016-04-18  Eric Botcazou  <ebotcazou@adacore.com>

	* layout.adb: Fix more minor typos in comments.

2016-04-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* a-calend.ads, sem_prag.adb, sem_ch6.adb: Minor reformatting.

From-SVN: r235114
2016-04-18 12:19:26 +02:00
Arnaud Charlet 539ca5ec98 [multiple changes]
2016-04-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): In GNATprove
	mode, collect inherited class-wide conditions to generate the
	corresponding pragmas.
	* sem_prag.ads (Build_Pragma_Check_Equivalent): Moved from contracts
	* contracts.adb (Collect_Inherited_Class_Wide_Conditions): New
	procedure for overriding subprograms, used to generate the pragmas
	corresponding to an inherited class- wide pre- or postcondition.
	* sem_prag.adb (Build_Pragma_Check_Equivalent): moved here
	from contracts.adb (Replace_Condition_Entities): Subsidiary
	Build_Pragma_Check_Equivalent, to implement the proper semantics
	of inherited class-wide conditions, as given in AI12-0113.
	(Process_Class_Wide_Condition): Removed.
	(Collect_Inherited_Class_Wide_Conditions): Iterate over pragmas
	in contract of subprogram, to collect inherited class-wide
	conditions.
	(Build_Pragma_Check_Equivalent): Moved to sem_prag.adb

2016-04-18  Yannick Moy  <moy@adacore.com>

	* a-calend.adb (Ada.Calendar): Mark package body as SPARK_Mode Off.
	* a-calend.ads (Ada.Calendar): Mark package spec as
	SPARK_Mode and add synchronous external abstract state Clock_Time.

From-SVN: r235113
2016-04-18 12:17:17 +02:00
Arnaud Charlet fd22e260b5 [multiple changes]
2016-04-18  Yannick Moy  <moy@adacore.com>

	* sem_res.adb (Resolve_Call): Prevent inlining of
	calls inside expression functions.  Factor previous code issuing
	errors to call Cannot_Inline instead, which does appropriate
	processing of message for GNATprove.

2016-04-18  Arnaud Charlet  <charlet@adacore.com>

	* einfo.ads, sem_ch3.adb, sem_ch8.adb, osint-l.adb, rtsfind.adb,
	osint-b.adb: Cleanups.

2016-04-18  Yannick Moy  <moy@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Only create
	body to inline in GNATprove mode when SPARK_Mode On applies to
	subprogram body.
	* sem_prag.adb, sem_prag.ads (Get_SPARK_Mode_Type): Make function
	public.

2016-04-18  Eric Botcazou  <ebotcazou@adacore.com>

	* layout.adb: Fix minor typo in comment.
	* inline.adb: Fix minor pasto.
	* sem_ch12.ads: Fix minor typos in comments.

From-SVN: r235111
2016-04-18 12:02:58 +02:00
Arnaud Charlet 0d66b5969f [multiple changes]
2016-04-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_disp.adb (Check_Dispatching_Call): Major rewriting to
	handle some complex cases of tag indeterminate calls that are
	actuals in other dispatching calls that are themselves tag
	indeterminate.
	(Check_Dispatching_Context): Add parameter to support recursive
	check for an enclosing construct that may provide a tag for a
	tag-indeterminate call.

2016-04-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb (Analyze_Depends_In_Decl_Part):
	Add global variables Task_Input_Seen and Task_Output_Seen.
	(Analyze_Global_Item): Detect an illegal use of the current
	instance of a single protected/task type in a global annotation.
	(Analyze_Input_Output): Inputs and output related to the current
	instance of a task unit are now tracked.
	(Check_Usage): Require
	the presence of the current instance of a task unit only when
	one input/output is available.	(Current_Task_Instance_Seen):
	New routine.
	(Is_CCT_Instance): New parameter profile. Update
	the comment on usage. The routine now properly recognizes several
	cases related to single protected/task types.

2016-04-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* freeze.adb (Freeze_Entity): Use New_Freeze_Node
	to create a brand new freeze node. This handles a case where an
	ignored Ghost context is freezing something which is not ignored
	Ghost and whose freeze node should not be removed from the tree.
	(New_Freeze_Node): New routine.

2016-04-18  Jerome Lambourg  <lambourg@adacore.com>

	* sigtramp.h (__gnat_set_is_vxsim) New function to
	tell sigtramp-vxworks to handle vxsim signal contexts.	*
	sigtramp-vxworks.c (__gnat_sigtramp) Take into account the
	differences in the sigcontext structure between the expected
	regular x86 or x86_64 ones and the ones received in case of
	exexution on the vxworks simulator.
	* init.c: also compute is_vxsim in case of x86_64-vx7 target. Provide
	this information to sigtramp-vxworks.c. Remove the old mechanism for
	vxsim.
	* init-vxsim.c, sigtramp-vxworks-vxsim.c: remove, now obsolete.

2016-04-18  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch3.adb (Inline_Init_Proc): New function returning
	whether the initialization procedure of a type should be
	inlined.  Return again True for controlled type themselves.
	(Build_Array_Init_Proc): Call it to set Set_Is_Inlined on Init_Proc.
	(Build_Record_Init_Proc): Likewise.

From-SVN: r235110
2016-04-18 11:57:49 +02:00
Arnaud Charlet a86c18d9fa gnatvsn.ads (Library_Version): Bump to 7.
* gnatvsn.ads (Library_Version): Bump to 7.

From-SVN: r235109
2016-04-18 11:54:17 +02:00