Commit Graph

155926 Commits

Author SHA1 Message Date
Jason Merrill
e76b247239 PR c++/82053 - ICE with default argument in lambda in template
* pt.c (tsubst_arg_types): Substitute default arguments for lambdas
	in templates.
	(retrieve_specialization): Use lambda_fn_in_template_p.
	* cp-tree.h: Declare it.

From-SVN: r251826
2017-09-06 21:02:46 -04:00
GCC Administrator
f4942d7956 Daily bump.
From-SVN: r251825
2017-09-07 00:16:20 +00:00
Jason Merrill
7ab50e1794 PR c++/82070 - error with nested lambda capture
* pt.c (tsubst_expr) [DECL_EXPR]: Register capture proxies with
	register_local_specialization.

From-SVN: r251819
2017-09-06 15:36:48 -04:00
Michael Meissner
bbd3510114 rs6000-cpus.def (OTHER_VSX_VECTOR_MASKS): Delete OPTION_MASK_FLOAT128_KEYWORD.
[gcc]
2017-09-07  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000-cpus.def (OTHER_VSX_VECTOR_MASKS): Delete
	OPTION_MASK_FLOAT128_KEYWORD.
	(POWERPC_MASKS): Likewise.
	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Delete
	support for the -mfloat128-type option, and make -mfloat128
	default on PowerPC Linux systems.  Define or undefine
	__FLOAT128__ and  __FLOAT128_HARDWARE__ for the current options.
	Define __float128 to be __ieee128 if IEEE 128-bit support is
	enabled, or undefine it.
	(rs6000_cpu_cpp_builtins): Delete defining __FLOAT128__ here.
	Delete defining __FLOAT128_TYPE__.
	* config/rs6000/rs6000.opt (x_TARGET_FLOAT128_TYPE): Delete the
	-mfloat128-type option and make -mfloat128 default on PowerPC
	Linux systems.
	(TARGET_FLOAT128_TYPE): Likewise.
	(-mfloat128-type): Likewise.
	* config/rs6000/rs6000.c (rs6000_option_override_internal):
	Delete the -mfloat128-type option and make -mfloat128 default on
	PowerPC Linux systems.  Always use __ieee128 to be the keyword for
	the IEEE 128-bit type, and map __float128 to __ieee128 if IEEE
	128-bit floating point is enabled.  Change tests from using
	-mfloat128-type to -mfloat128.
	(rs6000_mangle_type): Use the correct mangling for the __float128
	type even if normal long double is restricted to 64-bits.
	(floatn_mode): Enable the _Float128 type by default on VSX Linux
	systems.
	* config/rs6000/rs6000.h (MASK_FLOAT128_TYPE): Delete.
	(MASK_FLOAT128_KEYWORD): Define new shortcut macro.
	(RS6000BTM_FLOAT128): Define in terms of -mfloat128, not
	-mfloat128-type.
	* doc/invoke.texi (RS/6000 and PowerPC Options): Update
	documentation for -mfloat128.

[gcc/testsuite]
2017-09-07  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* gcc.target/powerpc/float128-1.c: Update options to know that
	-mfloat128 is now on by default on PowerPC VSX systems.  Remove
	-static-libgcc option which is no longer needed.  Use -mvsx or
	-mpower9-vector to enable VSX or hardware IEEE support, rather
	than specifying a particular CPU.
	* gcc.target/powerpc/float128-2.c: Likewise.
	* gcc.target/powerpc/float128-cmp.c: Likewise.
	* gcc.target/powerpc/float128-complex-1.c: Likewise.
	* gcc.target/powerpc/float128-complex-2.c: Likewise.
	* gcc.target/powerpc/float128-hw.c: Likewise.
	* gcc.target/powerpc/float128-mix.c: Likewise.
	* gcc.target/powerpc/float128-type-1.c: Likewise.
	* gcc.target/powerpc/float128-type-2.c: Likewise.
	* gcc.target/powerpc/float128-3.c: New test.
	* gcc.target/powerpc/float128-4.c: Likewise.
	* gcc.target/powerpc/float128-5.c: Likewise.

From-SVN: r251814
2017-09-06 17:41:08 +00:00
Eric Botcazou
3f8cf83477 decl.c (warn_on_field_placement): Issue the warning only if the record type itself comes from source.
* gcc-interface/decl.c (warn_on_field_placement): Issue the warning
	only if the record type itself comes from source.

From-SVN: r251812
2017-09-06 17:22:40 +00:00
Wilco Dijkstra
260da99192 PR78468 - add alloca alignment test
Add an alignment test to check that aligned alloca's really do get
correctly aligned.  Some targets may not ensure SP is always a multiple
of STACK_BOUNDARY (particularly with outgoing arguments), which means
aligned alloca does not get correctly aligned.  This can be fixed either
by aligning the outgoing arguments or setting STACK_BOUNDARY correctly.

    testsuite/
        PR middle-end/78468
	* gcc.dg/pr78468.c: Add alignment test.

From-SVN: r251811
2017-09-06 16:34:54 +00:00
Olivier Hainque
4a40b308ef config.gcc (powerpc-wrs-vxworksspe): Now match as vxworks*spe.
2017-09-06  Olivier Hainque  <hainque@adacore.com>

	* config.gcc (powerpc-wrs-vxworksspe): Now match as vxworks*spe.

From-SVN: r251809
2017-09-06 15:51:51 +00:00
Nathan Sidwell
b991151b28 name-lookup.h (lookup_field_1): Delete.
* name-lookup.h (lookup_field_1): Delete.
	(get_class_binding_direct, get_class_binding): Add type_or_fns arg.
	* name-lookup.c	(lookup_field_1): make static
	(method_vec_binary_search, method_vec_linear_search): New.  Broken
	out of ...
	(get_class_binding_direct): ... here.  Add TYPE_OR_FNS argument.
	Do complete search of this level.
	(get_class_binding): Adjust.
	* decl.c (reshape_init_class): Call get_class_binding.
	* search.c (lookup_field_r): Move field searching into
	get_class_binding_direct.

From-SVN: r251808
2017-09-06 15:32:46 +00:00
Arnaud Charlet
ec7f007c77 [multiple changes]
2017-09-06  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch5.adb: Minor reformatting and a typo fix

2017-09-06  Arnaud Charlet  <charlet@adacore.com>

	* sinput-l.ads: minor remove extra period at the end of comment

2017-09-06  Arnaud Charlet  <charlet@adacore.com>

	* sem_prag.adb (Add_Item_To_Name_Buffer): remove support for
	E_Discriminant.
	(Find_Role): remove support for E_Discriminant.

2017-09-06  Javier Miranda  <miranda@adacore.com>

	* exp_ch6.adb (Expand_Simple_Function_Return):
	Add missing implicit type conversion to force displacement of the
	"this" pointer.

