Commit Graph

153057 Commits

Author SHA1 Message Date
Claudiu Zissulescu
a0caeef6c8 [ARC] Differentiate between ARCv1 and ARCv2 'h'-reg class for ADD insns.
gcc/
2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (arc_output_addsi): Check for h-register class
	when emitting short ADD instructions.

From-SVN: r247195
2017-04-25 14:03:30 +02:00
Claudiu Zissulescu
0e03cebd10 [ARC] Differentiate between ARCv1 and ARCv2 'h'-reg class for CMP insns.
gcc/
2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
	constraint.
	(cmpsi_cc_c_insn): Likewise.
	(cbranchsi4_scratch): Compute proper instruction length using
	compact_hreg_operand.
	* config/arc/predicates.md (compact_hreg_operand): New predicate.

From-SVN: r247194
2017-04-25 14:03:19 +02:00
Arnaud Charlet
bac865a217 Code clenups.
From-SVN: r247193
2017-04-25 14:01:32 +02:00
Arnaud Charlet
321c24f75d [multiple changes]
2017-04-25  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Add_Internal_Interface_Entities): Move
	Has_Non_Trivial_Precondition to sem_util. for use elsewhere.
	Improve error message on operations that inherit non-conforming
	classwide preconditions from ancestor and progenitor.
	* sem_util.ads, sem_util.adb (Has_Non_Trivial_Precondition):
	moved here from sem_ch3.
	* sem_ch8.adb (Analyze_Subprogram_Renaming): Implement legality
	check given in RM 6.1.1 (17) concerning renamings of overriding
	operations that inherits class-wide preconditions from ancestor
	or progenitor.

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Code cleanup.
	(Build_Adjust_Statements): Code cleanup.
	(Build_Finalizer): Update the initialization of
	Exceptions_OK.
	(Build_Finalize_Statements): Code cleanup.
	(Build_Initialize_Statements): Code cleanup.
	(Make_Deep_Array_Body): Update the initialization of
	Exceptions_OK.
	(Make_Deep_Record_Body): Update the initialization of Exceptions_OK.
	(Process_Object_Declaration): Generate a null exception handler only
	when exceptions are allowed.
	(Process_Transients_In_Scope): Update the initialization of
	Exceptions_OK.
	* exp_util.ads, exp_util.adb (Exceptions_In_Finalization_OK): New
	routine.
	* sem_ch11.adb (Analyze_Exception_Handlers): Do not check any
	restrictions when the handler is internally generated and the
	mode is warnings.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Has_Non_Trivial_Precondition): New predicate to
	enforce legality rule on classwide preconditions inherited from
	both an ancestor and a progenitor (RM 6.1.1 (10-13).
	* sem_disp.adb (Check_Dispatching_Context): A call to an abstract
	subprogram need not be dispatching if it appears in a precondition
	for an abstract or null subprogram.

2017-04-25  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch10.adb: Minor typo fix.

From-SVN: r247192
2017-04-25 14:00:46 +02:00
Arnaud Charlet
6948bc18f0 * gcc-interface/Makefile.in: Cleanup VxWorks targets.
From-SVN: r247186
2017-04-25 13:03:52 +02:00
Arnaud Charlet
cc0b3bac55 Minor reformatting.
From-SVN: r247184
2017-04-25 12:54:29 +02:00
Arnaud Charlet
457cee0b84 [multiple changes]
2017-04-25  Eric Botcazou  <ebotcazou@adacore.com>

	* fname.adb (Is_Internal_File_Name): Arrange for the slices to
	have a length which is a power of 2.
	(Is_Predefined_File_Name): Likewise. Adjust comment.

2017-04-25  Bob Duff  <duff@adacore.com>

	* exp_aggr.adb (Component_Count): Protect the
	arithmetic from attempting to convert a value >= 2**31 to Int,
	which would otherwise raise Constraint_Error.

2017-04-25  Bob Duff  <duff@adacore.com>

	* opt.ads (Locking_Policy): Fix incorrect documentation. The
	first character of the policy name is not unique.

2017-04-25  Bob Duff  <duff@adacore.com>

	* s-fileio.adb (Name): Raise Use_Error if the file is a temp file.
	* s-ficobl.ads (Is_Temporary_File): Remove incorrect comment
	about this flag not being used. It was already used, and it is
	now used more.

From-SVN: r247183
2017-04-25 12:52:13 +02:00
Arnaud Charlet
cf9a473e64 [multiple changes]
2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* einfo.adb Flag301 is now known as Ignore_SPARK_Mode_Pragmas.
	(Ignore_SPARK_Mode_Pragmas): New routine.
	(Set_Ignore_SPARK_Mode_Pragmas): New routine.
	(Write_Entity_Flags): Add an entry for Ignore_SPARK_Mode_Pragmas.
	* einfo.ads Add new attribute Ignore_SPARK_Mode_Pragmas and update
	related entities.
	(Ignore_SPARK_Mode_Pragmas): New routine
	along with pragma Inline.
	(Set_Ignore_SPARK_Mode_Pragmas): New routine along with pragma Inline.
	* opt.ads Rename flag Ignore_Pragma_SPARK_Mode to
	Ignore_SPARK_Mode_Pragmas_In_Instance.
	* sem_ch6.adb (Analyze_Subprogram_Body_Helper):
	Save and restore the value of global flag
	Ignore_SPARK_Mode_Pragmas_In_Instance. Set or reinstate the value
	of global flag Ignore_SPARK_Mode_Pragmas_In_Instance when either
	the corresponding spec or the body must ignore all SPARK_Mode
	pragmas found within.
	(Analyze_Subprogram_Declaration): Mark
	the spec when it needs to ignore all SPARK_Mode pragmas found
	within to allow the body to infer this property in case it is
	instantiated or inlined later.
	* sem_ch7.adb (Analyze_Package_Body_Helper): Save and restore the
	value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance. Set
	the value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance
	when the corresponding spec also ignored all SPARK_Mode pragmas
	found within.
	(Analyze_Package_Declaration): Mark the spec when
	it needs to ignore all SPARK_Mode pragmas found within to allow
	the body to infer this property in case it is instantiated or
	inlined later.
	* sem_ch12.adb (Analyze_Formal_Package_Declaration):
	Save and restore the value of flag
	Ignore_SPARK_Mode_Pragmas_In_Instance. Mark the
	formal spec when it needs to ignore all SPARK_Mode
	pragmas found within to allow the body to infer this
	property in case it is instantiated or inlined later.
	(Analyze_Package_Instantiation): Save and restore the value
	of global flag Ignore_SPARK_Mode_Pragmas_In_Instance. Mark
	the instance spec when it needs to ignore all SPARK_Mode
	pragmas found within to allow the body to infer this
	property in case it is instantiated or inlined later.
	(Analyze_Subprogram_Instantiation): Save and restore the value
	of global flag Ignore_SPARK_Mode_Pragmas_In_Instance. Mark the
	instance spec and anonymous package when they need to ignore
	all SPARK_Mode pragmas found within to allow the body to infer
	this property in case it is instantiated or inlined later.
	(Instantiate_Package_Body): Save and restore the value of global
	flag Ignore_SPARK_Mode_Pragmas_In_Instance. Set the value of
	global flag Ignore_SPARK_Mode_Pragmas_In_Instance when the
	corresponding instance spec also ignored all SPARK_Mode pragmas
	found within.
	(Instantiate_Subprogram_Body): Save and restore the
	value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance. Set
	the value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance
	when the corresponding instance spec also ignored all SPARK_Mode
	pragmas found within.
	* sem_prag.adb (Analyze_Pragma): Update the reference to
	Ignore_Pragma_SPARK_Mode.
	* sem_util.adb (SPARK_Mode_Is_Off): A construct which ignored
	all SPARK_Mode pragmas defined within yields mode "off".

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* bindgen.adb, exp_dbug.adb, errout.adb, fname.adb: Minor reformatting.

2017-04-25  Bob Duff  <duff@adacore.com>

	* exp_atag.adb (Build_CW_Membership): Add "Suppress =>
	All_Checks" to avoid generating unnecessary checks.
	* exp_ch4.adb (Expand_N_In, Make_Tag_Check): Add "Suppress =>
	All_Checks".
	* sem.ads: Fix comment.
	* expander.ads: Fix comment.
	* exp_atag.ads: Fix comment: "Index = 0" should be
	"Index >= 0".

2017-04-25  Gary Dismukes  <dismukes@adacore.com>

	* s-taprop-linux.adb: Minor editorial fixes.

From-SVN: r247182
2017-04-25 12:49:34 +02:00
Arnaud Charlet
1f0bcd44fe sem_util.adb (New_Copy_Tree): Put back the declarations of the hash tables at library level.
2017-04-25  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_util.adb (New_Copy_Tree): Put back the declarations of the
	hash tables at library level.  Reinstate the NCT_Hash_Tables_Used
	variable and set it to True whenever the main hash table is
	populated.  Short- circuit the Assoc function if it is false
	and add associated guards.

From-SVN: r247181
2017-04-25 12:46:54 +02:00
Hristian Kirtchev
62e45e3e70 checks.adb (Insert_Valid_Check): Code cleanup.
2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* checks.adb (Insert_Valid_Check): Code cleanup.
	* exp_ch6.adb (Add_Validation_Call_By_Copy_Code): New routine.
	(Expand_Actuals): Generate proper copy-back for a validation
	variable when it acts as the argument of a type conversion.
	* sem_util.adb (Is_Validation_Variable_Reference): Augment the
	predicate to operate on type qualifications.

From-SVN: r247180
2017-04-25 12:43:14 +02:00
Hristian Kirtchev
ec40b86c77 sem_prag.adb, [...]: Minor reformatting.
2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb, exp_ch6.adb, binde.adb, sem_disp.adb, s-fileio.adb:
	Minor reformatting.

From-SVN: r247179
2017-04-25 12:40:23 +02:00
Bob Duff
ca1f6b2991 sem_prag.adb (No_Return): Give an error if the pragma applies to a body.
2017-04-25  Bob Duff  <duff@adacore.com>

	* sem_prag.adb (No_Return): Give an error if the pragma applies
	to a body. Specialize the error for the specless body case,
	as is done for (e.g.) pragma Convention.
	* debug.adb: Add switch -gnatd.J to disable the above legality
	checks. This is mainly for use in our test suite, to avoid
	rewriting a lot of illegal (but working) code.	It might also
	be useful to customers. Under this switch, if a pragma No_Return
	applies to a body, and the procedure raises an exception (as it
	should), the pragma has no effect. If the procedure does return,
	execution is erroneous.

2017-04-25  Bob Duff  <duff@adacore.com>

	* exp_ch6.adb (Expand_Actuals): This is the
	root of the problem. It took N as an 'in out' parameter, and in
	some cases, rewrote N, but then set N to Original_Node(N). So
	the node returned in N had no Parent. The caller continued
	processing of this orphaned node. In some cases that caused a
	crash (e.g. Remove_Side_Effects climbs up Parents in a loop,
	and trips over the Empty Parent). The solution is to make N an
	'in' parameter.  Instead of rewriting it, return the list of
	post-call actions, so the caller can do the rewriting later,
	after N has been fully processed.
	(Expand_Call_Helper): Move most of Expand_Call here. It has
	too many premature 'return' statements, and we want to do the
	rewriting on return.
	(Insert_Post_Call_Actions): New procedure to insert the post-call
	actions in the appropriate place. In the problematic case,
	that involves rewriting N as an Expression_With_Actions.
	(Expand_Call): Call the new procedures Expand_Call_Helper and
	Insert_Post_Call_Actions.

From-SVN: r247178
2017-04-25 12:39:02 +02:00
Arnaud Charlet
36357cf398 [multiple changes]
2017-04-25  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Inherits_Class_Wide_Pre): Cleanup code, handle
	properly type derived from generic formal types, to handle
	properly modified version of ACATS 4.1B B611017.

