Pierre-Marie de Rodat 90e491a773 [multiple changes]
2017-10-09  Bob Duff  <duff@adacore.com>

	* exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use
	Defining_Identifier (Obj_Decl) in two places, because it might have
	changed.
	* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Deal with cases
	involving 'Input on (not visibly) derived types.

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

	* atree.adb: Add new soft link Rewriting_Proc.
	(Rewrite): Invoke the subprogram attached to the rewriting soft link.
	(Set_Rewriting_Proc): New routine.
	* attree.ads: Add new access-to-subprogram type Rewrite_Proc.
	(Set_Rewriting_Proc): New routine.
	* checks.adb (Install_Primitive_Elaboration_Check): Use 'E' character
	for *E*laboration flag to maintain consistency with other elaboration
	flag generating subprograms.
	* debug.adb: Document the new usage of flag -gnatdL.
	* einfo.adb: Node19 is now used as Receiving_Entry.  Node39 is now used
	as Protected_Subprogram.  Flag148 is now used as
	Is_Elaboration_Checks_OK_Id.  Flag302 is now used as
	Is_Initial_Condition_Procedure.
	(Is_Elaboration_Checks_OK_Id): New routine.
	(Is_Initial_Condition_Procedure): New routine.
	(Protected_Subprogram): New routine.
	(Receiving_Entry): New routine.
	(SPARK_Pragma): Update assertion.
	(SPARK_Pragma_Inherited): Update assertion.
	(Suppress_Elaboration_Warnings): Removed.
	(Set_Is_Elaboration_Checks_OK_Id): New routine.
	(Set_Is_Initial_Condition_Procedure): New routine.
	(Set_Protected_Subprogram): New routine.
	(Set_Receiving_Entry): New routine.
	(Set_SPARK_Pragma): Update assertion.
	(Set_SPARK_Pragma_Inherited): Update assertion.
	(Write_Entity_Flags): Update the output for Flag148 and Flag302.
	(Write_Field19_Name): Add output for Receiving_Entry.
	(Write_Field39_Name): Add output for Protected_Subprogram.
	(Write_Field40_Name): Update the output for SPARK_Pragma.
	* einfo.ads: New attributes Is_Elaboration_Checks_OK_Id,
	Is_Initial_Condition_Procedure, Protected_Subprogram, Receiving_Entry.
	Remove attribute Suppress_Elaboration_Warnings.  Update the stricture
	of various entities.
	(Is_Elaboration_Checks_OK_Id): New routine along with pragma Inline.
	(Is_Initial_Condition_Procedure): New routine along with pragma Inline.
	(Protected_Subprogram): New routine along with pragma Inline.
	(Receiving_Entry): New routine along with pragma Inline.
	(Suppress_Elaboration_Warnings): Removed.
	(Set_Is_Elaboration_Checks_OK_Id): New routine along with pragma
	Inline.
	(Set_Is_Initial_Condition_Procedure): New routine along with pragma
	Inline.
	(Set_Protected_Subprogram): New routine along with pragma Inline.
	(Set_Receiving_Entry): New routine along with pragma Inline.
	(Set_Suppress_Elaboration_Warnings): Removed.
	* exp_ch3.adb (Build_Init_Procedure): Use name _Finalizer to maintain
	consistency with other finalizer generating subprograms.
	(Default_Initialize_Object): Mark the block which wraps the call to
	finalize as being part of initialization.
	* exp_ch7.adb (Expand_N_Package_Declaration): Directly expand pragma
	Initial_Condition.
	(Expand_N_Package_Body): Directly expand pragma Initial_Condition.
	(Next_Suitable_Statement): Update the comment on usage. Skip over call
	markers generated by the ABE mechanism.
	* exp_ch9.adb (Activation_Call_Loc): New routine.
	(Add_Accept): Link the accept procedure to the original entry.
	(Build_Protected_Sub_Specification): Link the protected or unprotected
	version to the original subprogram.
	(Build_Task_Activation_Call): Code cleanup. Use a source location which
	is very close to the "begin" or "end" keywords when generating the
	activation call.
	* exp_prag.adb (Expand_Pragma_Initial_Condition): Reimplemented.
	* exp_spark.adb (Expand_SPARK): Use Expand_SPARK_N_Loop_Statement to
	process loops.
	(Expand_SPARK_N_Loop_Statement): New routine.
	(Expand_SPARK_N_Object_Declaration): Code cleanup. Partially insert the
	call to the Default_Initial_Condition procedure.
	(Expand_SPARK_Op_Ne): Renamed to Expand_SPARK_N_Op_Ne.
	* exp_util.adb (Build_DIC_Procedure_Body): Capture the SPARK_Mode in
	effect.
	(Build_DIC_Procedure_Declaration): Capture the SPARK_Mode in effect.
	(Insert_Actions): Add processing for N_Call_Marker.
	(Kill_Dead_Code): Explicitly kill an elaboration scenario.
	* exp_util.ads (Make_Invariant_Call): Update the comment on usage.
	* frontend.adb: Initialize Sem_Elab. Process all saved top level
	elaboration scenarios for ABE issues.
	* gcc-interface/trans.c (gnat_to_gnu): Add processing for N_Call_Marker
	nodes.
	* lib.adb (Earlier_In_Extended_Unit): New variant.
	* sem.adb (Analyze): Ignore N_Call_Marker nodes.
	(Preanalysis_Active): New routine.
	* sem.ads (Preanalysis_Active): New routine.
	* sem_attr.adb (Analyze_Access_Attribute): Save certain
	elaboration-related attributes. Save the scenario for ABE processing.
	* sem_ch3.adb (Analyze_Object_Declaration): Save the SPARK mode in
	effect. Save certain elaboration-related attributes.
	* sem_ch5.adb (Analyze_Assignment): Save certain elaboration-related
	attributes. Save the scenario for ABE processing.
	* sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Save the SPARK
	mode in effect. Save certain elaboration-related attributes.
	(Analyze_Subprogram_Body_Helper): Skip N_Call_Marker nodes when
	locating the first real statement.
	(Analyze_Subprogram_Declaration): Save the SPARK mode in effect. Save
	certain elaboration-related attributes.
	* sem_ch7.adb (Analyze_Package_Declaration): Do not suppress
	elaboration warnings.
	* sem_ch8.adb (Attribute_Renaming): Mark a subprogram body which was
	generated for purposes of wrapping an attribute used as a generic
	actual.
	(Find_Direct_Name): Save certain elaboration-related attributes. Save
	the scenario for ABE processing.
	(Find_Expanded_Name): Save certain elaboration-related attributes. Save
	the scenario for ABE processing.
	* sem_ch9.adb (Analyze_Entry_Declaration): Save certain
	elaboration-related attributes.
	(Analyze_Requeue): Save certain elaboration-related attributes. Save
	the scenario for ABE processing.
	(Analyze_Single_Task_Declaration): Save certain elaboration-related
	attributes.
	(Analyze_Task_Type_Declaration): Save certain elaboration-related
	attributes.
	* sem_ch12.adb (Analyze_Generic_Package_Declaration): Save certain
	elaboration-related attributes.
	(Analyze_Generic_Subprogram_Declaration): Save the SPARK mode in
	effect. Save certain elaboration-related attributes.
	(Analyze_Package_Instantiation): Save certain elaboration-related
	attributes.  Save the scenario for ABE processing. Create completing
	bodies in case the instantiation results in a guaranteed ABE.
	(Analyze_Subprogram_Instantiation): Save certain elaboration-related
	attributes Save the scenario for ABE processing. Create a completing
	body in case the instantiation results in a guaranteed ABE.
	(Provide_Completing_Bodies): New routine.
	* sem_elab.ads: Brand new implementation.
	* sem_prag.adb (Analyze_Pragma, cases Elaborate, Elaborate_All,
	Elaborate_Body): Do not suppress elaboration warnings.
	* sem_res.adb (Make_Call_Into_Operator): Set the parent field of the
	operator.
	(Resolve_Call): Save certain elaboration-related attributes. Save the
	scenario for ABE processing.
	(Resolve_Entity_Name): Do not perform any ABE processing here.
	(Resolve_Entry_Call): Inherit certain attributes from the original call.
	* sem_util.adb (Begin_Keyword_Location): New routine.
	(Defining_Entity): Update the parameter profile. Add processing for
	concurrent subunits that are rewritten as null statements.
	(End_Keyword_Location): New routine.
	(Find_Enclosing_Scope): New routine.
	(In_Instance_Visible_Part): Code cleanup.
	(In_Subtree): Update the parameter profile. Add new version.
	(Is_Preelaborable_Aggregate): New routine.
	(Is_Preelaborable_Construct): New routine.
	(Mark_Elaboration_Attributes): New routine.
	(Scope_Within): Update the parameter profile.
	(Scope_Within_Or_Same): Update the parameter profile.
	* sem_util.ads (Begin_Keyword_Location): New routine.
	(Defining_Entity): Update the parameter profile and the comment on
	usage.
	(End_Keyword_Location): New routine.
	(Find_Enclosing_Scope): New routine.
	(In_Instance_Visible_Part): Update the parameter profile.
	(In_Subtree): Update the parameter profile. Add new version.
	(Is_Preelaborable_Aggregate): New routine.
	(Is_Preelaborable_Construct): New routine.
	(Mark_Elaboration_Attributes): New routine.
	(Scope_Within): Update the parameter profile and the comment on usage.
	(Scope_Within_Or_Same): Update the parameter profile and the comment on
	usage.
	* sem_warn.adb (Check_Infinite_Loop_Warning): Use Has_Condition_Actions
	to determine whether a loop has meaningful condition actions.
	(Has_Condition_Actions): New routine.
	* sinfo.adb (ABE_Is_Certain): Removed.
	(Is_Declaration_Level_Node): New routine.
	(Is_Dispatching_Call): New routine.
	(Is_Elaboration_Checks_OK_Node): New routine.
	(Is_Initialization_Block): New routine.
	(Is_Known_Guaranteed_ABE): New routine.
	(Is_Recorded_Scenario): New routine.
	(Is_Source_Call): New routine.
	(Is_SPARK_Mode_On_Node): New routine.
	(No_Elaboration_Check): Removed.
	(Target): New routine.
	(Was_Attribute_Reference): New routine.
	(Set_ABE_Is_Certain): Removed.
	(Set_Is_Declaration_Level_Node): New routine.
	(Set_Is_Dispatching_Call): New routine.
	(Set_Is_Elaboration_Checks_OK_Node): New routine.
	(Set_Is_Initialization_Block): New routine.
	(Set_Is_Known_Guaranteed_ABE): New routine.
	(Set_Is_Recorded_Scenario): New routine.
	(Set_Is_Source_Call): New routine.
	(Set_Is_SPARK_Mode_On_Node): New routine.
	(Set_No_Elaboration_Check): Removed.
	(Set_Target): New routine.
	(Set_Was_Attribute_Reference): New routine.
	* sinfo.ads: Remove attribute ABE_Is_Certain.  Attribute
	Do_Discriminant_Check now utilizes Flag3.  Attribute
	No_Side_Effect_Removal now utilizes Flag17.  Add new node
	N_Call_Marker.  Update the structure of various nodes.
	(ABE_Is_Certain): Removed along with pragma Inline.
	(Is_Declaration_Level_Node): New routine along with pragma Inline.
	(Is_Dispatching_Call): New routine along with pragma Inline.
	(Is_Elaboration_Checks_OK_Node): New routine along with pragma Inline.
	(Is_Initialization_Block): New routine along with pragma Inline.
	(Is_Known_Guaranteed_ABE): New routine along with pragma Inline.
	(Is_Recorded_Scenario): New routine along with pragma Inline.
	(Is_Source_Call): New routine along with pragma Inline.
	(Is_SPARK_Mode_On_Node): New routine along with pragma Inline.
	(No_Elaboration_Check): Removed along with pragma Inline.
	(Target): New routine along with pragma Inline.
	(Was_Attribute_Reference): New routine along with pragma Inline.
	(Set_ABE_Is_Certain): Removed along with pragma Inline.
	(Set_Is_Declaration_Level_Node): New routine along with pragma Inline.
	(Set_Is_Dispatching_Call): New routine along with pragma Inline.
	(Set_Is_Elaboration_Checks_OK_Node): New routine along with pragma
	Inline.
	(Set_Is_Initialization_Block): New routine along with pragma Inline.
	(Set_Is_Known_Guaranteed_ABE): New routine along with pragma Inline.
	(Set_Is_Recorded_Scenario): New routine along with pragma Inline.
	(Set_Is_Source_Call): New routine along with pragma Inline.
	(Set_Is_SPARK_Mode_On_Node): New routine along with pragma Inline.
	(Set_No_Elaboration_Check): Removed along with pragma Inline.
	(Set_Target): New routine along with pragma Inline.
	(Set_Was_Attribute_Reference): New routine along with pragma Inline.
	* sprint.adb (Sprint_Node_Actual): Add an entry for N_Call_Marker.

From-SVN: r253559
2017-10-09 19:43:32 +00:00
2017-10-09 19:43:32 +00:00

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the files whose
names start with COPYING for copying permission.  The manuals, and
some of the runtime libraries, are under different terms; see the
individual source files for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs/ for how to report bugs usefully.

Copyright years on GCC source files may be listed using range
notation, e.g., 1987-2012, indicating that every year in the range,
inclusive, is a copyrightable year that could otherwise be listed
individually.
Description
No description provided
Readme 2.1 GiB
Languages
C++ 31.9%
C 31.3%
Ada 12%
D 6.5%
Go 6.4%
Other 11.5%