From-SVN: r251807
2017-09-06 17:21:11 +02:00
Wish Wu
f6e50a7d64 asan.c (initialize_sanitizer_builtins): Add BT_FN_VOID_UINT8_UINT8...
* asan.c (initialize_sanitizer_builtins): Add
	BT_FN_VOID_UINT8_UINT8, BT_FN_VOID_UINT16_UINT16,
	BT_FN_VOID_UINT32_UINT32, BT_FN_VOID_UINT64_UINT64,
	BT_FN_VOID_FLOAT_FLOAT, BT_FN_VOID_DOUBLE_DOUBLE and
	BT_FN_VOID_UINT64_PTR variables.
	* builtin-types.def (BT_FN_VOID_UINT8_UINT8): New fn type.
	(BT_FN_VOID_UINT16_UINT16): Likewise.
	(BT_FN_VOID_UINT32_UINT32): Likewise.
	(BT_FN_VOID_FLOAT_FLOAT): Likewise.
	(BT_FN_VOID_DOUBLE_DOUBLE): Likewise.
	(BT_FN_VOID_UINT64_PTR): Likewise.
	* common.opt (flag_sanitize_coverage): New variable.
	(fsanitize-coverage=trace-pc): Remove.
	(fsanitize-coverage=): Add.
	* flag-types.h (enum sanitize_coverage_code): New enum.
	* fold-const.c (fold_range_test): Disable non-short-circuit
	optimization if flag_sanitize_coverage.
	(fold_truth_andor): Likewise.
	* tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
	* opts.c (COVERAGE_SANITIZER_OPT): Define.
	(coverage_sanitizer_opts): New array.
	(get_closest_sanitizer_option): Add OPTS argument, handle also
	OPT_fsanitize_coverage_.
	(parse_sanitizer_options): Adjusted to also handle
	OPT_fsanitize_coverage_.
	(common_handle_option): Add OPT_fsanitize_coverage_.
	* sancov.c (instrument_comparison, instrument_switch): New function.
	(sancov_pass): Add trace-cmp support.
	* sanitizer.def (BUILT_IN_SANITIZER_COV_TRACE_CMP1,
	BUILT_IN_SANITIZER_COV_TRACE_CMP2, BUILT_IN_SANITIZER_COV_TRACE_CMP4,
	BUILT_IN_SANITIZER_COV_TRACE_CMP8,
	BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP1,
	BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP2,
	BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP4,
	BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP8,
	BUILT_IN_SANITIZER_COV_TRACE_CMPF, BUILT_IN_SANITIZER_COV_TRACE_CMPD,
	BUILT_IN_SANITIZER_COV_TRACE_SWITCH): New builtins.
	* doc/invoke.texi: Document -fsanitize-coverage=trace-cmp.

	* gcc.dg/sancov/cmp0.c: New test.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r251801
2017-09-06 16:30:46 +02:00
Richard Earnshaw
1816130969 [arm] Improve error checking in parsecpu.awk
This patch adds a bit more error checking to parsecpu.awk to ensure
that statements are not missing arguments or have excess arguments
beyond those permitted.  It also slightly improves the handling of
errors so that we terminate properly if parsing fails and be as
helpful as we can while in the parsing phase.

	* config/arm/parsecpu.awk (fatal): Note that we've encountered an
	error.  Only quit immediately if parsing is complete.
	(BEGIN): Initialize fatal_err and parse_done.
	(begin fpu, end fpu): Check number of arguments.
	(begin arch, end arch): Likewise.
	(begin cpu, end cpu): Likewise.
	(cname, tune for, tune flags, architecture, fpu, option): Likewise.
	(optalias): Likewise.

From-SVN: r251800
2017-09-06 13:42:54 +00:00
Richard Earnshaw
92f6433e85 [arm] auto-generate arm-isa.h from CPU descriptions
This patch autogenerates arm-isa.h from new entries in arm-cpus.in.
This has the primary advantage that it makes the description file more
self-contained, but it also solves the 'array dimensioning' problem
that Tamar recently encountered.  It adds two new constructs to
arm-cpus.in: features and fgroups.  Fgroups are simply a way of naming
a group of feature bits so that they can be referenced together.  We
follow the convention that feature bits are all lower case, while
fgroups are (predominantly) upper case.  This is helpful as in some
contexts they share the same namespace.  Most of the minor changes in
this patch are related to adopting this new naming convention.

	* config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
	* config/arm/arm-isa.h: Delete.  Move definitions to ...
	* arm-cpus.in: ... here.  Use new feature and fgroup values.
	* config/arm/arm.c (arm_option_override): Use lower case for feature
	bit names.
	* config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
	(TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
	* config/arm/parsecpu.awk (END): Add new command 'isa'.
	(isa_pfx): Delete.
	(print_isa_bits_for): New function.
	(gen_isa): New function.
	(gen_comm_data): Use print_isa_bits_for.
	(define feature): New keyword.
	(define fgroup): New keyword.
	* config/arm/t-arm (OPTIONS_H_EXTRA): Add arm-isa.h
	(arm-isa.h): Add rule to generate file.
	* common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
	case for feature bit names.

From-SVN: r251799
2017-09-06 13:42:46 +00:00
Richard Biener
db04bcf262 tree-ssa-pre.c (NECESSARY): Remove.
2017-09-06  Richard Biener  <rguenther@suse.de>

	* tree-ssa-pre.c (NECESSARY): Remove.
	(create_expression_by_pieces): Do not touch pass-local flags.
	(insert_into_preds_of_block): Likewise.
	(do_pre_regular_insertion): Likewise.
	(eliminate_insert): Likewise.
	(eliminate_dom_walker::before_dom_children): Likewise.
	(fini_eliminate): Do not look at inserted_exprs.
	(mark_operand_necessary): Remove.
	(remove_dead_inserted_code): Replace with simple work-list
	algorithm based on inserted_exprs and SSA uses.
	(pass_pre::execute): Re-order fini_eliminate and
	remove_dead_inserted_code.

From-SVN: r251798
2017-09-06 13:26:54 +00:00
Arnaud Charlet
c48e0f2723 [multiple changes]
2017-09-06  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch3.adb, sem_aux.adb, sem_res.adb: Minor reformatting.

2017-09-06  Yannick Moy  <moy@adacore.com>

	* sem_ch12.adb (Analyze_Instance_And_Renamings): Refactor to set
	global variable Ignore_SPARK_Mode_Pragmas_In_Instance only once.

2017-09-06  Bob Duff  <duff@adacore.com>

	* sem_ch8.adb: Change Assert to be consistent with
	other similar ones.

2017-09-06  Bob Duff  <duff@adacore.com>

	* binde.adb (Find_Elab_Order): Do not run Elab_Old unless
	requested. Previously, the -do switch meant "run Elab_New and
	Elab_Old and use the order chosen by Elab_Old, possibly with
	debugging printouts comparing the two orders."	Now it means
	"do not run Elab_New." This is of use if there are bugs that
	cause Elab_New to crash.
	(Elab_Position, Num_Chosen): Change type to Nat, to avoid various
	type conversions.
	* ali.ads (Elab_Position): Change type to Nat, to avoid various
	type conversions.

2017-09-06  Arnaud Charlet  <charlet@adacore.com>

	* sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context): Fix
	reference to SPARK RM.