2017-04-25  Javier Miranda  <miranda@adacore.com>

	* exp_unst.adb (Subp_Index): Adding missing
	support for renamings and functions that return a constrained
	array type (i.e. functions for which the frontend built a
	procedure with an extra out parameter).

2017-04-25  Pascal Obry  <obry@adacore.com>

	* s-string.adb: Minor code clean-up.

2017-04-25  Bob Duff  <duff@adacore.com>

	* s-os_lib.ads, s-os_lib.adb (Non_Blocking_Wait_Process): New
	procedure.
	* adaint.h, adaint.c (__gnat_portable_no_block_wait): C support
	function for Non_Blocking_Wait_Process.

2017-04-25  Bob Duff  <duff@adacore.com>

	* prep.adb (Preprocess): Remove incorrect
	Assert. Current character can be ASCII.CR.

From-SVN: r247177
2017-04-25 12:33:46 +02:00
Arnaud Charlet
48c8c47393 [multiple changes]
2017-04-25  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Set_Convention_From_Pragma): Cleanup code for
	convention Stdcall, which has a number of exceptions. Convention
	is legal on a component declaration whose type is an anonymous
	access to subprogram.

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch4.adb: sem_ch4.adb Various reformattings.
	(Try_One_Prefix_Interpretation): Use the base type when dealing
	with a subtype created for purposes of constraining a private
	type with discriminants.

