1. 06 Sep, 2017 40 commits
    • [multiple changes] · ec7f007c
      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
      Arnaud Charlet committed
    • asan.c (initialize_sanitizer_builtins): Add BT_FN_VOID_UINT8_UINT8... · f6e50a7d
      	* 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
      Wish Wu committed
    • [arm] Improve error checking in parsecpu.awk · 18161309
      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
      Richard Earnshaw committed
    • [arm] auto-generate arm-isa.h from CPU descriptions · 92f6433e
      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
      Richard Earnshaw committed
    • tree-ssa-pre.c (NECESSARY): Remove. · db04bcf2
      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
      Richard Biener committed
    • [multiple changes] · c48e0f27
      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
      Arnaud Charlet committed
    • vxworks.h (VXCPU_FOR_8548): Correct definition for VxWorks 7. · a87169db
      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
      Olivier Hainque committed
    • class.c (warn_hidden): Don't barf on non-functions. · 940ab2e0
      	* class.c (warn_hidden): Don't barf on non-functions.
      	* decl2.c (check_classfn): Likewise.  Check template match earlier.
      
      From-SVN: r251795
      Nathan Sidwell committed
    • name-lookup.c (count_fields): Rename to ... · 1887fb46
      	* 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
      Nathan Sidwell committed
    • [multiple changes] · 4269edf0
      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
      Arnaud Charlet committed
    • 20050604-1.c: Adjust to be a better test for correctness of vector lowering. · f6bd5664
      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
      Richard Biener committed
    • 2017-09-06 Richard Biener <rguenther@suse.de> · 1ffbb016
      	* gimple-ssa-strength-reduction.c
      	(find_candidates_dom_walker::before_dom_children): Also allow
      	pointer types.
      
      From-SVN: r251791
      Richard Biener committed
    • re PR target/82108 (Wrong vectorized code generated for x86_64) · 796bd467
      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
      Richard Biener committed
    • [multiple changes] · 5e9cb404
      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
      Arnaud Charlet committed
    • trans.c (gnat_to_gnu): Try again to translate the prefix after the field if it is incomplete. · c1a42658
      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
      Eric Botcazou committed
    • Makefile.in: Remove the Project Manager from the GNAT tools. · 8a139da0
      2017-09-06  Vincent Celier  <celier@adacore.com>
      
              * gcc-interface/Makefile.in: Remove the Project Manager from the GNAT
      	tools.
      
      From-SVN: r251787
      Vincent Celier committed
    • [multiple changes] · 315f0c42
      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
      Arnaud Charlet committed
    • [multiple changes] · 5efb89d0
      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
      Arnaud Charlet committed
    • exp_util.adb (Side_Effect_Free): For CodePeer (only) treat uses of 'Image and… · 643827e9
      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
      Steve Baird committed
    • [multiple changes] · 66f95f60
      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
      Arnaud Charlet committed
    • [multiple changes] · 7ec25b2b
      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
      Arnaud Charlet committed
    • name-lookup.h (lookup_fnfields_slot_nolazy, [...]): Rename to ... · 527b7b19
      	* 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
      Nathan Sidwell committed
    • [multiple changes] · b276ab7a
      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
      Arnaud Charlet committed
    • sem_prag.adb (Analyze_Depends_In_Decl_Part): Add continuation message for missing input. · a9e6f868
      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
      Yannick Moy committed
    • sysdep.c (__gnat_has_cap_sys_nice): New function to determine whether the… · 09b57dfe
      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
      Bob Duff committed
    • [multiple changes] · 7d827255
      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
      Arnaud Charlet committed
    • [multiple changes] · a316b3fc
      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
      Arnaud Charlet committed
    • frontend.adb (Frontend): Skip -gnatec=gnat.adc switch, because we've already… · 9caf55e3
      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
      Bob Duff committed
    • [multiple changes] · 6877306f
      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
      Arnaud Charlet committed
    • exp_attr.adb, [...]: Minor reformatting. · c99ab5f9
      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
      Hristian Kirtchev committed
    • [multiple changes] · 3c0ae05d
      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
      Arnaud Charlet committed
    • [multiple changes] · 62bb5423
      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
      Arnaud Charlet committed
    • Minor reformatting. · 95edbf5e
      From-SVN: r251769
      Arnaud Charlet committed
    • [multiple changes] · e9238cc1
      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
      Arnaud Charlet committed
    • [multiple changes] · a4f4dbdb
      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
      Arnaud Charlet committed
    • freeze.adb (Freeze_Entity): Do not generate a freeze node for a generic unit... · 3e699954
      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
      Ed Schonberg committed
    • [multiple changes] · 9fb1e654
      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
      Arnaud Charlet committed
    • Fix typo. · 68ec1a49
      From-SVN: r251764
      Arnaud Charlet committed
    • [multiple changes] · 7c15c6dd
      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
      Arnaud Charlet committed
    • [multiple changes] · c23c86bb
      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
      Arnaud Charlet committed