2017-09-06  Eric Botcazou  <ebotcazou@adacore.com>

	* layout.adb: Use SSU short hand consistently throughout the file.

2017-09-06  Eric Botcazou  <ebotcazou@adacore.com>

	* freeze.adb (Freeze_Record_Type)
	<Sized_Component_Total_Round_RM_Size>: New local variable to
	accumulate the rounded RM_Size of components.  Update it for
	every component whose RM_Size is statically known.  Add missing
	guard to check that bit packing is really required before issuing
	the error about packing.  Swap condition for clarity's sake.
	* sem_prag.adb (Usage_Error): fix reference to
	SPARK RM in comment

2017-09-06  Fedor Rybin  <frybin@adacore.com>

	* makeutl.adb, makeutl.ads, mlib.adb, mlib.ads, mlib-fil.adb,
	mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb, mlib-tgt.ads,
	mlib-tgt-specific.adb, mlib-tgt-specific.ads,
	mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb,
	mlib-tgt-specific-hpux.adb, mlib-tgt-specific-linux.adb,
	mlib-tgt-specific-mingw.adb, mlib-tgt-specific-solaris.adb,
	mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb, mlib-utl.adb,
	mlib-utl.ads, prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
	prj-attr-pm.adb, prj-attr-pm.ads, prj-com.ads, prj-conf.adb,
	prj-conf.ads, prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
	prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads, prj-makr.adb,
	prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
	prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads, prj-proc.adb,
	prj-proc.ads, prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
	prj-util.adb, prj-util.ads, sinput-p.adb, sinput-p.ads: Remove obsolete
	project manager sources.

2017-09-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Assigment): If the left-hand side is an
	entity of a mutable type and the right-hand side is a conditional
	expression, resolve the alternatives of the conditional using
	the base type of the target entity, because the alternatives
	may have distinct subtypes. This is particularly relevant if
	the alternatives are aggregates.

From-SVN: r251797
2017-09-06 15:21:31 +02:00
Olivier Hainque
a87169db7d vxworks.h (VXCPU_FOR_8548): Correct definition for VxWorks 7.
2017-09-06  Olivier Hainque  <hainque@adacore.com>

	* config/powerpcspe/vxworks.h (VXCPU_FOR_8548): Correct definition
	for VxWorks 7.  Adjust surrounding comments.

From-SVN: r251796
2017-09-06 13:21:10 +00:00
Nathan Sidwell
940ab2e08e class.c (warn_hidden): Don't barf on non-functions.
* class.c (warn_hidden): Don't barf on non-functions.
	* decl2.c (check_classfn): Likewise.  Check template match earlier.

From-SVN: r251795
2017-09-06 13:19:49 +00:00
Nathan Sidwell
1887fb461b name-lookup.c (count_fields): Rename to ...
* name-lookup.c (count_fields): Rename to ...
	(count_class_fields): ... here.  Take a class, don't count
	NULL-named fields.
	(add_fields_to_record_type): Rename to ...
	(field_vec_append_class_fields): ... here.  Take a class, don't
	add NULL-named fields.
	(add_enum_fields_to_record_type): Rename to ...
	(field_vec_append_enum_values): ... here.
	(set_class_bindings): Adjust, assert we added expected number.
	(insert_late_enum_def_bindings): Reimplement.  Create vector if
	there are now sufficient entries.

From-SVN: r251794
2017-09-06 13:14:16 +00:00
Arnaud Charlet
4269edf01c [multiple changes]
2017-09-06  Ed Schonberg  <schonberg@adacore.com>

	* checks.adb (Apply_Predicate_Check): If the expression is an
	aggregate that is the RHS of an assignment, apply the check to
	the LHS after the assignment, rather than to the aggregate. This
	is more efficient than creating a temporary for the aggregate,
	and prevents back-end crashes when the aggregate includes a
	dynamic "others' association.

2017-09-06  Yannick Moy  <moy@adacore.com>

	* sem_ch12.adb (Analyze_Instance_And_Renamings):
	Set variable to ignore SPARK_Mode in instance before the analysis
	of the generated package declaration.

2017-09-06  Yannick Moy  <moy@adacore.com>

	* sem_res.adb (Resolve_Call): Do not issue a
	message for calls inside expression function, unless body was
	seen and is candidate for inlining.

2017-09-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_aux.adb (Is_Generic_Formal): Handle properly formal packages.
	* sem_ch3.adb (Analyze_Declarations): In a generic subprogram
	body. do not freeze the formals of the generic unit.

2017-09-06  Gary Dismukes  <dismukes@adacore.com>

	* errout.adb (Error_Msg): Separate the
	treatment for warning vs. style messages in inlinings and
	instantiations. Prevents blowups on calls to Warn_Insertion for
	style messages, which should not be called in that case because
	Warning_Msg_Char is not set.

2017-09-06  Justin Squirek  <squirek@adacore.com>

	* sem_prag.adb (Check_VFA_Conflicts): Created
	to group all Volatile_Full_Access checks relating to other
	representation pragmas (Mark_Component_Or_Object): Created
	to centeralize the flagging of attributes for the record type
	component case, a pragma applied individually to a component, and
	the object case.
	(Process_Atomic_Independent_Shared_Volatile):
	Add propagation of certain pragmas to record components and move
	evaluation of VFA checks

From-SVN: r251793
2017-09-06 14:58:27 +02:00
Richard Biener
f6bd566475 20050604-1.c: Adjust to be a better test for correctness of vector lowering.
2017-09-06  Richard Biener  <rguenther@suse.de>

	* gcc.c-torture/execute/20050604-1.c: Adjust to be a better
	test for correctness of vector lowering.

From-SVN: r251792
2017-09-06 12:57:32 +00:00
Richard Biener
1ffbb0160d 2017-09-06 Richard Biener <rguenther@suse.de>
* gimple-ssa-strength-reduction.c
	(find_candidates_dom_walker::before_dom_children): Also allow
	pointer types.

From-SVN: r251791
2017-09-06 12:55:13 +00:00
Richard Biener
796bd467fd re PR target/82108 (Wrong vectorized code generated for x86_64)
2017-09-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/82108
	* tree-vect-stmts.c (vectorizable_load): Fix pointer adjustment
	for gap in the non-permutation SLP case.

	* gcc.dg/vect/pr82108.c: New testcase.