2017-04-25  Javier Miranda  <miranda@adacore.com>

	* einfo.ads, einfo.adb (Has_Private_Extension): new attribute.
	* warnsw.ads, warnsw.adb (All_Warnings): Set warning on late
	dispatching primitives (Restore_Warnings): Restore warning on
	late dispatching primitives (Save_Warnings): Save warning on late
	dispatching primitives (Do_Warning_Switch): Use -gnatw.j/-gnatw.J
	to enable/disable this warning.
	(WA_Warnings): Set warning on late dispatching primitives.
	* sem_ch3.adb (Analyze_Private_Extension_Declaration): Remember
	that its parent type has a private extension.
	* sem_disp.adb (Warn_On_Late_Primitive_After_Private_Extension):
	New subprogram.
	* usage.adb: Document -gnatw.j and -gnatw.J.

From-SVN: r247176
2017-04-25 12:30:55 +02:00
Arnaud Charlet
94295b2593 [multiple changes]
2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch7.adb, checks.adb, sem_prag.adb, eval_fat.adb: Minor
	reformatting.

2017-04-25  Bob Duff  <duff@adacore.com>

	* binde.adb (Validate): Do not pass dynamic strings
	to pragma Assert, because older compilers do not support that.

2017-04-25  Bob Duff  <duff@adacore.com>

	* s-fileio.adb (Close): When a temp file is
	closed, delete it and clean up its Temp_File_Record immediately,
	rather than waiting until later.
	(Temp_File_Record): Add File
	component, so Close can know which Temp_File_Record corresponds
	to the file being closed.
	(Delete): Don't delete temp files,
	because they are deleted by Close.
	(Open): Set the File component
	of Temp_File_Record. This requires moving the creation of the
	Temp_File_Record to the end, after the AFCB has been created.

From-SVN: r247175
2017-04-25 12:26:52 +02:00
Arnaud Charlet
b0cd50fdc3 [multiple changes]
2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* checks.adb (Insert_Valid_Check): Do not generate
	a validity check when inside a generic.

2017-04-25  Yannick Moy  <moy@adacore.com>

	* sem_res.adb (Resolve_Type_Conversion): Fix bad logic.

2017-04-25  Arnaud Charlet  <charlet@adacore.com>

	* snames.ads-tmpl (Snames): More names for detecting predefined
	potentially blocking subprograms.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Analyze_Pre_Post_Condition): The rules
	concerning inheritance of class-wide preconditions do not apply
	to postconditions.

2017-04-25  Bob Duff  <duff@adacore.com>

	* s-ficobl.ads: Minor comment fix.

From-SVN: r247174
2017-04-25 12:11:06 +02:00
Yannick Moy
d8ee014f29 checks.adb (Apply_Scalar_Range_Check): Analyze precisely conversions from float to integer in GNATprove mode.
2017-04-25  Yannick Moy  <moy@adacore.com>

	* checks.adb (Apply_Scalar_Range_Check): Analyze precisely
	conversions from float to integer in GNATprove mode.
	(Apply_Type_Conversion_Checks): Make sure in GNATprove mode
	to call Apply_Type_Conversion_Checks, so that range checks
	are properly positioned when needed on conversions, including
	when converting from float to integer.	(Determine_Range): In
	GNATprove mode, take into account the possibility of conversion
	from float to integer.
	* sem_res.adb (Resolve_Type_Conversion): Only enforce range
	check on conversions from fixed-point to integer, not anymore
	on conversions from floating-point to integer, when in GNATprove
	mode.

From-SVN: r247173
2017-04-25 12:09:31 +02:00
Yannick Moy
3c77943ebf checks.adb (Determine_Range_R): Special case type conversions from integer to float in order to get bounds in...
2017-04-25  Yannick Moy  <moy@adacore.com>

	* checks.adb (Determine_Range_R): Special case type conversions
	from integer to float in order to get bounds in that case too.
	* eval_fat.adb (Machine): Avoid issuing warnings in GNATprove
	mode, for computations involved in interval checking.

From-SVN: r247172
2017-04-25 12:08:00 +02:00
Richard Biener
468afa1ada re PR bootstrap/80509 (ICE in cc1 during selftests)
2017-04-25  Richard Biener  <rguenther@suse.de>

	PR middle-end/80509
	* passes.c (pass_manager::pass_manager): Initialize
	m_name_to_pass_map.

From-SVN: r247171
2017-04-25 10:07:58 +00:00
Arnaud Charlet
89b6c83e25 [multiple changes]
2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* checks.adb (Insert_Valid_Check): Partially reimplement validity
	checks.
	* einfo.adb Node36 is now used as Validated_Object.
	(Validated_Object): New routine.
	(Set_Validated_Object): New routine.
	(Write_Field36_Name): Add an entry for Validated_Object.
	* einfo.ads Add new attribute Validated_Object along with
	usage in entities.
	(Validated_Object): New routine along with pragma Inline.
	(Set_Validated_Object): New routine along with pragma Inline.
	* exp_attr.adb (Make_Range_Test): Add processing for validation
	variables to avoid extra reads and copies of the prefix.
	* exp_ch6.adb (Expand_Actuals): Add copy-back for validation
	variables in order to reflect any changes done in the variable
	back into the original object.
	* sem_util.adb (Is_Validation_Variable_Reference): New routine.
	* sem_util.ads (Is_Validation_Variable_Reference): New routine.

2017-04-25  Steve Baird  <baird@adacore.com>

	* exp_ch7.adb (Build_Array_Deep_Procs,
	Build_Record_Deep_Procs, Make_Finalize_Address_Body): Don't
	generate Finalize_Address routines for CodePeer.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Inherits_Class_Wide_Pre): subsidiary of
	Analyze_Pre_Post_Condition, to implement the legality checks
	mandated by AI12-0131: Pre'Class shall not be specified for an
	overriding primitive subprogram of a tagged type T unless the
	Pre'Class aspect is specified for the corresponding primitive
	subprogram of some ancestor of T.

