1. 25 Apr, 2017 40 commits
    • Fix broken attr-alloc_size-10.c for avr · c9e9c3ac
      Integer promotion combined with equal sizes for short and int (16 bits)
      causes overflow warnings when expanding the TEST macro for USHRT_MAX.
      
      Fix by explicitly disabling overflow warnings for targets with !int32plus.
      
      gcc/testsuite/
      
      2017-04-25  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
      
      	* gcc.dg/attr-alloc_size-10.c: Ignore overflow warnings
      	for targets with int size less than 32 bits.
      
      From-SVN: r247203
      Senthil Kumar Selvaraj committed
    • [multiple changes] · 904a2ae4
      2017-04-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch3.adb (Derive_Subprogram): Implement rule in RM 6.1.1
      	(10-15): if derived type T with progenitors is abstract,
      	and primitive P of this type inherits non-trivial classwide
      	preconditions from both a parent operation and from an interface
      	operation, then the inherited operation is abstract if the parent
      	operation is not null.
      	* sem_disp.ads, sem_disp.adb: replace function Covers_Some_Interface
      	with Covered_Interface_Op to yield the actual interface operation
      	that is implemented by a given inherited operation.
      
      2017-04-25  Javier Miranda  <miranda@adacore.com>
      
      	* exp_ch4.adb (Expand_N_Op_Expon): Relocate left
      	and right operands after performing the validity checks. Required
      	because validity checks may remove side effects from the operands.
      
      2017-04-25  Javier Miranda  <miranda@adacore.com>
      
      	* exp_attr.adb (Attribute_Unrestricted_Access):
      	Do not disable implicit type conversion.  Required to generate
      	code that displaces the pointer to reference the secondary
      	dispatch table.
      
      2017-04-25  Pascal Obry  <obry@adacore.com>
      
      	* prj-attr.adb, snames.ads-tmpl: Add package Install's
      	Required_Artifacts attribute.
      
      From-SVN: r247202
      Arnaud Charlet committed
    • [ARC] Addresses can use long immediate for offsets. · ac2e1a51
      gcc/
      2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
      	(legitimate_offset_address_p): New function.
      	(arc_legitimate_address_p): Use above function.
      
      From-SVN: r247201
      Claudiu Zissulescu committed
    • [ARC] Fix calling multiple inheritances. · 1f8876c7
      The TARGET_ASM_OUTPUT_MI_THUNK hook doesn't take into account the
      variant when we compile for PIC.
      
      gcc/
      2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
      
      From-SVN: r247200
      Claudiu Zissulescu committed
    • [ARC] Use ACCL, ACCH registers whenever they are available. · 8b22ef6a
      gcc/
      2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
      	ACCH registers whenever they are available.
      
      From-SVN: r247199
      Claudiu Zissulescu committed
    • [ARC] Make D0, D1 double regs fix when not used. · ad3d6e77
      gcc/
      2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
      	double regs fix when not used.
      
      From-SVN: r247198
      Claudiu Zissulescu committed
    • [multiple changes] · 8f34c90b
      2017-04-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_util.adb (Same_Value): String literals are compile-time
      	values, and comparing them must use Expr_Value_S.
      
      2017-04-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch4.adb (Complete_Object_Interpretation): If an explicit
      	dereference is introduced for the object, and the object is
      	overloaded, do not check whether it is aliased, because it may
      	include an implicit dereference.
      	* sem_type.adb (Disambiguate): If two interpretations are access
      	attribute types with the same designated type keep either of
      	them and do not report an ambiguity.  A true ambiguity will be
      	reported elsewhere.
      
      2017-04-25  Bob Duff  <duff@adacore.com>
      
      	* a-numeri.ads: Change the encoding of Greek letter Pi from
      	brackets encoding to UTF-8.  Use pragma Wide_Character_Encoding
      	to indicate the encoding. We considered using a byte order mark
      	(BOM), but that causes various trouble (misc software eats the
      	BOM, if you have a patch with a BOM, then it's not at the start
      	of the patch, so it's not a BOM, the BOM affects with-ing files,
      	etc.).
      	* scng.adb, s-wchcnv.adb: Minor.
      
      2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch3.adb, sem_ch8.adb, sem_disp.adb: Minor reformatting.
      
      From-SVN: r247197
      Arnaud Charlet committed
    • [ARC] Allow extension core registers to be used for addresses. · 4f9c5d5c
      gcc/
      2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
      	core registers.
      	(REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
      	(REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
      
      From-SVN: r247196
      Claudiu Zissulescu committed
    • [ARC] Differentiate between ARCv1 and ARCv2 'h'-reg class for ADD insns. · a0caeef6
      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
      Claudiu Zissulescu committed
    • [ARC] Differentiate between ARCv1 and ARCv2 'h'-reg class for CMP insns. · 0e03cebd
      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
      Claudiu Zissulescu committed
    • Code clenups. · bac865a2
      From-SVN: r247193
      Arnaud Charlet committed
    • [multiple changes] · 321c24f7
      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
      Arnaud Charlet committed
    • * gcc-interface/Makefile.in: Cleanup VxWorks targets. · 6948bc18
      From-SVN: r247186
      Arnaud Charlet committed
    • Minor reformatting. · cc0b3bac
      From-SVN: r247184
      Arnaud Charlet committed
    • [multiple changes] · 457cee0b
      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
      Arnaud Charlet committed
    • [multiple changes] · cf9a473e
      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
      Arnaud Charlet committed
    • sem_util.adb (New_Copy_Tree): Put back the declarations of the hash tables at library level. · 1f0bcd44
      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
      Arnaud Charlet committed
    • checks.adb (Insert_Valid_Check): Code cleanup. · 62e45e3e
      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
      Hristian Kirtchev committed
    • sem_prag.adb, [...]: Minor reformatting. · ec40b86c
      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
      Hristian Kirtchev committed
    • sem_prag.adb (No_Return): Give an error if the pragma applies to a body. · ca1f6b29
      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
      Bob Duff committed
    • [multiple changes] · 36357cf3
      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
      Arnaud Charlet committed
    • [multiple changes] · 48c8c473
      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
      Arnaud Charlet committed
    • [multiple changes] · 94295b25
      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
      Arnaud Charlet committed
    • [multiple changes] · b0cd50fd
      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
      Arnaud Charlet committed
    • checks.adb (Apply_Scalar_Range_Check): Analyze precisely conversions from float… · d8ee014f
      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
      Yannick Moy committed
    • checks.adb (Determine_Range_R): Special case type conversions from integer to… · 3c77943e
      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
      Yannick Moy committed
    • re PR bootstrap/80509 (ICE in cc1 during selftests) · 468afa1a
      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
      Richard Biener committed
    • [multiple changes] · 89b6c83e
      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
      Arnaud Charlet committed
    • [multiple changes] · c6840e83
      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
      Arnaud Charlet committed
    • [multiple changes] · f2a54683
      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
      Arnaud Charlet committed
    • [multiple changes] · 2df23f66
      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
      Arnaud Charlet committed
    • [multiple changes] · d9049849
      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
      Arnaud Charlet committed
    • sem_prag.adb, [...]: Minor reformatting. · db78cb81
      2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_prag.adb, sem_prag.ads: Minor reformatting.
      
      From-SVN: r247165
      Hristian Kirtchev committed
    • Minor reformatting. · 26718854
      From-SVN: r247164
      Arnaud Charlet committed
    • sem_ch3.adb (Check_Entry_Contract): Call Preanalyze_Spec_Expression so that… · 0c85534d
      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
      Ed Schonberg committed
    • [multiple changes] · be3416c6
      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
      Arnaud Charlet committed
    • Code cleanups. · 003d46d5
      From-SVN: r247161
      Arnaud Charlet committed
    • 2017-04-25 Arnaud Charlet <charlet@adacore.com trojanek> · f4f5851e
      	* 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
      Arnaud Charlet committed
    • re PR tree-optimization/79201 (missed optimization: sinking doesn't handle… · 2700fbd6
      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
      Richard Biener committed
    • Code clean ups. · bfda9ccd
      From-SVN: r247158
      Arnaud Charlet committed