From-SVN: r251790
2017-09-06 12:31:52 +00:00
Arnaud Charlet
5e9cb40461 [multiple changes]
2017-09-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Check_Postcondition_Use_In_Inlined_Subprogram):
	Do not warn on conditions that are not obeyed for Inline_Always
	subprograms, when assertions are not enabled.

2017-09-06  Arnaud Charlet  <charlet@adacore.com>

	* sem_util.adb (Unique_Entity): For abstract states return their
	non-limited view.

2017-09-06  Bob Duff  <duff@adacore.com>

	* sem_ch12.adb (Copy_Generic_Node): When we copy a node
	that is a proper body corresponding to a stub, we defer the
	adjustment of the sloc until after the correct adjustment has
	been computed. Otherwise, Adjust_Instantiation_Sloc will ignore
	the adjustment, because it will be outside the range in (the old,
	incorrect) S_Adjustment.
	* inline.adb: Use named notation for readability and uniformity.
	* sinput-l.adb: Minor improvements to debugging output printed
	for Debug_Flag_L.
	* sinput-l.ads (Create_Instantiation_Source): Minor comment
	correction.

2017-09-06  Vincent Celier  <celier@adacore.com>

	* make.adb: Do not invoke gprbuild for -bargs -P.

2017-09-06  Sylvain Dailler  <dailler@adacore.com>

	* sem_eval.adb (Compile_Time_Known_Value_Or_Aggr): Adding a
	case when Op is of kind N_Qualified_Expression. In this case,
	the function is called recursively on the subexpression like in
	other cases.
	* make.adb: Minor reformatting

2017-09-06  Justin Squirek  <squirek@adacore.com>

	* einfo.adb (Set_Linker_Section_Pragma): Modify
	Set_Linker_Section_Pragma to be consistant with the "getter"
	Linker_Section_Pragma.
	* exp_ch5.adb (Expand_Formal_Container_Loop): Add proper error
	checking for container loops so that the index cursor is not
	directly changable by the user with the use of E_Loop_Parameter.
	* sem_ch5.adb (Analyze_Block_Statement): Revert previous change.
	* sem_warn.adb (Check_References): Revert previous change.

From-SVN: r251789
2017-09-06 14:27:15 +02:00
Eric Botcazou
c1a42658e7 trans.c (gnat_to_gnu): Try again to translate the prefix after the field if it is incomplete.
2017-09-06  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (gnat_to_gnu) <N_Selected_Component>: Try
	again to translate the prefix after the field if it is incomplete.

From-SVN: r251788
2017-09-06 14:23:36 +02:00
Vincent Celier
8a139da059 Makefile.in: Remove the Project Manager from the GNAT tools.
2017-09-06  Vincent Celier  <celier@adacore.com>

        * gcc-interface/Makefile.in: Remove the Project Manager from the GNAT
	tools.

From-SVN: r251787
2017-09-06 14:18:24 +02:00
Arnaud Charlet
315f0c424b [multiple changes]
2017-09-06  Bob Duff  <duff@adacore.com>

	* exp_util.adb (Is_Displace_Call): Make sure it works for indirect
	calls and the like.

2017-09-06  Yannick Moy  <moy@adacore.com>

	* sem_prag.adb (Analyze_Depends_Global): Reinforce test on object
	declarations to only consider valid uses of Global/Depends those on
	single concurrent objects.

2017-09-06  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch13.adb (Check_Record_Representation_Clause): Give an
	error as soon as one of the specified components overlaps the
	parent field.

2017-09-06  Arnaud Charlet  <charlet@adacore.com>

	* sem_prag.ads: minor fix typo in comment.

2017-09-06  Justin Squirek  <squirek@adacore.com>

	* sem_ch5.adb (Analyze_Block_Statement): Verify a block comes
	from source before checking source references.
	* sem_warn.adb (Check_References): Add check for internal block
	before recursing.

2017-09-06  Vincent Celier  <celier@adacore.com>

	* make.adb, makeusg.adb, switch-m.adb, switch-m.ads, make_util.adb,
	make_util.ads, sinput.adb, sinput.ads, clean.adb, gnatls.adb,
	gnatname.adb: Remove the Project Manager from the GNAT tools.

2017-09-06  Bob Duff  <duff@adacore.com>

	* sem_util.ads: Minor comment fix.

2017-09-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Analyze_Associations, case of Formal_Package):
	Generate a freeze node for the actual of a formal package, if
	the actual is declared in the same unit and has a corresponding
	body, to prevent the current instance from being frozen before
	the actual is.

From-SVN: r251786
2017-09-06 14:16:32 +02:00
Arnaud Charlet
5efb89d0e1 [multiple changes]
2017-09-06  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch7.adb (Entity_Table_Size): Change to nearest prime number.

2017-09-06  Yannick Moy  <moy@adacore.com>

	* sem_warn.adb: Minor refactoring.

2017-09-06  Ed Schonberg  <schonberg@adacore.com>

	* einfo.ads, einfo.adb (Get_Classwwide_Pragma): New utility,
	to retrieve the inherited classwide precondition/postcondition
	of a subprogram.
	* freeze.adb (Freeze_Entity): Use Get_Classwide_Pragma when
	freezing a subprogram, to complete the generation of the
	corresponding checking code.

2017-09-06  Eric Botcazou  <ebotcazou@adacore.com>

	* inline.adb (Analyze_Inlined_Bodies): Remove restriction on
	loading of parent body with a with clause for the main unit.
	* gcc-interface/decl.c (defer_limited_with_list): Document
	new usage.
	(gnat_to_gnu_entity) <E_Access_Type>: Handle
	completed Taft Amendment types declared in external units like
	types from limited with clauses.  Adjust final processing of
	defer_limited_with_list accordingly.

2017-09-06  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_util.adb (Is_Controlled_Indexing): New routine.
	(Is_Displace_Call): Use routine Strip to remove indirections.
	(Is_Displacement_Of_Object_Or_Function_Result): Code clean up. Add a
	missing case of controlled generalized indexing.
	(Is_Source_Object): Use routine Strip to remove indirections.
	(Strip): New routine.

2017-09-06  Bob Duff  <duff@adacore.com>

	* sysdep.c (__gnat_has_cap_sys_nice): If HAVE_CAPABILITY is defined,
	we include the proper header. Otherwise, we just declare the necessary
	things from the capabilities library. This is so we can build on
	machines without that library, while still enabling that library.
	At run time, we're using weak symbols, so __gnat_has_cap_sys_nice will
	simply return 0 if the library is not present, or not included
	in the link.