From-SVN: r247170
2017-04-25 12:03:40 +02:00
Arnaud Charlet
c6840e83cc [multiple changes]
2017-04-25  Bob Duff  <duff@adacore.com>

	* sem_ch8.adb (Use_One_Type): If a use_type_clause
	is redundant, set its Used_Operations to empty. This is only
	necessary for use clauses that appear in the parent of a generic
	child unit, because those use clauses get reanalyzed when we
	instantiate the generic, and we don't want the Used_Operations
	carried over from the original context (where it was probably
	not redundant).

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch6.adb: Minor reformatting.

From-SVN: r247169
2017-04-25 11:47:33 +02:00
Arnaud Charlet
f2a54683c6 [multiple changes]
2017-04-25  Bob Duff  <duff@adacore.com>

	* sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
	Use Source_Index (Current_Sem_Unit) to find the correct casing.
	* exp_prag.adb (Expand_Pragma_Check): Use Source_Index
	(Current_Sem_Unit) to find the correct casing.
	* par.adb (Par): Null out Current_Source_File, to ensure that
	the above bugs won't rear their ugly heads again.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Find_Type): For an attribute reference
	'Class, if prefix type is synchronized and previous errors
	have suppressed the creation of the corresponding record type,
	create a spurious class-wide for the synchonized type itself,
	to catch other misuses of the attribute

2017-04-25  Steve Baird  <baird@adacore.com>

	* exp_ch6.adb (Expand_Simple_Function_Return): if CodePeer_Mode
	is True, then don't generate the accessibility check for the
	tag of a tagged result.
	* exp_intr.adb (Expand_Dispatching_Constructor_Call):
	if CodePeer_Mode is True, then don't generate the
	tag checks for the result of call to an instance of
	Ada.Tags.Generic_Dispatching_Constructor (i.e., both the "is a
	descendant of" check and the accessibility check).

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb: Code cleanups.
	* a-strbou.ads: minor whitespace fix in Trim for bounded strings.
	* sem_ch8.ads: Minor comment fix.

From-SVN: r247168
2017-04-25 11:46:05 +02:00
Arnaud Charlet
2df23f66e2 [multiple changes]
2017-04-25  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch4.adb (Library_Level_Target): New function.
	(Expand_Concatenate): When optimization is enabled, also expand
	the operation out-of-line if the concatenation is present within
	the expression of the declaration of a library-level object and
	not only if it is the expression of the declaration.

2017-04-25  Bob Duff  <duff@adacore.com>

	* freeze.adb (Freeze_Object_Declaration): Do
	not Remove_Side_Effects if there is a pragma Linker_Section,
	because in that case we want static initialization in the
	appropriate section.

2017-04-25  Gary Dismukes  <dismukes@adacore.com>

	* exp_dbug.adb: Minor rewording and reformatting.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb (Statically_Denotes_Object): New predicate, to
	handle the proposed changes to rules concerning potentially
	unevaluated expressions, to include selected components that
	do not depend on discriminants, and indexed components with
	static indices.
	* sem_util.adb (Is_Potentially_Unevaluated): Add check for
	predicate in quantified expression, and fix bugs in the handling
	of case expressions and membership test.
	(Analyze_Attribute_Old_Result): use new predicate.
	(Analyze_Attribute, case Loop_Entry): ditto.

From-SVN: r247167
2017-04-25 11:42:56 +02:00
Arnaud Charlet
d9049849d0 [multiple changes]
2017-04-25  Bob Duff  <duff@adacore.com>

	* s-secsta.adb (SS_Info): Add a comment
	explaining why we don't need to walk all the chunks in order to
	compute the total size.

2017-04-25  Bob Duff  <duff@adacore.com>

	* namet.ads, namet.adb (Global_Name_Buffer): Increase the length
	of the global name buffer to 4*Max_Line_Length.

2017-04-25  Javier Miranda  <miranda@adacore.com>

	* exp_ch8.adb (Expand_N_Object_Renaming_Declaration): When creating a
	renaming entity for debug information, mark the entity as needing debug
	info if it comes from sources.

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Remove the
	restriction converning the use of 'Address where the prefix is
	of a controlled type.

2017-04-25  Pierre-Marie de Rodat  <derodat@adacore.com>

	* exp_dbug.adb: In Debug_Renaming_Declaration,
	skip slices that are made redundant by an indexed component
	access.
	* atree.h: New definition for Original_Node.

From-SVN: r247166
2017-04-25 11:40:48 +02:00
Hristian Kirtchev
db78cb8134 sem_prag.adb, [...]: Minor reformatting.
2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb, sem_prag.ads: Minor reformatting.

From-SVN: r247165
2017-04-25 11:37:51 +02:00
Arnaud Charlet
2671885430 Minor reformatting.
From-SVN: r247164
2017-04-25 11:37:00 +02:00
Ed Schonberg
0c85534d6f sem_ch3.adb (Check_Entry_Contract): Call Preanalyze_Spec_Expression so that resolution takes place as well.
2017-04-25  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Check_Entry_Contract): Call
	Preanalyze_Spec_Expression so that resolution takes place as well.
	* sem_util.adb (Check_Internal_Protected_Use): Reject properly
	internal calls that appear in preconditions of protected
	operations, in default values for same, and in contract guards
	for contract cases in SPARK.

From-SVN: r247163
2017-04-25 11:36:51 +02:00
Arnaud Charlet
be3416c681 [multiple changes]
2017-04-25  Eric Botcazou  <ebotcazou@adacore.com>

	* a-numaux.ads: Fix description of a-numaux-darwin
	and a-numaux-x86.
	(Double): Define to Long_Float.
	* a-numaux-vxworks.ads (Double): Likewise.
	* a-numaux-darwin.ads
	(Double): Likewise.
	* a-numaux-libc-x86.ads (Double): Define to Long_Long_Float.
	* a-numaux-x86.ads: Fix package description.
	* a-numaux-x86.adb (Is_Nan): Minor tweak.
	(Reduce): Adjust and complete description. Call Is_Nan instead of
	testing manually. Use an integer temporary to hold rounded value.
	* a-numaux-darwin.adb (Reduce): Likewise.
	(Is_Nan): New function.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Analyze_Selected_Component): Additional refinement
	on analysis of prefix whose type is a current instance of a
	synchronized type, but where the prefix itself is an entity that
	is an object.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch5.adb (Replace_Target): When rewriting the RHS, preserve
	the identity of callable entities therein, because they have been
	properly resolved, and prefixed calls may have been rewritten
	as normal calls.

