1. 08 Sep, 2017 12 commits
    • [multiple changes] · f0478a53
      2017-09-08  Arnaud Charlet  <charlet@adacore.com>
      
      	* sem_util.ads, sem_util.adb (Is_CCT_Instance): Only expect
      	entities of named concurrent types as Ref_Id and not of anonymous
      	concurrent objects (because callers already know when a conversion
      	is necessary and can easily do it); also, do not expect protected
      	types or protected objects as Context_Id (because no flow-related
      	SPARK pragmas are attached there); reflect these changes in a
      	more precise comment.
      
      2017-09-08  Olivier Hainque  <hainque@adacore.com>
      
      	* g-altive.ads: Add documentation.
      
      2017-09-08  Bob Duff  <duff@adacore.com>
      
      	* sem_util.ads, debug.adb: Minor comment fix.
      	* erroutc.ads: Comment fix.
      
      2017-09-08  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch12.adb (Validate_Array_Type_Instance): Suppress check
      	for compatibility of component types of formal and actual in an
      	instantiation of a child unit,	when the component type of the
      	formal is itself a formal of an enclosing generic.
      
      From-SVN: r251872
      Arnaud Charlet committed
    • [multiple changes] · 780d73d7
      2017-09-08  Arnaud Charlet  <charlet@adacore.com>
      
      	* sem_util.ads, sem_util.adb (Is_CCT_Instance): moved from
      	sem_prag.adb to make it available for GNATprove; for concurrent
      	types replace custom scope climbing with Scope_Same_Or_Within; for
      	single concurrent objects add scope climbing (with Scope_Within),
      	which was not there (that's the primary semantic change of this
      	commit); also, when comparing a single concurrent object with
      	its corresponding concurrent type rely on equality of types,
      	not of objects (because that's simpler to code).
      	* sem_prag.adb (Is_CCT_Instance): lifted to sem_util.ads.
      	(Analyze_Global_Item): adjust special-casing of references to the
      	current instance of a concurrent unit in the Global contracts
      	of task types and single tasks objects; similar for references
      	in the protected operations and entries of protected types and
      	single protected objects (in all these cases the current instance
      	behaves as an implicit parameter and must not be mentioned in
      	the Global contract).
      
      2017-09-08  Arnaud Charlet  <charlet@adacore.com>
      
      	* exp_ch6.adb (Expand_Call_Helper): Introduce temporary for
      	function calls returning a record within a subprogram call,
      	for C generation.
      
      2017-09-08  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch8.adb (Find_Expanded_Name): Handle properly an expanded
      	name that designates the current instance of a child unit in its
      	own body and appears as the prefix of a reference to an entity
      	local to the child unit.
      	* exp_ch6.adb, freeze.adb, sem_ch3.adb, sem_prag.adb, sem_util.adb:
      	Minor reformatting.
      
      2017-09-08  Yannick Moy  <moy@adacore.com>
      
      	* sem_res.adb (Resolve_Equality_Op): Do not warn on comparisons that
      	may be intentional.
      
      2017-09-08  Tristan Gingold  <gingold@adacore.com>
      
      	* sem_warn.adb (Check_Unused_Withs): Remove test that disabled
      	warnings on internal units in configurable run time mode.
      
      From-SVN: r251871
      Arnaud Charlet committed
    • [multiple changes] · b2c3160c
      2017-09-08  Bob Duff  <duff@adacore.com>
      
      	* sem_ch3.adb (Build_Derived_Private_Type): Inherit
      	representation items from interfaces that the derived type
      	implements, not just from the parent type.
      	* sem_util.ads, sem_util.adb (Abstract_Interface_List): Change
      	this to return an empty list when there are no interfaces.
      	* einfo.ads, sem_ch13.adb: Minor comment fixes.
      	* sem_attr.adb: Minor comment fix.
      
      2017-09-08  Doug Rupp  <rupp@adacore.com>
      
      	* sigtramp-vxworks.c [i386]: Adjust the kernel context for
      	x86-vx7.
      
      2017-09-08  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch4.adb (Expand_N_Allocator): Generate a
      	call to Allocate_Any_Controlled when the allocation does not
      	require any initialization.
      
      From-SVN: r251870
      Arnaud Charlet committed
    • [multiple changes] · cc3a2986
      2017-09-08  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_util.adb (Copy_Node_With_Replacement):
      	Update the Renamed_Object field of a replicated object renaming
      	declaration.
      
      2017-09-08  Patrick Bernardi  <bernardi@adacore.com>
      
      	* exp_ch9.adb (Is_Pure_Barrier): Allow type
      	conversions and components of objects. Simplified the detection
      	of the Count attribute by identifying the corresponding run-time
      	calls.
      
      2017-09-08  Yannick Moy  <moy@adacore.com>
      
      	* exp_ch9.adb, exp_disp.adb, repinfo.adb, sem_ch12.adb, sem_dim.adb,
      	sem_type.adb, sinfo.ads: Minor reformatting.
      
      2017-09-08  Ed Schonberg  <schonberg@adacore.com>
      
      	* freeze.adb (Has_Incomplete_Compoent): New predicate, subsidiary
      	of Freeze_Profile, used to inhibit the freezing of the profile
      	of an expression function declared within a nested package, when
      	some type in the profile depends on a private type declared in
      	an enclosing package.
      
      2017-09-08  Bob Duff  <duff@adacore.com>
      
      	* gnat1drv.adb (Gnat1drv): Do not set the Force_ALI_Tree_File flag in
      	the subunit case. It's still OK to set it in the "missing subunits"
      	case, because that won't cause the obsolete .ali files that cause
      	confusion.
      
      2017-09-08  Bob Duff  <duff@adacore.com>
      
      	* sinput-l.adb: Remove unused "with Unchecked_Conversion;". It's
      	unclear why this didn't cause a warning.
      	* a-uncdea.ads, a-unccon.ads: Add "Ada." to names in the
      	pragmas. It's unclear why this didn't cause an error.
      
      From-SVN: r251869
      Arnaud Charlet committed
    • [multiple changes] · 74a78a4f
      2017-09-08  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_spark.adb (Expand_SPARK_N_Object_Renaming_Declaration):
      	Reimplemented.
      	(Expand_SPARK_Potential_Renaming): Code clean up.
      	* sem_prag.adb (Analyze_Initialization_Item): Add a guard in case
      	the item does not have a proper entity.
      	(Analyze_Input_Item): Add a guard in case the item does not have a
      	proper entity.
      	(Collect_States_And_Objects): Include object renamings in the
      	items being collected.
      	(Resolve_State): Update the documentation of this routine.
      	* sem_util.adb (Entity_Of): Add circuitry to handle
      	renamings of function results.
      	(Remove_Entity): New routine.
      	(Remove_Overloaded_Entity): Take advantage of factorization.
      	* sem_util.ads (Entity_Of): Update the documentation
      	of this routine.
      	(Remove_Entity): New routine.
      	(Remove_Overloaded_Entity): Update the documentation of this
      	routine.
      
      2017-09-08  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* repinfo.adb (List_Record_Info): During first loop,
      	do not override the normalized position and first bit
      	if they have already been set.	Move fallback code
      	for the packed case to the case where it belongs.
      	* sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
      	Also adjust the normalized position of components.
      	(Adjust_Record_For_Reverse_Bit_Order_Ada_95): Likewise.
      
      2017-09-08  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_disp.adb (Make_DT, Set_All_DT_Position): Handle properly
      	the placement of a primitive operation O that renames an operation
      	R declared in an inner package, and which is thus not a primitive
      	of the dispatching type of O. In this case O is a new primitive
      	and does not inherit its dispatch table position from R (which
      	has none).
      
      2017-09-08  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_dim.adb (Analyze_Dimension_If_Expression,
      	Analyze_Dimension_Case_Expression): new subprograms to verify
      	the dimensional correctness of Ada2012 conditional expressions,
      	and set properly the dimensions of the construct.
      	* sem_res.adb (Resolve_If_Expression, Resolve_Case_Expression)):
      	call Analyze_Dimension.
      
      2017-09-08  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_type.adb (Expand_Interface_Conversion): Prevent an infinite
      	loop on an interface declared as a private extension of another
      	synchronized interface.
      
      From-SVN: r251868
      Arnaud Charlet committed
    • Minor clean up. · 133de112
      From-SVN: r251867
      Arnaud Charlet committed
    • [multiple changes] · eb0f297f
      2017-09-08  Ed Schonberg  <schonberg@adacore.com>
      
              * sem_ch12.adb (Check_Generic_Parent): New procedure within
              Analyze_Associations, to handle actual packages that depend on
              previous instances.  If a package IAP that is an instantiation is
              used as an actual in a subsequent instantiation SI in the same
              scope, and IAP has a body, IAP must be frozen before SI. If
              the generic parent of IAP is itself declared in a previous
              instantiation in the same scope, that instantiation must also
              be frozen before SI.
              (Install_Body): Prevent double insertion of freeze node for
              instance.
      
      2017-09-08  Hristian Kirtchev  <kirtchev@adacore.com>
      
              * sem_prag.adb (Resolve_State): Update the
              comment on documentation. Generate a reference to the state once
              resolution takes place.
      
      2017-09-08  Ed Schonberg  <schonberg@adacore.com>
      
              * sem_ch13.adb (Analyze_Aspect_Specifications, case
              Linker_Section): If the aspect applies to an object declaration
              with explicit initialization, do not delay the freezing of the
              object, to prevent access-before-elaboration in the generated
              initialization code.
      
      2017-09-08  Ed Schonberg  <schonberg@adacore.com>
      
              * a-wtdeio.adb (Put, all versions): Use Long_Long_Integer
              (Integer_Value (Item)) when the size of the fixed decimal type
              is larger than Integer.
      
      From-SVN: r251866
      Arnaud Charlet committed
    • [multiple changes] · be91c7e2
      2017-09-08  Ed Schonberg  <schonberg@adacore.com>
      
              * sem_ch12.adb (Check_Generic_Parent): New procedure within
              Analyze_Associations, to handle actual packages that depend on
              previous instances.  If a package IAP that is an instantiation is
              used as an actual in a subsequent instantiation SI in the same
              scope, and IAP has a body, IAP must be frozen before SI. If
              the generic parent of IAP is itself declared in a previous
              instantiation in the same scope, that instantiation must also
              be frozen before SI.
              (Install_Body): Prevent double insertion of freeze node for
              instance.
      
      2017-09-08  Hristian Kirtchev  <kirtchev@adacore.com>
      
              * sem_prag.adb (Resolve_State): Update the
              comment on documentation. Generate a reference to the state once
              resolution takes place.
      
      2017-09-08  Ed Schonberg  <schonberg@adacore.com>
      
              * sem_ch13.adb (Analyze_Aspect_Specifications, case
              Linker_Section): If the aspect applies to an object declaration
              with explicit initialization, do not delay the freezing of the
              object, to prevent access-before-elaboration in the generated
              initialization code.
      
      2017-09-08  Ed Schonberg  <schonberg@adacore.com>
      
              * a-wtdeio.adb (Put, all versions): Use Long_Long_Integer
              (Integer_Value (Item)) when the size of the fixed decimal type
              is larger than Integer.
      
      From-SVN: r251865
      Arnaud Charlet committed
    • Removed, no longer used. · 8b735094
      From-SVN: r251864
      Arnaud Charlet committed
    • Fix SPARC bootstrap: sancov.c needs memmodel.h · ed3d4d82
      	* sancov.c: Include memmodel.h.
      
      From-SVN: r251863
      Rainer Orth committed
    • Fix merge error. · 2db98b5a
      From-SVN: r251862
      Eric Botcazou committed
    • Daily bump. · 42bbab4c
      From-SVN: r251861
      GCC Administrator committed
  2. 07 Sep, 2017 17 commits
    • re PR bootstrap/80897 (gnat bootstrap broken on SPARC64/Linux) · 1c49a3ed
      	PR target/80897
      	* config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Deal with too
      	large offsets.
      
      From-SVN: r251847
      Eric Botcazou committed
    • re PR ada/82127 (gnat.dg/specs/constructor.ads FAILs) · fac51974
      	PR ada/82127
      	* gcc-interface/decl.c (copy_and_substitute_in_layout): Put the fields
      	in order of increasing position in more cases.
      
      From-SVN: r251846
      Eric Botcazou committed
    • vsx.md (define_insn "*stxvl"): Add missing argument to the sldi instruction. · 9cb22eea
      gcc/ChangeLog:
      
      2017-09-07  Carl Love  <cel@us.ibm.com>
      
      	    * config/rs6000/vsx.md (define_insn "*stxvl"): Add missing argument to the sldi instruction.
      
      From-SVN: r251845
      Carl Love committed
    • * sancov.c: Include tm_p.h. · 3060b639
      From-SVN: r251844
      David Edelsohn committed
    • re PR target/81979 (Assembler messages: Error: can't resolve `.got2' {.got2… · 86373d92
      re PR target/81979 (Assembler messages: Error: can't resolve `.got2' {.got2 section} - `.LCF0' {.text.unlikely section})
      
      	PR target/81979
      	* output.h (switch_to_other_text_partition): New declaration.
      	* varasm.c (switch_to_other_text_partition): New function.
      	* config/rs6000/rs6000.c (uses_TOC): Return 2 if
      	NOTE_INSN_SWITCH_TEXT_SECTIONS is seen before finding load_toc_* insn.
      	(rs6000_elf_declare_function_name): If uses_TOC returned 2, switch
      	to the other text partition before emitting LCL label and switch back
      	after emitting the word after it.
      
      	* gcc.dg/pr81979.c: New test.
      
      From-SVN: r251843
      Jakub Jelinek committed
    • [multiple changes] · ed323421
      2017-09-07  Yannick Moy  <moy@adacore.com>
      
      	* a-exetim-mingw.ads: Add contract Global=>null
      	on all operations that are modeled as having no read or write
      	of global variables in SPARK.
      
      2017-09-07  Raphael Amiard  <amiard@adacore.com>
      
      	* a-chtgop.adb, a-chtgop.ads (Generic_Iteration_With_Position): Added
      	to Hmaps.Generic_Ops.
      	* a-cohama.adb (Ada.Containers.Hmaps.Iterate): Pass proper position in
      	cursors.
      	* a-cihama.adb (Ada.Containers.Indefinite_Hmaps.Iterate): Pass pos in
      	cursors.
      	* a-cohase.adb (Ada.Containers.Hashed_Sets.Iterate): Pass proper
      	position in cursors.
      
      2017-09-07  Javier Miranda  <miranda@adacore.com>
      
      	* sem_elab.adb (Check_Task_Activation): Adding switch -gnatd.y to
      	allow disabling the generation of implicit pragma Elaborate_All
      	on task bodies.
      
      2017-09-07  Javier Miranda  <miranda@adacore.com>
      
      	* exp_disp.adb (Make_Tags): Avoid suffix counter
      	in the external name of the elaboration flag. Required to fix
      	the regressions introduced by the initial version of this patch.
      
      2017-09-07  Bob Duff  <duff@adacore.com>
      
      	* sem_ch6.adb (Analyze_Function_Return): Do not
      	insert an explicit conversion to force the displacement of the
      	"this" pointer to reference the secondary dispatch table in the
      	case where the return statement is returning a raise expression,
      	as in "return raise ...".
      
      2017-09-07  Arnaud Charlet  <charlet@adacore.com>
      
      	* sem_disp.adb (Is_User_Defined_Equality): Removed procedure.
      	* sem_util.ads, sem_util.adb (Is_User_Defined_Equality): Copied
      	procedure from sem_disp.adb.
      	* sem_ch12.ads (Get_Unit_Instantiation_Node): rename Package
      	with Unit.
      	* sem_ch12.adb (Get_Unit_Instantiation_Node): function extended to
      	return the instantiation node for subprograms. Update references
      	to Get_Unit_Instantiation_Node.
      	* sem_ch7.adb (Install_Parent_Private_Declarations): update
      	reference to Get_Unit_Instantiation_Node.
      	* exp_dist.adb (Build_Package_Stubs): update reference to
      	Get_Unit_Instantiation_Node.
      	* sem_ch9.adb: minor typo in comment.
      	* lib-xref-spark_specific.adb
      	(Traverse_Declaration_Or_Statement): traverse into task type
      	definition.
      
      2017-09-07  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_dim.adb (Analyze_Dimension_Type_Conversion): New procedure
      	to handle properly various cases of type conversions where the
      	target type and/or the expression carry dimension information.
      	(Dimension_System_Root); If a subtype carries dimension
      	information, obtain the source parent type that carries the
      	Dimension aspect.
      
      2017-09-07  Dmitriy Anisimkov  <anisimko@adacore.com>
      
      	* g-socket.adb, g-socket.ads (GNAT.Sockets.To_Ada): New routine.
      
      2017-09-07  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_attr.adb (Expand_N_Attribute_Reference, case 'Constrained):
      	If the prefix is a reference to an object, rewrite it as an
      	explicit dereference, as required by 3.7.2 (2) and as is done
      	with most other attributes whose prefix is an access value.
      
      2017-09-07  Bob Duff  <duff@adacore.com>
      
      	* par-ch13.adb: Set the Inside_Depends flag if we are inside a
      	Refined_Depends aspect.
      	* par-ch2.adb: Set the Inside_Depends flag if we are inside a
      	Refined_Depends pragma.
      	* scans.ads: Fix documentation of Inside_Depends flag.
      	* styleg.adb, styleg.ads: Minor reformatting and comment fixes.
      
      2017-09-07  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch7.adb (Insert_Actions_In_Scope_Around):
      	Account for the case where the are no lists to insert, but the
      	secondary stack still requires management.
      	* a-chtgop.adb, a-cihama.adb, a-cohama.adb, a-cohase.adb, a-tags.adb,
      	comperr.adb, einfo.adb, exp_aggr.adb, exp_ch3.adb, exp_disp.adb,
      	lib-xref.adb, lib-xref-spark_specific.adb, sem_ch12.adb, sem_ch13.adb,
      	sem_ch6.adb, sem_dim.adb, sem_dim.ads, sem_elab.adb, sem_prag.adb:
      	Minor reformatting.
      
      From-SVN: r251842
      Arnaud Charlet committed
    • [multiple changes] · c8e072da
      2017-09-07  Vincent Celier  <celier@adacore.com>
      
      	* clean.adb: Do not get the target parameters before calling
      	gprclean.
      
      2017-09-07  Nicolas Roche  <roche@adacore.com>
      
      	* s-osinte-solaris-posix.ads: Removed.
      
      From-SVN: r251841
      Arnaud Charlet committed
    • [multiple changes] · 83b77c5c
      2017-09-07  Arnaud Charlet  <charlet@adacore.com>
      
      	* sem_prag.adb (Collect_States_And_Objects): Detect also instances of
      	single concurrent objects.
      
      2017-09-07  Javier Miranda  <miranda@adacore.com>
      
      	* s-regexp.ads: Fix documentation of the globbing grammar.
      
      2017-09-07  Gary Dismukes  <dismukes@adacore.com>
      
      	* a-tags.ads, einfo.ads, exp_disp.ads: Minor reformatting.
      
      2017-09-07  Arnaud Charlet  <charlet@adacore.com>
      
      	* gnat1drv.adb (Gnat1drv): Enable pragma Ignore_Pragma (Global)
      	in CodePeer mode, to support more legacy code automatically.
      
      2017-09-07  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_disp.adb (Replace_Formals): If thr formal is classwide,
      	and thus not a controlling argument, preserve its type after
      	rewriting because it may appear in an nested call with a classwide
      	parameter.
      
      2017-09-07  Arnaud Charlet  <charlet@adacore.com>
      
      	* comperr.adb (Delete_SCIL_Files): Handle case of
      	N_Package_Instantiation.
      
      2017-09-07  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch10.adb (Remove_Private_With_Clause): If a private with
      	clause for a unit U appears in a context that includes a regular
      	with_clause on U, rewrite the redundant private clause into a null
      	statement, rather than removing it altogether from the context,
      	so that ASIS tools can reconstruct the original source.
      
      2017-09-07  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch13.adb (Check_Aspect_At_Freeze_Point): The expression
      	for aspect Small can be of any real type (not only a universal
      	real literal) as long as it is a static constant.
      
      2017-09-07  Thomas Quinot  <quinot@adacore.com>
      
      	* par_sco.adb: Minor reformatting.
      
      From-SVN: r251840
      Arnaud Charlet committed
    • s-parame-ae653.ads: Removed. · e9cb2231
      	* s-parame-ae653.ads: Removed.
      
      From-SVN: r251839
      Arnaud Charlet committed
    • [multiple changes] · fe683ef6
      2017-09-07  Nicolas Roche  <roche@adacore.com>
      
      	* s-traces-default.adb, s-trafor-default.adb, s-trafor-default.ads,
      	s-traces.adb, s-traces.ads, s-tratas-default.adb, s-tfsetr-default.adb,
      	s-tfsetr-vxworks.adb, s-tratas.adb, s-tratas.ads, s-tasuti.adb,
      	s-parame-hpux.ads, s-tassta.adb, s-taasde.adb, s-tasren.adb,
      	s-taprob.adb, a-caldel.adb, s-parame.ads, Makefile.rtl, s-tpobop.adb,
      	s-taenca.adb, s-parame-vxworks.ads: Remove support for System.Traces.
      
      2017-09-07  Yannick Moy  <moy@adacore.com>
      
      	* a-ngelfu.ads Add preconditions to all functions
      	listed in Ada RM A.5.1(19-33) as having constraints on inputs.
      
      2017-09-07  Arnaud Charlet  <charlet@adacore.com>
      
      	* lib-xref.adb (Generate_Reference): ignore
      	references to entities which are Part_Of single concurrent
      	objects.
      
      2017-09-07  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* sem_ch7.adb (Hide_Public_Entities): Add paragraph to main
      	comment.
      
      2017-09-07  Arnaud Charlet  <charlet@adacore.com>
      
      	* a-taside.adb (Activation_Is_Complete): Raise Program_Error if
      	Null_Task_Id is passed.
      
      2017-09-07  Javier Miranda  <miranda@adacore.com>
      
      	* einfo.ads, einfo.adb (Access_Disp_Table_Elab_Flag): New
      	attribute. Defined for record types and subtypes.
      	* exp_ch3.ads (Init_Secondary_Tags): Adding new formal
      	(Init_Tags_List) to facilitate generating separate code in the
      	IP routine to initialize the object components and for completing
      	the elaboration of dispatch tables.
      	* exp_ch3.adb (Build_Init_Procedure): Improve the code
      	generated in the IP routines by means of keeping separate
      	the initialization of the object components from the
      	initialization of its dispatch tables.	(Init_Secondary_Tags):
      	Adding new formal (Init_Tags_List) and adjusting calls to
      	Ada.Tags.Set_Dynamic_Offset_To_Top since it has a new formal;
      	adjusting also calls to Ada.Tags.Register_Interface_Offset
      	because the type of one of its formals has been changed.
      	* a-tags.ads, a-tags.adb (Register_Interface_Offset): Profile
      	modified. Instead of receiving a pointer to an object this
      	routine receives now a primary tag.
      	(Set_Dyanic_Offset_To_Top): Profile modified. This routine receives an
      	additional formal: the tag of the primary dispatch table.
      	* exp_disp.ads (Elab_Flag_Needed): New subprogram.
      	* exp_disp.adb (Elab_Flag_Needed): New subprogram.
      	(Make_Tags): Adding the declaration of the elaboration flag (if needed).
      	* exp_aggr.adb (Build_Record_Aggr_Code): Adding actual of new
      	formal in calls to Init_Secondary_Tags.
      
      2017-09-07  Javier Miranda  <miranda@adacore.com>
      
      	* ghost.adb (Mark_And_Set_Ghost_Instantiation.Check_Ghost_Actuals): New
      	subprogram.
      	* sem_prag.adb (Pragma_Ghost): Add missing support for ghost
      	applied to generic subprograms.
      
      From-SVN: r251838
      Arnaud Charlet committed
    • [multiple changes] · 4b25afa1
      2017-09-07  Arnaud Charlet  <charlet@adacore.com>
      
      	* sem_util.adb (Check_Part_Of_Reference): rename Conc_Typ to Conc_Obj
      	(because it refers to the anonymous concurrent object, not its type);
      	fix condition for emitting error message about task/protected type,
      
      2017-09-07  Bob Duff  <duff@adacore.com>
      
      	* binde.adb (Debug_Flag_Old): If both -do and -dp
      	are specified, behave as if just -do was specified, rather than
      	using a mixture.
      
      2017-09-07  Nicolas Roche  <roche@adacore.com>
      
      	* system-vxworks-sparcv9.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
      	system-vxworks-m68k.ads, system-vxworks-mips.ads: Removed.
      
      From-SVN: r251837
      Arnaud Charlet committed
    • [multiple changes] · 1155ae01
      2017-09-07  Arnaud Charlet  <charlet@adacore.com>
      
      	* sem_prag.adb (Find_Role): The Global_Seen flag
      	is now consulted not only for abstract states and variables,
      	but for all kinds of items.
      	(Collect_Subprogram_Inputs_Outputs): Do not process formal
      	generic parameters, because unlike ordinary formal parameters,
      	generic formals only act as input/ outputs if they are explicitly
      	mentioned in a Global contract.
      
      2017-09-07  Yannick Moy  <moy@adacore.com>
      
      	* ghost.adb (Check_Ghost_Context): Do not err on ghost code inside
      	predicate procedure. Check predicate pragma/aspect with Ghost entity.
      	* exp_ch6.adb, par-ch6.adb, sem_ch13.adb, sem_prag.adb; Minor
      	reformatting.
      
      2017-09-07  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_aggr.adb: Move New_Copy_Tree_And_Dimensions to sem_dim
      	(code cleanup);
      	* sem_ch3.adb (Build_Derived_Record_Type):i Call
      	Copy_Dimensions_Of_Components after creating the copy of the
      	record declaration.
      	* sem_dim.ads, sem_dim.adb (Copy_Dimensions_Of_Components): For a
      	derived recor type, copy the dikensions if any of each component
      	of the parent record to the corresponding component declarations
      	of the derived record. These expressions are used among other
      	things as default values in aggregates with box associations.
      	* a-dirval-mingw.adb, g-cgi.adb, gnatcmd.adb, lib-xref.adb,
      	repinfo.adb, sem_attr.adb, sem_ch10.adb, sem_ch6.adb, sem_prag.adb:
      	Minor reformatting.
      
      2017-09-07  Arnaud Charlet  <charlet@adacore.com>
      
      	* sem_util.adb: Remove extra space after THEN.
      
      2017-09-07  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* sem_ch7.adb (Has_Referencer): For a subprogram renaming,
      	also mark the renamed subprogram as referenced.
      
      From-SVN: r251836
      Arnaud Charlet committed
    • [multiple changes] · 0691ed6b
      2017-09-07  Ed Schonberg  <schonberg@adacore.com>
      
      	* par-ch6.adb (P_Subprogram): Improve error message on null
      	procedure with misplaced aspect specification, which the parser
      	first attempts to interpret as a malformed expression function.
      
      2017-09-07  Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_attr.adb (Analyze_Attribute_Old_Result):
      	Allow attributes Result and Old in the case of an expression
      	function.
      
      2017-09-07  Justin Squirek  <squirek@adacore.com>
      
      	* sem_prag.adb (Process_Atomic_Independent_Shared_Volatile): Propagate
      	Volatile to subcomponents.
      
      2017-09-07  Bob Duff  <duff@adacore.com>
      
      	* exp_ch7.adb (Find_Last_Init): Check for the
      	case where a build-in-place function call has been replaced by a
      	'Reference attribute reference.
      
      2017-09-07  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* sem_ch7.adb (Has_Referencer): Recurse on Actions of freeze
      	nodes.
      
      2017-09-07  Bob Duff  <duff@adacore.com>
      
      	* exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration,
      	Make_Build_In_Place_Call_In_Anonymous_Context): Do not use the
      	secondary stack for all functions that return limited tagged
      	types -- just do it for dispatching calls.  Misc cleanup.
      	* sem_util.ads, sem_util.adb (Unqual_Conv): New function to
      	remove qualifications and type conversions. Fix various bugs
      	where only a single level of qualification or conversion was
      	removed, so e.g. "T1'(T2'(X))" would incorrectly return "T2'(X)"
      	instead of "X".
      	* checks.adb, exp_util.ads, exp_util.adb, sem_res.adb: Misc related
      	cleanup.
      
      2017-09-07  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch6.adb (setr_Actual_Subtypes): Within a predicate function
      	do not create actual subtypes that may generate further predicate
      	functions.
      	* sem_ch13.adb (Build_Predicate_Functions): Indicate that entity
      	of body is a predicate function as well.
      	(Resolve_Aspect_Expressions, Resolve_Name): For a component
      	association, only the expression needs resolution, not the name.
      	(Resolve_Aspect_Expressions, case Predicates): Construct and
      	analyze the predicate function declaration in the scope of the
      	type, before making the type and its discriminants visible.
      
      From-SVN: r251835
      Arnaud Charlet committed
    • re PR ada/82126 (gnat.dg/alignment3.adb FAILs) · a3064a99
      	PR ada/82126
      	* gnat.dg/alignment3.adb: Add pragma No_Component_Reordering.
      
      From-SVN: r251834
      Eric Botcazou committed
    • passes.def (pass_split_crit_edges): Remove instance before PRE. · a7976089
      2017-09-07  Richard Biener  <rguenther@suse.de>
      
      	* passes.def (pass_split_crit_edges): Remove instance before PRE.
      	* tree-ssa-pre.c (pass_pre::execute): Instead manually split
      	critical edges here, after loop init.
      	(pass_data_pre): Remove PROP_no_crit_edges flags.
      	* tree-ssa-sccvn.c (vn_reference_lookup_3): Use vn_valueize
      	for valueization of call args to avoid leaking VN_TOP.
      	(visit_use): Assert we do not visit default defs.
      	(init_scc_vn): Use build_decl for VN_TOP to make name nicer.
      	Use error_mark_node to more easily detect leaking VN_TOP.
      	All default-defs are varying, not VN_TOP.  Mark them visited.
      	(run_scc_vn): Make code match comment.
      
      	* gcc.dg/tree-ssa/ssa-thread-12.c: XFAIL third FSM threading
      	opportunity.
      
      From-SVN: r251833
      Richard Biener committed
    • PR c++/82053 - ICE with default argument in lambda in template · e76b2472
      	* 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
      Jason Merrill committed
    • Daily bump. · f4942d79
      From-SVN: r251825
      GCC Administrator committed
  3. 06 Sep, 2017 11 commits
    • PR c++/82070 - error with nested lambda capture · 7ab50e17
      	* pt.c (tsubst_expr) [DECL_EXPR]: Register capture proxies with
      	register_local_specialization.
      
      From-SVN: r251819
      Jason Merrill committed
    • rs6000-cpus.def (OTHER_VSX_VECTOR_MASKS): Delete OPTION_MASK_FLOAT128_KEYWORD. · bbd35101
      [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
      Michael Meissner committed
    • decl.c (warn_on_field_placement): Issue the warning only if the record type… · 3f8cf834
      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
      Eric Botcazou committed
    • PR78468 - add alloca alignment test · 260da991
      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
      Wilco Dijkstra committed
    • config.gcc (powerpc-wrs-vxworksspe): Now match as vxworks*spe. · 4a40b308
      2017-09-06  Olivier Hainque  <hainque@adacore.com>
      
      	* config.gcc (powerpc-wrs-vxworksspe): Now match as vxworks*spe.
      
      From-SVN: r251809
      Olivier Hainque committed
    • name-lookup.h (lookup_field_1): Delete. · b991151b
      	* 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
      Nathan Sidwell committed
    • [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