2017-09-06  Pierre-Marie de Rodat  <derodat@adacore.com>

	* exp_dbug.adb (Debug_Renaming_Declaration): Do not create an encoding
	for renamings that involve function calls in prefix form.

2017-09-06  Bob Duff  <duff@adacore.com>

	* sem_ch3.adb (Analyze_Subtype_Declaration):
	Set Has_Delayed_Freeze on a subtype of an incomplete type.

2017-09-06  Pierre-Marie de Rodat  <derodat@adacore.com>

	* par_sco.adb (Extend_Statement_Sequence): When the accept statement
	has no parameter specification and no entry index, use the entry name
	as the end of the generated SCO statement.

From-SVN: r251785
2017-09-06 14:05:48 +02:00
Steve Baird
643827e990 exp_util.adb (Side_Effect_Free): For CodePeer (only) treat uses of 'Image and related attributes as having side...
2017-09-06  Steve Baird  <baird@adacore.com>

	* exp_util.adb (Side_Effect_Free): For CodePeer (only) treat
	uses of 'Image and related attributes as having side effects in
	order to avoid replicating such uses.
	* pprint.ads (Expression_Image) Add new generic formal flag
	Hide_Temp_Derefs.  The flag defaults to False; CodePeer will
	(eventually) override the default.
	* pprint.adb (Expression_Image) If the new flag is set, then
	suppress the ".all" suffix when displaying a dereference whose
	prefix is a use of a value-capturing compiler temp of the sort
	generated by Expr_Util.Remove_Side_Effects .
	* exp_attr.adb, g-catiio.adb, inline.adb, sem_attr.adb, sem_ch13.adb,
	sem_ch7.adb, sem_dim.adb, sem_util.adb, sem_util.ads, sem_warn.adb:
	Minor reformatting.
	* inline.adb: Minor wording change.

From-SVN: r251784
2017-09-06 14:01:13 +02:00
Arnaud Charlet
66f95f6045 [multiple changes]
2017-09-06  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch7.adb: Update comment.

2017-09-06  Yannick Moy  <moy@adacore.com>

	* einfo.adb, einfo.ads (Is_Subprogram_Or_Entry): New predicate.
	* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Use new function.
	* sem_util.adb, sem_util.ads (Within_Protected_Type): Renaming
	with slight modification from Is_Subp_Or_Entry_Inside_Protected,
	so that applies to any entity.

2017-09-06  Yannick Moy  <moy@adacore.com>

	* sem_ch3.adb (Derived_Type_Declaration): Use
	Incomplete_Or_Partial_View rather than local Find_Partial_View.

2017-09-06  Javier Miranda  <miranda@adacore.com>

	* g-catiio.ads, g-catiio.adb (Value): Extended to parse an UTC time
	following ISO-8861.

2017-09-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_dim.adb (Analyze_Dimension): In an instance, a type
	conversion takes its dimensions from the expression, not from
	the context type.
	(Dimensions_Of_Operand): Ditto.

2017-09-06  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch6.adb (Expand_Call_Helper): Do not optimize calls to
	null procedures when GNAT coverage is used, so that their (empty)
	bodies are properly covered.

2017-09-06  Bob Duff  <duff@adacore.com>

	* sem_ch13.adb (Resolve_Aspect_Expressions): If
	the entity is a type with discriminants, make the discriminants
	directly visible in aspect clauses.

2017-09-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Resolve_Arithmentic_Op): If both operands are
	Universal_Real and the context is a floating-point type, resolve
	both operands to the target type.

From-SVN: r251783
2017-09-06 13:56:31 +02:00
Arnaud Charlet
7ec25b2bf1 [multiple changes]
2017-09-06  Hristian Kirtchev  <kirtchev@adacore.com>

	* a-comlin.adb, exp_aggr.adb, exp_ch6.adb, frontend.adb, gnatbind.adb,
	sem_ch3.adb, sem_util.adb: Minor reformatting.

2017-09-06  Yannick Moy  <moy@adacore.com>

	* freeze.adb (Check_Inherited_Conditions): Rewriting
	of inherited preconditions and postconditions should only occur
	in GNATprove mode, that is, when GNATprove_Mode is True, not to
	be confused with SPARK_Mode being On.

2017-09-06  Yannick Moy  <moy@adacore.com>

	* sem_warn.adb (Check_References): Take into
	account possibility of attribute reference as original node.

2017-09-06  Yannick Moy  <moy@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): Protect against invalid
	use of attribute.

2017-09-06  Eric Botcazou  <ebotcazou@adacore.com>

	* inline.adb (Split_Unconstrained_Function): Also set Is_Inlined
	on the procedure created to encapsulate the body.
	* sem_ch7.adb: Add with clause for GNAT.HTable.
	(Entity_Table_Size): New constant.
	(Entity_Hash): New function.
	(Subprogram_Table): New instantiation of GNAT.Htable.Simple_HTable.
	(Is_Subprogram_Ref): Rename into...
	(Scan_Subprogram_Ref): ...this. Record references to subprograms in
	the table instead of bailing out on them. Scan the value of constants
	if it is not known at compile time.
	(Contains_Subprograms_Refs): Rename into...
	(Scan_Subprogram_Refs): ...this.
	(Has_Referencer): Scan the body of all inlined subprograms. Reset the
	Is_Public flag on subprograms if they are not actually referenced.
	(Hide_Public_Entities): Beef up comment on the algorithm.
	Reset the table of subprograms on entry.

From-SVN: r251781
2017-09-06 13:52:28 +02:00
Nathan Sidwell
527b7b1957 name-lookup.h (lookup_fnfields_slot_nolazy, [...]): Rename to ...
* name-lookup.h (lookup_fnfields_slot_nolazy,
	lookup_fnfields_slot): Rename to ...
	(get_class_binding_direct, get_class_binding): ... here.
	* name-lookup.c (lookup_fnfields_slot_nolazy,
	lookup_fnfields_slot): Rename to ...
	(get_class_binding_direct, get_class_binding): ... here.
	* cp-tree.h (CLASSTYPE_CONSTRUCTORS, CLASSTYPE_DESTRUCTOR): Adjust.
	* call.c (build_user_type_conversion_1): Adjust.
	(has_trivial_copy_assign_p): Adjust.
	(has_trivial_copy_p): Adjust.
	* class.c (get_basefndecls) Adjust.
	(vbase_has_user_provided_move_assign) Adjust.
	(classtype_has_move_assign_or_move_ctor_p): Adjust.
	(type_build_ctor_call, type_build_dtor_call): Adjust.
	* decl.c (register_dtor_fn): Adjust.
	* decl2.c (check_classfn): Adjust.
	* pt.c (retrieve_specialization): Adjust.
	(check_explicit_specialization): Adjust.
	(do_class_deduction): Adjust.
	* search.c (lookup_field_r): Adjust.
	(look_for_overrides_here, lookup_conversions_r): Adjust.
	* semantics.c (classtype_has_nothrow_assign_or_copy_p): Adjust.
	* tree.c (type_has_nontrivial_copy_init): Adjust.
	* method.c (lazily_declare_fn): Adjust comment.