2017-04-25  Patrick Bernardi  <bernardi@adacore.com>

	* exp_ch3.adb (Build_Init_Statements): Convert
	the expression of the pragma/aspect Secondary_Stack_Size to
	internal type System.Parameters.Size_Type before assigning
	it to the Secondary_Stack_Size component of the task type's
	corresponding record.

2017-04-25  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_eval.adb (Compile_Time_Compare): Reinstate the expr+literal
	(etc) optimizations when the type is modular and the offsets
	are equal.

2017-04-25  Eric Botcazou  <ebotcazou@adacore.com>

	* s-osinte-freebsd.ads: Minor comment tweaks

2017-04-25  Javier Miranda  <miranda@adacore.com>

	* urealp.adb (UR_Write): Reverse previous patch
	adding documentation on why we generate multiplications instead
	of divisions (needed to avoid expressions whose computation with
	large numbers may cause division by 0).

2017-04-25  Bob Duff  <duff@adacore.com>

	* erroutc.adb (Set_Specific_Warning_Off,
	Set_Warnings_Mode_Off): Use the correct source file for
	Stop. Was using Current_Source_File, which is only valid during
	parsing. Current_Source_File will have a leftover value from
	whatever file happened to be parsed last, because of a with_clause
	or something.

2017-04-25  Bob Duff  <duff@adacore.com>

	* lib.ads, lib.adb (In_Internal_Unit): New functions similar
	to In_Predefined_Unit, but including GNAT units.
	* sem_util.ads, sem_util.adb (Should_Ignore_Pragma): Replace
	with Should_Ignore_Pragma_Par and Should_Ignore_Pragma_Sem,
	because Should_Ignore_Pragma was not working reliably outside
	the parser, because Current_Source_File is not valid.
	* sem_prag.adb, exp_prag.adb: Call Should_Ignore_Pragma_Sem.
	* par-prag.adb: Call Should_Ignore_Pragma_Par.

From-SVN: r247162
2017-04-25 11:35:46 +02:00
Arnaud Charlet
003d46d5f3 Code cleanups.
From-SVN: r247161
2017-04-25 11:29:17 +02:00
Arnaud Charlet
f4f5851ea3 2017-04-25 Arnaud Charlet <charlet@adacore.com trojanek>
* gnat1drv.adb (Gnat1Drv): Disable Generate_Processed_File in
	codepeer mode.

2017-04-25  Javier Miranda  <miranda@adacore.com>

	* urealp.adb (UR_Write): Fix output of constants with a base other
	that 10.

2017-04-25  Justin Squirek  <squirek@adacore.com>

	* sem_ch13.adb (Get_Interfacing_Aspects): Moved to sem_util.adb.
	* sem_prag.adb (Analyze_Pragma, Process_Import_Or_Interface):
	Add extra parameter for Process_Interface_Name.
	(Process_Interface_Name): Add parameter for pragma to analyze
	corresponding aspect.
	* sem_util.ads, sem_util.adb (Get_Interfacing_Aspects): Added
	from sem_ch13.adb

From-SVN: r247160
2017-04-25 11:28:49 +02:00
Richard Biener
2700fbd655 re PR tree-optimization/79201 (missed optimization: sinking doesn't handle calls, swap PRE and sinking)
2017-04-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/79201
	* tree-ssa-sink.c (statement_sink_location): Handle calls.

	* gcc.dg/tree-ssa/ssa-sink-16.c: New testcase.
	* gcc.target/i386/pr22152.c: Disable sinking.

From-SVN: r247159
2017-04-25 09:26:37 +00:00
Arnaud Charlet
bfda9ccde6 Code clean ups.
From-SVN: r247158
2017-04-25 11:25:55 +02:00
Arnaud Charlet
ded462b0de [multiple changes]
2017-04-25  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch7.adb, einfo.ads, sem_prag.adb: Minor reformatting and typo
	correction.

2017-04-25  Yannick Moy  <moy@adacore.com>

	* sem_res.adb (Resolve_Comparison_Op): Do not
	attempt evaluation of relational operations inside assertions.

2017-04-25  Justin Squirek  <squirek@adacore.com>

	* exp_util.adb (Add_Interface_Invariants):
	Restored, code moved back from Build_Invariant_Procedure_Body.
	(Add_Parent_Invariants): Restored, code moved back from
	Build_Invariant_Procedure_Body.
	(Build_Invariant_Procedure_Body):
	Remove refactored calls and integrated code from
	Add_Parent_Invariants and Add_Interface_Invariants.

2017-04-25  Johannes Kanig  <kanig@adacore.com>

	* errout.adb (Output_Messages): Adjust computation of total
	errors
	* erroutc.adb (Error_Msg): In statistics counts, deal
	correctly with informational messages that are not warnings.
	* errutil.adb (Finalize): adjust computation of total errors.

2017-04-25  Arnaud Charlet  <charlet@adacore.com trojanek>

	* terminals.c (__gnat_terminate_pid): New.
	* g-exptty.ads (Terminate_Process): New. Update comments.

From-SVN: r247157
2017-04-25 11:25:40 +02:00
Arnaud Charlet
d1eb8a82b2 [multiple changes]
2017-04-25  Arnaud Charlet  <charlet@adacore.com>

	* a-cfinve.ads, a-cofove.ads (Empty_Vector): add Global contract.

2017-04-25  Justin Squirek  <squirek@adacore.com>

	* sem_ch3.adb (Analyze_Declarations): Minor
	correction to comments, move out large conditional and scope
	traversal into a predicate.
	(Uses_Unseen_Lib_Unit_Priv): Predicate function made from extracted
	logic.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Analyze_Selected_Component): Refine analysis
	of prefix whose type is a current instance of a synchronized
	type. If the prefix is an object this is an external call (or
	requeue) that can only access public operations of the object. The
	previous predicate was too restrictive, and did not allow public
	protected operations, only task entries.

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch5.adb, fname.adb: Minor reformatting.

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* einfo.adb (Is_Anonymous_Access_Type): New routine.
	* einfo.ads Update the placement of
	E_Anonymous_Access_Subprogram_Type along with all subtypes that
	mention the ekind.
	(Is_Anonymous_Access_Type): New routine.
	* exp_ch7.adb (Allows_Finalization_Master): Do not generate a
	master for an access type subject to pragma No_Heap_Finalization.
	* exp_util.adb (Build_Allocate_Deallocate_Proc): An object being
	allocated or deallocated does not finalization actions if the
	associated access type is subject to pragma No_Heap_Finalization.
	* opt.ads Add new global variable No_Heap_Finalization_Pragma.
	* par-prag.adb Pragma No_Heap_Finalization does not need special
	processing from the parser.
	* sem_ch6.adb (Check_Return_Subtype_Indication): Remove ancient
	??? comments. Use the new predicate Is_Anonymous_Access_Type.
	* sem_prag.adb Add an entry in table Sig_Flags for pragma
	No_Heap_Finalization.
	(Analyze_Pragma): Add processing for
	pragma No_Heap_Finalization. Update various error messages to
	use Duplication_Error.
	* sem_util.ads, sem_util.adb (No_Heap_Finalization): New routine.
	* snames.ads-tmpl: Add new predefined name No_Heap_Finalization
	and corresponding pragma id.