From-SVN: r251780
2017-09-06 11:17:54 +00:00
Arnaud Charlet
b276ab7a45 [multiple changes]
2017-09-06  Yannick Moy  <moy@adacore.com>

	* inline.adb: Add comments to Can_Be_Inlined_In_GNATprove_Mode.

2017-09-06  Javier Miranda  <miranda@adacore.com>

	* exp_aggr.adb (Component_Not_OK_For_Backend): The C backend
	cannot handle a type conversion of an array as an aggregate
	component.

2017-09-06  Bob Duff  <duff@adacore.com>

	* g-comlin.adb (Try_Help): Remove ".exe" so we
	get the same results on windows and unix.

2017-09-06  Justin Squirek  <squirek@adacore.com>

	* exp_imgv.adb (Expand_Image_Attribute),
	(Expand_Wide_Image_Attribute), (Expand_Wide_Wide_Image_Attribute):
	Added case to handle new-style 'Image expansion
	(Rewrite_Object_Image): Moved from exp_attr.adb
	* exp_attr.adb (Expand_N_Attribute_Reference): Modified Image
	attribute cases so that the relevant subprograms in exp_imgv.adb
	handle all expansion.
	(Rewrite_Object_Reference_Image): Moved to exp_imgv.adb
	* sem_attr.adb (Analyze_Attribute): Modified Image attribute
	cases to call common function Analyze_Image_Attribute.
	(Analyze_Image_Attribute): Created as a common path for all
	image attributes (Check_Object_Reference_Image): Removed
	* sem_util.ads, sem_util.adb (Is_Image_Applied_To_Object):
	Removed and refactored into Is_Object_Image (Is_Object_Image):
	Created as a replacement for Is_Image_Applied_To_Object

From-SVN: r251779
2017-09-06 13:02:33 +02:00
Yannick Moy
a9e6f868cb sem_prag.adb (Analyze_Depends_In_Decl_Part): Add continuation message for missing input.
2017-09-06  Yannick Moy  <moy@adacore.com>

	* sem_prag.adb (Analyze_Depends_In_Decl_Part): Add continuation
	message for missing input.

2017-09-06  Yannick Moy  <moy@adacore.com>

	* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Prevent inlining
	of protected subprograms and entries.
	* sem_util.adb, sem_util.ads (Is_Subp_Or_Entry_Inside_Protected):
	New function to detect when a subprogram of entry is defined
	inside a protected object.

From-SVN: r251778
2017-09-06 12:50:12 +02:00
Bob Duff
09b57dfe28 sysdep.c (__gnat_has_cap_sys_nice): New function to determine whether the current process has the CAP_SYS_NICE...
2017-09-06  Bob Duff  <duff@adacore.com>

	* sysdep.c (__gnat_has_cap_sys_nice): New function to determine
	whether the current process has the CAP_SYS_NICE capability.
	* s-taprop-linux.adb (Get_Ceiling_Support): Update this to allow
	ceiling priorities if the current process has the CAP_SYS_NICE
	capability.

From-SVN: r251777
2017-09-06 12:49:05 +02:00
Arnaud Charlet
7d8272552f [multiple changes]
2017-09-06  Bob Duff  <duff@adacore.com>

	* a-comlin.ads, a-comlin.adb (Argument): Move the constraint
	check back to the body, because SPARK is not yet ready for
	"or else raise Constraint_Error".

2017-09-06  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch6.adb (Expand_Call_Helper): Replace call to null
	procedure by a single null statement, after evaluating the
	actuals that require it.

2017-09-06  Javier Miranda  <miranda@adacore.com>

	* exp_aggr.adb (Backend_Processing_Possible.Component_Check):
	Generating C code improve the code that checks the use of nested
	aggregates to initialize object declarations.

2017-09-06  Yannick Moy  <moy@adacore.com>

	* sem_ch3.adb (Derived_Type_Declaration): Detect
	violations of new rule SPARK RM 3.4(1).  Also refactor existing
	check to use the new function Find_Partial_View.

2017-09-06  Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb: gnat ls -V -P... invokes gprls -V -P...	The code
	from the Prj hierarchy has been removed from the GNAT driver.

2017-09-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_type.adb (Interface_Present_In_Ancestor): Within an
	expression function, or within a spec expression (default value,
	etc) a reference to an incomplete type is legal: legality of
	the operation will be checked when some related entity (type,
	object or subprogram) is frozen.

From-SVN: r251776
2017-09-06 12:41:57 +02:00
Arnaud Charlet
a316b3fcd0 [multiple changes]
2017-09-06  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch5.adb, s-diinio.ads, sem_ch4.adb, s-diflio.ads: Minor spelling
	adjustments and a typo fix.

2017-09-06  Yannick Moy  <moy@adacore.com>

	* sem_res.adb (Resolve_Call): Do not issue info
	message about inlining of calls to functions in assertions,
	for functions whose body has not been seen yet.

2017-09-06  Bob Duff  <duff@adacore.com>

	* a-comlin.ads, a-comlin.adb (Argument): Simplify the code, now that
	we can use modern Ada in this package.
	* s-resfil.ads, s-resfil.adb, a-clrefi.ads, a-clrefi.adb:
	Move Ada.Command_Line.Response_File to System.Response_File,
	and make Ada.Command_Line.Response_File into a rename of
	System.Response_File. This is to avoid having gnatbind depend
	Ada.Command_Line, which would damage the bootstrap process now
	that Ada.Command_Line contains modern Ada (the raise expression).
	* gnatbind.adb: Avoid dependence on
	Ada.Command_Line. Depend on System.Response_File instead
	of Ada.Command_Line.Response_File. Change one call to
	Ada.Command_Line.Command_Name to use Fill_Arg.	Change one call
	to Ada.Command_Line.Argument_Count to use Arg_Count.
	* gcc-interface/Make-lang.in, Makefile.rtl: Take note of the new files.

From-SVN: r251775
2017-09-06 12:38:38 +02:00
Bob Duff
9caf55e370 frontend.adb (Frontend): Skip -gnatec=gnat.adc switch, because we've already read gnat.adc by default.
2017-09-06  Bob Duff  <duff@adacore.com>

	* frontend.adb (Frontend): Skip -gnatec=gnat.adc
	switch, because we've already read gnat.adc by default.

2017-09-06  Bob Duff  <duff@adacore.com>

	* exp_ch5.adb (Get_Default_Iterator): Replace
	"Assert(False)" with "return Iter", because if an iterable
	type is derived from a noniterable one, then we won't find an
	overriding or inherited default iterator.