From-SVN: r247156
2017-04-25 11:22:43 +02:00
Arnaud Charlet
820f11620e [multiple changes]
2017-04-25  Bob Duff  <duff@adacore.com>

	* freeze.adb (Freeze_Record_Type): Use the
	underlying type of the component type to determine whether it's
	elementary. For representation clause purposes, a private type
	should behave the same as its full type.
	* fname.ads, fname.adb (Is_Predefined_File_Name):
	Make sure things like "system.ali" are recognized as predefined.

2017-04-25  Javier Miranda  <miranda@adacore.com>

	* debug.adb: Update documentation of -gnatd.6.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Preanalyze_Range): Handle properly an Ada2012
	element iterator when the name is an overloaded function call,
	one of whose interpretations yields an array.

From-SVN: r247155
2017-04-25 11:19:34 +02:00
Arnaud Charlet
998429d6f2 [multiple changes]
2017-04-25  Bob Duff  <duff@adacore.com>

	* uname.ads, uname.adb (Is_Predefined_Unit_Name,
	Is_Internal_Unit_Name): New functions for operating on unit
	names, as opposed to file names. There's some duplicated code
	with fname.adb, which is unfortunate, but it seems like we don't
	want to add dependencies here.
	* fname-uf.adb (Get_File_Name): Change Is_Predefined_File_Name
	to Is_Predefined_Unit_Name; the former was wrong, because Uname
	is not a file name at all.
	* fname.ads, fname.adb: Document the fact that
	Is_Predefined_File_Name and Is_Internal_File_Name can be called
	for ALI files, and fix the code so it works properly for ALI
	files. E.g. these should return True for "system.ali".

2017-04-25  Justin Squirek  <squirek@adacore.com>

	* exp_util.adb (Add_Invariant): Removed,
	code moved to Add_Invariant_Check, Add_Inherited_Invariant,
	and Add_Own_Invariant.	(Add_Invariant_Check): Used
	for adding runtime checks from any kind of invariant.
	(Add_Inherited_Invariant): Generates invariant checks for
	class-wide invariants (Add_Interface_Invariants): Removed, code
	moved to Build_Invariant_Procedure_Body (Add_Own_Invariant):
	Create a types own invariant procedure (Add_Parent_Invariants):
	Removed, code moved to Build_Invariant_Procedure_Body
	(Build_Invariant_Procedure_Body): Add refactored calls
	and integrated code from Add_Parent_Invariants and
	Add_Interface_Invariants.
	(Process_Type): Removed, the
	relavant code was inlined into both Add_Own_Invariant and
	Add_Inherited_Invariant.

From-SVN: r247154
2017-04-25 11:14:07 +02:00
Arnaud Charlet
94d3a18d33 [multiple changes]
2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* make.adb, par-ch2.adb, sem_util.adb, scans.ads, sem_ch8.adb,
	scn.adb, osint.adb, fname.adb: Minor reformatting.

2017-04-25  Pascal Obry  <obry@adacore.com>

	* s-taprop-mingw.adb: Do not check for CloseHandle in
	Finalize_TCB.

From-SVN: r247153
2017-04-25 11:12:31 +02:00
Arnaud Charlet
51148ddab1 [multiple changes]
2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_util.adb (Check_Part_Of_Reference):
	Continue to examine the context if the reference appears within
	an expression function.

2017-04-25  Justin Squirek  <squirek@adacore.com>

	* exp_ch7.adb, exp_ch7.ads Remove Build_Invariant_Procedure_Body
	and Build_Invariant_Procedure_Declaration.
	* exp_util.ads, exp_util.adb Add Build_Invariant_Procedure_Body
	and Build_Invariant_Procedure_Declaration from exp_ch7
	and break-out Is_Untagged_Private_Derivation from
	Build_Invariant_Procedure_Body.
	(Replace_Type_References):
	Append an extra parameter to allow for dispatching replacements
	and add the corrasponding logic.
	(Type_Invariant): Remove
	Replace_Typ_Refs and replace its references with calls to
	Replace_Type_References.
	* sem_ch3.adb, sem_prag.adb: Remove with and use of exp_ch7.

From-SVN: r247152
2017-04-25 11:06:09 +02:00
Arnaud Charlet
b043ae0111 [multiple changes]
2017-04-25  Bob Duff  <duff@adacore.com>

	* sem_util.ads, sem_util.adb (Should_Ignore_Pragma): New function
	that returns True when appropriate.
	* par-prag.adb, exp_prag.adb, sem_prag.adb: Do not ignore pragmas
	when compiling predefined files.
	* fname.ads, fname.adb (Is_Predefined_File_Name): Fix bug:
	"gnat.adc" should not be considered a predefined file name.
	That required (or at least encouraged) a lot of cleanup of global
	variable usage. We shouldn't be communicating information via
	the global name buffer.
	* bindgen.adb, errout.adb, fname-uf.adb, lib-load.adb, make.adb,
	* restrict.adb, sem_ch10.adb, sem_ch6.adb, sem_ch8.adb: Changes
	required by the above-mentioned cleanup.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

	* osint.adb (Find_File): Handle properly a request for a
	configuration file whose name is a directory.

From-SVN: r247151
2017-04-25 11:00:45 +02:00
Arnaud Charlet
b6e6a4e380 [multiple changes]
2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_attr.adb, sem_ch5.adb: Minor reformatting.

2017-04-25  Bob Duff  <duff@adacore.com>

	* types.ads: Minor: Fix '???' comment.
	* sem_ch8.adb: Minor comment fix.

2017-04-25  Bob Duff  <duff@adacore.com>

	* sem_prag.adb: Remove suspicious uses of Name_Buf.
	* stringt.ads, stringt.adb, exp_dbug.adb, sem_dim.adb: Remove
	Add_String_To_Name_Buffer, to avoid using the global Name_Buf.
	Add String_To_Name with no side effects.

2017-04-25  Justin Squirek  <squirek@adacore.com>

	* sem_ch3.adb (Analyze_Declarations): Add
	additional condition for edge case.

2017-04-25  Bob Duff  <duff@adacore.com>

	* par-ch2.adb, scans.ads, scn.adb: Do not give an error for
	reserved words inside pragmas. This is necessary to allow the
	pragma name Interface to be used in pragma Ignore_Pragma.
	* par.adb: Minor comment fix.

2017-04-25  Javier Miranda  <miranda@adacore.com>

	* a-tags.ads, a-tags.adb (Type_Is_Abstract): Renamed as Is_Abstract.
	* rtsfind.ads (RE_Type_Is_Abstract): Renamed as Is_Abstract.
	* exp_disp.adb (Make_DT): Update occurrences of RE_Type_Is_Abstract.
	* exp_intr.adb (Expand_Dispatching_Constructor_Call): Update
	occurrences of RE_Type_Is_Abstract

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_util.adb (Build_Chain): Account for ancestor
	subtypes while traversing the derivation chain.

From-SVN: r247150
2017-04-25 10:56:41 +02:00
Arnaud Charlet
f8a219349a [multiple changes]
2017-04-25  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb: minor reformatting.

2017-04-25  Doug Rupp  <rupp@adacore.com>

	* sigtramp-vxworks-target.inc [PPC64]: Add a .localentry pseudo-op.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Assignment): Reset Full_Analysis flag on
	the first pass over an assignment statement with target names,
	to prevent the generation of subtypes (such as discriminated
	record components)that may carry the target name outside of the
	tree for the assignment. The subtypes will be generated when
	the assignment is reanalyzed in full.
	(Analyze_Target_Name): Handle properly class-wide types.

From-SVN: r247149
2017-04-25 10:52:22 +02:00
Arnaud Charlet
b619c88eba [multiple changes]
2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* elists.ads, elists.adb (Prepend_Unique_Elmt): New routine.
	* exp_ch3.adb (Freeze_Type): Signal the DIC body is created for
	the purposes of freezing.
	* exp_util.adb Update the documentation and structure of the
	type map used in class-wide semantics of assertion expressions.
	(Add_Inherited_Tagged_DIC): There is really no need to preanalyze
	and resolve the triaged expression because all substitutions
	refer to the proper entities.  Update the replacement of
	references.
	(Build_DIC_Procedure_Body): Add formal parameter
	For_Freeze. Add local variable Build_Body. Inherited DIC pragmas
	are now only processed when freezing occurs.  Build a body only
	when one is needed.
	(Entity_Hash): Removed.
	(Map_Types): New routine.
	(Replace_Object_And_Primitive_References): Removed.
	(Replace_References): New routine.
	(Replace_Type_References): Moved to the library level of Exp_Util.
	(Type_Map_Hash): New routine.
	(Update_Primitives_Mapping): Update the mapping call.
	(Update_Primitives_Mapping_Of_Types): Removed.
	* exp_util.ads (Build_DIC_Procedure_Body): Add formal
	parameter For_Freeze and update the comment on usage.
	(Map_Types): New routine.
	(Replace_References): New routine.
	(Replace_Type_References): Moved to the library level of Exp_Util.
	(Update_Primitives_Mapping_Of_Types): Removed.
	* sem_ch7.adb (Preserve_Full_Attributes): Propagate the DIC
	properties of the private type to the full view in case the full
	view derives from a parent type and inherits a DIC pragma.
	* sem_prag.adb (Analyze_Pragma): Guard against a case where a
	DIC pragma is placed at the top of a declarative region.