From-SVN: r251774
2017-09-06 12:29:47 +02:00
Arnaud Charlet
6877306fbd [multiple changes]
2017-09-06  Yannick Moy  <moy@adacore.com>

	* sem_warn.adb (Warn_On_Suspicious_Index): Improve warning when the
	literal index used to access a string is null or negative.

2017-09-06  Hristian Kirtchev  <kirtchev@adacore.com>

	* einfo.adb (Status_Flag_Or_Transient_Decl): The attribute is now
	allowed on loop parameters.
	(Set_Status_Flag_Or_Transient_Decl): The attribute is now allowed
	on loop parameters.
	(Write_Field15_Name): Update the output for
	Status_Flag_Or_Transient_Decl.
	* einfo.ads: Attribute Status_Flag_Or_Transient_Decl now applies
	to loop parameters. Update the documentation of the attribute
	and the E_Loop_Parameter entity.
	* exp_ch7.adb (Process_Declarations): Remove the bogus guard
	which assumes that cursors can never be controlled.
	* exp_util.adb (Requires_Cleanup_Actions): Remove the bogus
	guard which assumes that cursors can never be controlled.

From-SVN: r251773
2017-09-06 12:27:22 +02:00
Hristian Kirtchev
c99ab5f932 exp_attr.adb, [...]: Minor reformatting.
2017-09-06  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_attr.adb, sem_util.adb, sem_attr.adb, sem_ch6.adb, sem_ch8.adb,
	sem_warn.adb: Minor reformatting.

From-SVN: r251772
2017-09-06 12:21:28 +02:00
Arnaud Charlet
3c0ae05d9e [multiple changes]
2017-09-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_warn.adb (Warn_On_Overlapping_Actuals): Refine previous
	fix and preserve older GNAT warning on overlapping actuals that
	are not elementary types.

2017-09-06  Justin Squirek  <squirek@adacore.com>

	* sem_attr.adb: Comment correction.

From-SVN: r251771
2017-09-06 12:19:44 +02:00
Arnaud Charlet
62bb542316 [multiple changes]
2017-09-06  Gary Dismukes  <dismukes@adacore.com>

	* sem_util.adb: Minor reformatting.

2017-09-06  Yannick Moy  <moy@adacore.com>

	* a-comlin.ads (Argument): Add precondition for analysis.

From-SVN: r251770
2017-09-06 12:18:12 +02:00
Arnaud Charlet
95edbf5e5f Minor reformatting.
From-SVN: r251769
2017-09-06 12:09:55 +02:00
Arnaud Charlet
e9238cc121 [multiple changes]
2017-09-06  Yannick Moy  <moy@adacore.com>

	* sem_res.adb (Resolve): Update message for function call as statement.

2017-09-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Check_Returns): Clean up warnings coming from
	generated bodies for renamings that are completions, when renamed
	procedure is No_Return.
	* sem_ch8.adb (Analyze_Subprogram_Renaming): Implement legality
	rule in 6.5.1 (7/2): if a renaming is a completion of a subprogram
	with No_Return, the renamed entity must be No_Return as well.

From-SVN: r251768
2017-09-06 12:09:23 +02:00
Arnaud Charlet
a4f4dbdb5a [multiple changes]
2017-09-06  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch5.adb, freeze.adb, exp_ch4.adb, exp_ch6.adb, lib-xref.adb:
	Minor reformatting.

2017-09-06  Justin Squirek  <squirek@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): Modified Image
	attribute cases (Rewrite_Object_Reference_Image): Created to
	aid the rewriting of new-style 'Image attributes.
	* sem_attr.adb (Analyze_Attribute): Modified Image attribute cases
	(Check_Object_Reference_Image): Created to handle verification of
	'Image with object-references as prefixes.
	* sem_util.ads, sem_util.adb (Is_Image_Applied_To_Object):
	Create predicate to identify cases where an 'Image attribute's
	prefix applies to an object reference.

From-SVN: r251767
2017-09-06 12:07:16 +02:00
Ed Schonberg
3e69995410 freeze.adb (Freeze_Entity): Do not generate a freeze node for a generic unit...
2017-09-06  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Freeze_Entity): Do not generate a freeze
	node for a generic unit, even if it includes delayed aspect
	specifications. Freeze nodes for generic entities must never
	appear in the tree that reaches the back-end of the compiler.

From-SVN: r251766
2017-09-06 12:04:20 +02:00
Arnaud Charlet
9fb1e654f4 [multiple changes]
2017-09-06  Yannick Moy  <moy@adacore.com>

	* treepr.adb (Print_Entity_Info): Do not print empty Elist.

2017-09-06  Yannick Moy  <moy@adacore.com>

	* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Do not consider calls
	to subprograms in other units as possibly inlined.

2017-09-06  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Freeze_Entity): For a derived type that has no
	explicit delayed aspects but may inherit delayed aspects from its
	parent type, analyze aspect at freeze point for proper capture
	of an inherited aspect.

2017-09-06  Arnaud Charlet  <charlet@adacore.com>

	* lib-xref.adb (Get_Through_Renamings): Get through subprogram
	renamings; also, avoid repeated calls to Renamed_Object when getting
	through object renamings.

2017-09-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Array_Type_Declaration): Handle properly an
	array type declaration in a private part, when an index is a
	subtype indication of a discrete type with a private partial view.

2017-09-06  Javier Miranda  <miranda@adacore.com>

	* exp_ch4.adb (Expand_Modular_Op): Force generating
	temporary to improve the generated code.

2017-09-06  Tristan Gingold  <gingold@adacore.com>

	* s-fatgen.adb: Minor typo fix in comment.

2017-09-06  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch5.adb (Make_Field_Assign): If the type
	of the right-hand side has stored constraint, use its values
	(except for those that are renamings of parent discriminants)
	to produce additional assignments for the discriminants of the
	left-hand side, which are invisible in the righ-hand side and
	not retrievable as selected components.

2017-09-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.adb (Needs_One_Formal): The first formal of such a
	function must be a controlling formal, so that Obj.F (X, Y)
	can have the interpretation F(Obj)(X, Y).
	* sem_util.ads: Clarify documentation.

2017-09-06  Eric Botcazou  <ebotcazou@adacore.com>

	* table.ads, table.adb: Restore original implementation.
	* namet.h (Names_Ptr): Adjust back.
	(Name_Chars_Ptr): Likewise.
	* uintp.h (Uints_Ptr): Likewise.
	(Udigits_Ptr): Likewise.
	* g-table.ads: Remove pragma Compiler_Unit_Warning.
	* par_sco.adb: Do not with GNAT.Table and use Table consistently.
	* scos.ads: Replace GNAT.Table with Table and adjust instantiations.
	* spark_xrefs.ads: Likewise.
	* scos.h: Undo latest changes.