2017-04-25  Arnaud Charlet  <charlet@adacore.com trojanek>

	* a-tasatt.adb: Complete previous change and use an unsigned
	int to avoid overflow checks.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb (Analyze_Attribute, case 'Access): Specialize
	the error message when the attribute reference is an actual in
	a call to a subprogram inherited from a generic formal type with
	unknown discriminants, which makes the subprogram and its formal
	parameters intrinsic (see RM 6.3.1 (8) and (13)).

From-SVN: r247148
2017-04-25 10:37:09 +02:00
Arnaud Charlet
2bb988bb1c [multiple changes]
2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_aggr.adb, inline.adb, einfo.adb, einfo.ads, scng.adb,
	sem_prag.adb: Minor reformatting.

2017-04-25  Bob Duff  <duff@adacore.com>

	* sem_attr.adb (Type_Key): Add code in the
	recursive Compute_Type_Key to protect against fetching the source
	code for Standard, in case a component of the type is declared
	in Standard. There was already code to do this for the original
	type, but not for its components.

From-SVN: r247147
2017-04-25 10:33:18 +02:00
Arnaud Charlet
b03d3f7390 [multiple changes]
2017-04-25  Javier Miranda  <miranda@adacore.com>

	* exp_ch3.adb (Build_Initialization_Call): Handle
	subtypes of private types when searching for the underlying full
	view of a private type.

2017-04-25  Javier Miranda  <miranda@adacore.com>

	* sem_res.adb (Set_Mixed_Mode_Operand): A universal
	real conditional expression can appear in a fixed-type context
	and must be resolved with that context to facilitate the code
	generation to the backend.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

	* einfo.adb, einfo.ads (Body_Needed_For_Inlining): New flag,
	to indicate whether during inline processing, when some unit U1
	appears in the context of a unit U2 compiled for instantiation
	or inlining purposes, the body of U1 needs to be compiled as well.
	* sem_prag.adb (Process_Inline): Set Body_Needed_For_Inlining if
	context is a package declaration.
	* sem_ch12.adb (Analyze_Generic_Subprogram_Declaration,
	Analyze_Generic_Package_Declaration): ditto.
	* inline.adb (Analyze_Inlined_Bodies): Check
	Body_Needed_For_Inlining.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

	* par.adb (Current_Assign_Node): Global variable use to record
	the presence of a target_name in the right hand side of the
	assignment being parsed.
	* par-ch4.adb (P_Name): If the name is a target_name, mark the
	enclosing assignment node accordingly.
	* par-ch5.adb (P_Assignment_Statement): Set Current_Assign_Node
	appropriately.
	* sem_ch5.adb (Analyze_Assignment): Disable expansion before
	analyzing RHS if the statement has target_names.
	* sem_aggr.adb (Resolve_Iterated_Component_Association): Handle
	properly choices that are subtype marks.
	* exp_ch5.adb: Code cleanup.

2017-04-25  Bob Duff  <duff@adacore.com>

	* s-memory.adb: Add a comment regarding efficiency.
	* atree.adb: Fix the assertion, and combine 2 assertions into one,
	"the source has an extension if and only if the destination does."
	* sem_ch3.adb, sem_ch13.adb: Address ??? comments.

2017-04-25  Arnaud Charlet  <charlet@adacore.com trojanek>

	* a-tasatt.adb (Set_Value): Fix handling of 32bits -> 64bits
	conversion.

2017-04-25  Doug Rupp  <rupp@adacore.com>

	* init.c (__gnat_error_handler) [vxworks]: Turn on sigtramp
	handling for ppc64-vx7.
	* sigtramp-vxworks-target.inc
	[SIGTRAMP_BODY]: Add section for ppc64-vx7.

From-SVN: r247146
2017-04-25 10:29:46 +02:00
Arnaud Charlet
18e829474c New file.
From-SVN: r247145
2017-04-25 10:25:29 +02:00
Bob Duff
f607cacf5d uintp.adb (Most_Sig_2_Digits): In case Direct (Right)...
2017-04-25  Bob Duff  <duff@adacore.com>

	* uintp.adb (Most_Sig_2_Digits): In case Direct (Right), fetch
	Direct_Val (Right), instead of the incorrect Direct_Val (Left).
	(UI_GCD): Remove ??? comment involving possible efficiency
	improvements. This just isn't important after all these years.
	Also minor cleanup.
	* uintp.ads: Minor cleanup.

From-SVN: r247144
2017-04-25 10:23:06 +02:00
Hristian Kirtchev
28ad2460d2 exp_util.adb, [...]: Revert previous changes.
2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_util.adb, exp_util.ads, sem_ch7.adb, sem_prag.adb, exp_ch3.adb:
	Revert previous changes.
	* scng.adb: Minor reformatting.
	* s-stratt.ads: Fix unbalanced parens in comment.

From-SVN: r247143
2017-04-25 10:21:44 +02:00
Arnaud Charlet
b41c731f0a [multiple changes]
2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch3.adb, exp_util.adb, sem_prag.adb, freeze.adb, sem_util.adb:
	Minor reformatting.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

	* scng.adb (Scan): Handle '@' appropriately.
	* sem_ch5.adb: Code cleanup.

From-SVN: r247142
2017-04-25 10:19:33 +02:00
Arnaud Charlet
b536073728 [multiple changes]
2017-04-25  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Check_Expression_Function): Do not check for the
	use of deferred constants if the freezing of the expression
	function is triggered by its generated body, rather than a
	premature use.

2017-04-25  Javier Miranda  <miranda@adacore.com>

	* exp_attr.adb (Rewrite_Stream_Proc_Call): Handle
	subtypes of private types when performing the view conversion.

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch3.adb (Freeze_Type): Signal the DIC body is created for
	the purposes of freezing.
	* exp_util.adb Update the documentation and structure of the
	type map used in class-wide semantics of assertion expressions.
	(Add_Inherited_Tagged_DIC): There is really no need to preanalyze
	and resolve the triaged expression because all substitutions
	refer to the proper entities.  Update the replacement of
	references.
	(Build_DIC_Procedure_Body): Add formal parameter
	For_Freeze. Add local variable Build_Body. Inherited DIC pragmas
	are now only processed when freezing occurs.  Build a body only
	when one is needed.
	(Entity_Hash): Removed.
	(Map_Types): New routine.
	(Replace_Object_And_Primitive_References): Removed.
	(Replace_References): New routine.
	(Replace_Type_References): Moved to the library level of Exp_Util.
	(Type_Map_Hash): New routine.
	(Update_Primitives_Mapping): Update the mapping call.
	(Update_Primitives_Mapping_Of_Types): Removed.
	* exp_util.ads (Build_DIC_Procedure_Body): Add formal
	parameter For_Freeze and update the comment on usage.
	(Map_Types): New routine.
	(Replace_References): New routine.
	(Replace_Type_References): Moved to the library level of Exp_Util.
	(Update_Primitives_Mapping_Of_Types): Removed.
	* sem_ch7.adb (Preserve_Full_Attributes): Propagate the DIC
	properties of the private type to the full view in case the full
	view derives from a parent type and inherits a DIC pragma.
	* sem_prag.adb (Analyze_Pragma): Guard against a case where a
	DIC pragma is placed at the top of a declarative region.

From-SVN: r247141
2017-04-25 10:12:31 +02:00
Arnaud Charlet
a187206c14 [multiple changes]
2017-04-25  Tristan Gingold  <gingold@adacore.com>

	* s-mmap.ads (Data): Add pragma Inline.

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* checks.adb (Insert_Valid_Check): Do not use
	a renaming to alias a volatile name because this will lead to
	multiple evaluations of the volatile name. Use a constant to
	capture the value instead.

2017-04-25  Doug Rupp  <rupp@adacore.com>

	* init.c [VxWorks Section]: Disable sigtramp for ppc64-vx7.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

	* exp_util.adb, exp_util.ads (Build_Class_Wide_Expression):
	Add out parameter to indicate to caller that a wrapper must
	be constructed for an inherited primitive whose inherited
	pre/postcondition has called to overridden primitives.
	* freeze.adb (Check_Inherited_Conditions): Build wrapper body
	for inherited primitive that requires it.
	* sem_disp.adb (Check_Dispatching_Operation): Such wrappers are
	legal primitive operations and belong to the list of bodies
	generated after the freeze point of a type.
	* sem_prag.adb (Build_Pragma_Check_Equivalent): Use new signature
	of Build_Class_Wide_Expression.
	* sem_util.adb, sem_util.ads (Build_Overriding_Spec): New procedure
	to construct the specification of the wrapper subprogram created
	for an inherited operation.

From-SVN: r247140
2017-04-25 10:07:38 +02:00