2017-09-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Analyze_Subprogram_Instantiation): Propagate
	No_Return flag to instance if pragma applies to generic unit. This
	must be done explicitly because the pragma does not appear
	directly in the generic declaration (unlike the corresponding
	aspect specification).

From-SVN: r251765
2017-09-06 12:01:58 +02:00
Arnaud Charlet
68ec1a494c Fix typo.
From-SVN: r251764
2017-09-06 11:55:11 +02:00
Arnaud Charlet
7c15c6dd02 [multiple changes]
2017-09-06  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch7.adb (Has_Referencer): Move up and expand comment
	explaining the test used to detect inlining.  Use same test
	in second occurrence.
	(Analyze_Package_Body_Helper): Minor formatting fixes.

2017-09-06  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch4.adb (Handle_Changed_Representation): For an untagged
	derived type with a mixture of renamed and constrained parent
	discriminants, the constraint for the target must obtain the
	discriminant values from both the operand and from the stored
	constraint for it, given that the constrained discriminants are
	not visible in the object.
	* exp_ch5.adb (Make_Field_Assign): The type of the right-hand
	side may be derived from that of the left-hand side (as in the
	case of an assignment with a change of representation) so the
	discriminant to be used in the retrieval of the value of the
	component must be the entity in the type of the right-hand side.

From-SVN: r251763
2017-09-06 11:54:26 +02:00
Arnaud Charlet
c23c86bb17 [multiple changes]
2017-09-06  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch3.adb, sem_ch7.adb, sem_util.adb, g-debpoo.adb, sem_ch4.adb,
	sem_ch6.adb, sem_ch8.adb: Minor reformatting.
	* exp_util.adb (Is_Source_Object): Account for
	the cases where the source object may appear as a dereference
	or within a type conversion.
	* exp_ch6.adb: Fix missing space in error message.

2017-09-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb: Update description of Eliminate.

From-SVN: r251762
2017-09-06 11:51:24 +02:00
Arnaud Charlet
6376a3c640 [multiple changes]
2017-09-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb (Analyze_Attribute, case 'Loop_Entry): Handle
	properly an attribute reference 'Loop_Entry that appears in the
	list of indices of an indexed expression, to prevent an infinite
	loop in the compiler.

2017-09-06  Bob Duff  <duff@adacore.com>

	* s-fileio.adb (Name): Do not raise Use_Error for temp files.

2017-09-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Analyze_Set_Membership):  If an alternative
	in a set membership is an overloaded enumeration literal, and
	the type of the alternative is resolved from a previous one,
	replace the entity of the alternative as well as the type,
	to prevent inconsistencies between the entity and the type.

From-SVN: r251761
2017-09-06 11:47:50 +02:00
Arnaud Charlet
8489c2956a [multiple changes]
2017-09-06  Eric Botcazou  <ebotcazou@adacore.com>

	* ali.ads (ALIs_Record): Add No_Component_Reordering component.
	(No_Component_Reordering_Specified): New switch.
	* ali.adb (Initialize_ALI): Set No_Component_Reordering_Specified.
	(Scan_ALI): Set No_Component_Reordering and deal with NC marker.
	* bcheck.adb (Check_Consistent_No_Component_Reordering):
	New check.
	(Check_Configuration_Consistency): Invoke it.
	* debug.adb (d.r): Toggle the effect of the switch.
	(d.v): Change to no-op.
	* einfo.ads (Has_Complex_Representation):
	Restrict to record types.
	(No_Reordering): New alias for Flag239.
	(OK_To_Reorder_Components): Delete.
	(No_Reordering): Declare.
	(Set_No_Reordering): Likewise.
	(OK_To_Reorder_Components): Delete.
	(Set_OK_To_Reorder_Components): Likewise.
	* einfo.adb (Has_Complex_Representation): Expect record types.
	(No_Reordering): New function.
	(OK_To_Reorder_Components): Delete.
	(Set_Has_Complex_Representation): Expect base record types.
	(Set_No_Reordering): New procedure.
	(Set_OK_To_Reorder_Components): Delete.
	(Write_Entity_Flags): Adjust to above change.
	* fe.h (Debug_Flag_Dot_R): New macro and declaration.
	* freeze.adb (Freeze_Record_Type): Remove conditional code setting
	OK_To_Reorder_Components on record types with convention Ada.
	* lib-writ.adb (Write_ALI): Deal with NC marker.
	* opt.ads (No_Component_Reordering): New flag.
	(No_Component_Reordering_Config): Likewise.
	(Config_Switches_Type): Add No_Component_Reordering component.
	* opt.adb (Register_Opt_Config_Switches): Copy
	No_Component_Reordering onto No_Component_Reordering_Config.
	(Restore_Opt_Config_Switches): Restore No_Component_Reordering.
	(Save_Opt_Config_Switches): Save No_Component_Reordering.
	(Set_Opt_Config_Switches): Set No_Component_Reordering.
	* par-prag.adb (Prag): Deal with Pragma_No_Component_Reordering.
	* sem_ch3.adb (Analyze_Private_Extension_Declaration): Also set the
	No_Reordering flag from the default.
	(Build_Derived_Private_Type): Likewise.
	(Build_Derived_Record_Type): Likewise.	Then inherit it
	for untagged types and clean up handling of similar flags.
	(Record_Type_Declaration): Likewise.
	* sem_ch13.adb (Same_Representation): Deal with No_Reordering and
	remove redundant test on Is_Tagged_Type.
	* sem_prag.adb (Analyze_Pragma): Handle No_Component_Reordering.
	(Sig_Flags): Likewise.
	* snames.ads-tmpl (Name_No_Component_Reordering): New name.
	(Pragma_Id): Add Pragma_No_Component_Reordering value.
	* warnsw.adb (Set_GNAT_Mode_Warnings): Enable -gnatw.q as well.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>:
	Copy the layout of the parent type only if the No_Reordering
	settings match.
	(components_to_record): Reorder record types with
	convention Ada by default unless No_Reordering is set or -gnatd.r
	is specified and do not warn if No_Reordering is set in GNAT mode.

2017-09-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.ads, sem_util.adb (Check_Previous_Null_Procedure):
	new predicate to reject declarations that can be completions,
	when there is a visible prior homograph that is a null procedure.
	* sem_ch6.adb (Analyze_Null_Procedure): use it.
	* sem_ch8.adb (Analyze_Subprogram_Renaming): ditto.

2017-09-06  Thomas Quinot  <quinot@adacore.com>

	* s-regpat.adb (Compile.Parse_Literal): Fix handling of literal
	run of 253 characters or more.

From-SVN: r251760
2017-09-06 11:44:29 +02:00