1. 25 Apr, 2017 40 commits
    • Fix spelling suggestions for reserved words (PR c++/80177) · 7d5dbb22
      gcc/cp/ChangeLog:
      	PR c++/80177
      	* name-lookup.c (suggest_alternative_in_explicit_scope): Convert
      	candidate type of bm from tree to const char *.
      	(consider_binding_level): Likewise.
      	(lookup_name_fuzzy): Likewise, using this to merge the best
      	result from the preprocessor into bm, rather than immediately
      	returning, so that better matches from reserved words can "win".
      	Guard the rejection of keywords that don't start decl-specifiers
      	so it only happens for FUZZY_LOOKUP_TYPENAME.
      
      gcc/testsuite/ChangeLog:
      	PR c++/80177
      	* g++.dg/spellcheck-pr80177.C: New test case.
      
      From-SVN: r247233
      David Malcolm committed
    • Minor reformatting. · 0f168ccc
      From-SVN: r247232
      Arnaud Charlet committed
    • [multiple changes] · 28ccbd3f
      2017-04-25  Claire Dross  <dross@adacore.com>
      
      	* exp_util.ads (Expression_Contains_Primitives_Calls_Of): New
      	function used in GNATprove to know if an expression contains
      	non-dispatching calls on primitives of a tagged type.
      
      2017-04-25  Bob Duff  <duff@adacore.com>
      
      	* rtsfind.adb (Initialize): Initialize
      	First_Implicit_With. Building the compiler with Normalize_Scalars
      	and validity checking finds this being used as an uninitialized
      	variable.
      
      From-SVN: r247231
      Arnaud Charlet committed
    • contracts.adb (Analyze_Entry_Or_Subprogram_Body_Contract): Add a warning about… · f9a8f910
      contracts.adb (Analyze_Entry_Or_Subprogram_Body_Contract): Add a warning about SPARK mode management.
      
      2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* contracts.adb (Analyze_Entry_Or_Subprogram_Body_Contract):
      	Add a warning about SPARK mode management. The routine now
      	saves and restores both the mode and associated pragma.
      	(Analyze_Entry_Or_Subprogram_Contract): Add a warning about
      	SPARK mode management. The routine now saves and restores both
      	the mode and associated pragma.
      	(Analyze_Object_Contract):
      	Add a warning about SPARK mode management. The routine
      	now saves and restores both the mode and associated pragma.
      	(Analyze_Package_Body_Contract): Add a warning about SPARK mode
      	management.  The routine now saves and restores both the mode
      	and associated pragma.	(Analyze_Package_Contract): Add a warning
      	about SPARK mode management. The routine now saves and restores
      	both the mode and associated pragma.
      	(Analyze_Task_Contract):
      	Add a warning about SPARK mode management. The routine now saves
      	and restores both the mode and associated pragma.
      	* expander.adb (Expand): Change the way the Ghost mode is saved
      	and restored.
      	* exp_ch3.adb (Freeze_Type): Change the way the Ghost mode is
      	saved and restored.
      	* exp_disp.adb (Make_DT): Change the way the Ghost mode is saved
      	and restored.
      	* exp_util.adb (Build_DIC_Procedure_Body):
      	Change the way the Ghost mode is saved and restored.
      	(Build_DIC_Procedure_Declaration): Change the way the Ghost
      	mode is saved and restored.
      	(Build_Invariant_Procedure_Body):
      	Change the way the Ghost mode is saved and restored.
      	(Build_Invariant_Procedure_Declaration): Change the way the Ghost
      	mode is saved and restored.
      	(Make_Predicate_Call): Change the
      	way the Ghost mode is saved and restored.
      	* freeze.adb (Freeze_Entity): Change the way the Ghost mode is
      	saved and restored.
      	* ghost.adb (Mark_And_Set_Ghost_Assignment): Remove parameter Mode
      	and its assignment.
      	(Mark_And_Set_Ghost_Body): Remove parameter
      	Mode and its assignment.
      	(Mark_And_Set_Ghost_Completion):
      	Remove parameter Mode and its assignment.
      	(Mark_And_Set_Ghost_Declaration): Remove parameter Mode and its
      	assignment.
      	(Mark_And_Set_Ghost_Instantiation): Remove parameter
      	Mode and its assignment.
      	(Mark_And_Set_Ghost_Procedure_Call):
      	Remove parameter Mode and its assignment.
      	(Set_Ghost_Mode):
      	Remove parameter Mode and its assignment.
      	* ghost.ads (Mark_And_Set_Ghost_Assignment): Remove parameter Mode
      	and update the comment on usage.
      	(Mark_And_Set_Ghost_Body):
      	Remove parameter Mode and update the comment on usage.
      	(Mark_And_Set_Ghost_Completion): Remove parameter Mode and
      	update the comment on usage.
      	(Mark_And_Set_Ghost_Declaration):
      	Remove parameter Mode and update the comment on usage.
      	(Mark_And_Set_Ghost_Instantiation): Remove parameter Mode and
      	update the comment on usage.
      	(Mark_And_Set_Ghost_Procedure_Call):
      	Remove parameter Mode and update the comment on usage.
      	(Set_Ghost_Mode): Remove parameter Mode and update the comment
      	on usage.
      	* lib.ads Remove obsolete fields SPARK_Mode_Pragma from various
      	types.
      	* lib-load.adb (Create_Dummy_Package_Unit): Remove the assignment
      	of obsolete field SPARK_Mode_Pragma.
      	(Load_Main_Source): Remove
      	the assignment of obsolete field SPARK_Mode_Pragma.
      	(Load_Unit): Remove the assignment of obsolete field SPARK_Mode_Pragma.
      	* lib-writ.adb (Add_Preprocessing_Dependency): Remove
      	the assignment of obsolete field SPARK_Mode_Pragma.
      	(Ensure_System_Dependency): Remove the assignment of obsolete
      	field SPARK_Mode_Pragma.
      	* rtsfind.adb (Load_RTU): Add a warning about Ghost and SPARK
      	mode management. Change the way Ghost and SPARK modes are saved
      	and restored.
      	* sem.adb (Analyze): Change the way the Ghost mode is saved
      	and restored.
      	* sem_ch3.adb (Analyze_Object_Declaration): Change the way the
      	Ghost mode is saved and restored.
      	(Process_Full_View): Change
      	the way the Ghost mode is saved and restored.
      	* sem_ch5.adb (Analyze_Assignment): Change the way the Ghost
      	mode is saved and restored.
      	* sem_ch6.adb (Analyze_Procedure_Call): Change the way the Ghost
      	mode is saved and restored.
      	(Analyze_Subprogram_Body_Helper):
      	Change the way the Ghost mode is saved and restored.
      	* sem_ch7.adb (Analyze_Package_Body_Helper): Change the way the
      	Ghost mode is saved and restored.
      	* sem_ch10.adb (Analyze_Subunit): Add a warning about SPARK mode
      	management. Save the SPARK mode-related data prior to any changes
      	to the scope stack and contexts. The mode is then reinstalled
      	before the subunit is analyzed in order to restore the original
      	view of the subunit.
      	* sem_ch12.adb (Analyze_Package_Instantiation): Update the
      	warning on region management.  Change the way the Ghost and
      	SPARK modes are saved and restored.
      	(Inline_Instance_Body):
      	Add a warning about SPARK mode management. Code clean up.
      	(Analyze_Subprogram_Instantiation): Update the warning on region
      	management.  Change the way the Ghost and SPARK modes are saved
      	and restored.
      	(Instantiate_Package_Body): Update the warning
      	on region management. Change the way the Ghost and SPARK modes
      	are saved and restored.
      	(Instantiate_Subprogram_Body): Update
      	the warning on region management. Change the way the Ghost and
      	SPARK modes are saved and restored.
      	(Set_Instance_Env): Add a
      	warning about SPARK mode management. Change the way SPARK mode
      	is saved and restored.
      	* sem_ch13.adb (Build_Predicate_Functions):
      	Change the way the Ghost mode is saved and restored.
      	(Build_Predicate_Function_Declaration): Change the way the Ghost
      	mode is saved and restored.
      	* sem_elab.adb (Check_Elab_Calls): Add a warning about SPARK
      	mode management. Change the way SPARK mode is saved and restored.
      	* sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part):
      	Change the way the Ghost mode is saved and restored.
      	(Analyze_Initial_Condition_In_Decl_Part): Change the way
      	the Ghost mode is saved and restored.
      	(Analyze_Pragma):
      	Change the way the Ghost mode is saved and restored.
      	(Analyze_Pre_Post_Condition_In_Decl_Part): Change the way the
      	Ghost mode is saved and restored.
      	* sem_util.adb (Install_SPARK_Mode): New routine.
      	(Restore_SPARK_Mode): New routine.
      	(Save_SPARK_Mode_And_Set): Removed.
      	(Set_SPARK_Mode): New routine.
      	* sem_util.ads (Install_SPARK_Mode): New routine.
      	(Restore_SPARK_Mode): New routine.
      	(Save_SPARK_Mode_And_Set): Removed.
      	(Set_SPARK_Mode): New routine.
      
      From-SVN: r247230
      Hristian Kirtchev committed
    • sem_util.adb, [...] (From_Nested_Package): New predicate to determine whether a… · e1691d7e
      sem_util.adb, [...] (From_Nested_Package): New predicate to determine whether a type is declared in a local package that...
      
      2017-04-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_util.adb, sem_util.ads (From_Nested_Package): New predicate
      	to determine whether a type is declared in a local package that
      	has not yet been frozen.
      	* freeze.adb (Freeze_Before): Use new predicate to determine
      	whether a local package must be installed on the scope stack
      	in order to evaluate in the proper scope actions generated by
      	aspect specifications, such as Predicate
      	* sem_ch13.adb: Simplify code in Analyze_Aspects_At_Freeze_Point
      	using new predicate.
      
      From-SVN: r247229
      Ed Schonberg committed
    • [multiple changes] · 57f6e00c
      2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_warn.adb (Warn_On_Constant_Valid_Condition): Do not consider
      	comparisons between non- scalar expressions expressions because
      	their values cannot be invalidated.
      	* sem_warn.ads (Warn_On_Constant_Valid_Condition): Update the
      	comment on usage.
      
      2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* par_sco.adb: Minor reformatting.
      
      2017-04-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): If entity
      	is a type from an unfrozen local package, install package to
      	complete the analysis of delayed aspects of the type.
      
      2017-04-25  Tristan Gingold  <gingold@adacore.com>
      
      	* bingen.adb (System_Version_Control_Used): New variable.
      	(Resolve_Binder_Options): Set the above variable.
      	(Gen_Output_File_Ada): Conditionally call Gen_Versions.
      	(Gen_Elab_Order): Emit blank line before.
      
      2017-04-25  Justin Squirek  <squirek@adacore.com>
      
      	* sem_cat.adb (Validate_RT_RAT_Component): Added
      	an extra check to ignore incomplete types.
      
      From-SVN: r247228
      Arnaud Charlet committed
    • [multiple changes] · 62807842
      2017-04-25  Thomas Quinot  <quinot@adacore.com>
      
      	* sem_prag.adb (Analyze_Pragma, case Pragma_Check): Remove
      	bogus circuitry for the case where Name is Predicate.
      
      2017-04-25  Thomas Quinot  <quinot@adacore.com>
      
      	* par_sco.adb(Traverse_Declarations_Or_Statements.Traverse_Aspects):
      	Create SCOs for Predicate aspects in disabled
      	state initially, to be enabled later on by...
      	* sem_ch13.adb (Build_Predicate_Functions.Add_Predicates): Mark
      	SCO for predicate as enabled.
      
      2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* comperr.adb (Compiler_Abort): Remove now obsolete pair of
      	pragmas Warnings Off / On.
      	* namet.adb (Finalize): Remove now obsolete pair of pragmas
      	Warnings Off / On.
      	* output.adb: Remove now obsolete pair of pragmas Warnings Off / On.
      	* sem_warn.adb (Warn_On_Constant_Valid_Condition): Do not
      	consider comparisons between static expressions because their
      	values cannot be invalidated.
      	* urealp.adb (Tree_Read): Remove now obsolete pair of pragmas
      	Warnings Off / On.
      	(Tree_Write): Remove now obsolete pair of pragmas Warnings Off / On.
      	* usage.adb Remove now obsolete pair of pragmas Warnings Off / On.
      
      2017-04-25  Bob Duff  <duff@adacore.com>
      
      	* sem_elab.adb (In_Task_Activation): Trace internal calls in
      	task bodies.
      
      From-SVN: r247227
      Arnaud Charlet committed
    • [ARC][COMMITTED] Fix typo dmpyh pattern · c66cda60
      gcc/
      2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/simdext.md (dmpyh): Fix typo.
      
      From-SVN: r247226
      Claudiu Zissulescu committed
    • sem_prag.adb, [...]: Minor reformatting and typo fixes. · 2da8c8e2
      2017-04-25  Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_prag.adb, sem_warn.adb, sem_eval.adb: Minor reformatting and
      	typo fixes.
      
      From-SVN: r247225
      Gary Dismukes committed
    • [multiple changes] · 634a926b
      2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* comperr.adb (Compiler_Abort): Add a pair of pragma Warnings
      	On/Off to defend against a spurious warning in conditional
      	compilation.
      	* exp_ch4.adb (Rewrite_Comparison): Reimplemented.
      	* namet.adb (Finalize): Add a pair of pragma Warnings On/Off to
      	defend against a spurious warning in conditional compilation.
      	* output.adb Add a pair of pragma Warnings On/Off to defend
      	against a spurious warning in conditional compilation.
      	* sem_eval.adb (Eval_Relational_Op): Major code clean up.
      	(Fold_General_Op): New routine.
      	(Fold_Static_Real_Op): New routine.
      	(Test_Comparison): New routine.
      	* sem_eval.ads (Test_Comparison): New routine.
      	* sem_warn.adb (Is_Attribute_Constant_Comparison): New routine.
      	(Warn_On_Constant_Valid_Condition): New routine.
      	(Warn_On_Known_Condition): Use Is_Attribute_Constant_Comparison
      	to detect a specific case.
      	* sem_warn.adb (Warn_On_Constant_Valid_Condition): New routine.
      	* urealp.adb (Tree_Read): Add a pair of pragma Warnings On/Off
      	to defend against a spurious warning in conditional compilation.
      	(Tree_Write): Add a pair of pragma Warnings On/Off to defend
      	against a spurious warning in conditional compilation.
      	* usage.adb Add a pair of pragma Warnings On/Off to defend
      	against a spurious warning in conditional compilation.
      
      2017-04-25  Arnaud Charlet  <charlet@adacore.com>
      
      	* sinfo.ads, sem_ch13.adb: Update comment.
      
      From-SVN: r247224
      Arnaud Charlet committed
    • Code cleanup. · 884f97cc
      From-SVN: r247223
      Arnaud Charlet committed
    • 017-04-25 Bernd Edlinger <bernd.edlinger@hotmail.de> · 7c145456
              * c-common.c (c_type_hasher, type_hash_table): Remove.
              (c_common_get_alias_set): Remove unreachable code.
              * c-opts.c (c_common_post_options): Make sure cc1 takes only one file.
      
      From-SVN: r247222
      Bernd Edlinger committed
    • [multiple changes] · 1f70c47f
      2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_util.adb (Is_Post_State): A reference to a
      	generic in out parameter is considered a change in the post-state
      	of a subprogram.
      
      2017-04-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch12.adb (Load_Parent_Of_Generic); When retrieving the
      	declaration of a subprogram instance within its wrapper package,
      	skip over null statements that may result from the rewriting of
      	ignored pragmas.
      
      2017-04-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_attr.adb (Expand_Attribute_Reference, case 'Read):
      	If the type is an unchecked_union, replace the attribute with
      	a Raise_Program_Error (rather than inserting such before the
      	attribute reference) to handle properly the case where we are
      	processing a component of a larger record, and we need to prevent
      	further expansion for the unchecked union.
      	(Expand_Attribute_Reference, case 'Write): If the type is
      	an unchecked_union, check whether enclosing scope is a Write
      	subprogram. Replace attribute with a Raise_Program_Error if the
      	discriminants of the unchecked_union type have not default values
      	because such a use is erroneous..
      
      2017-04-25  Tristan Gingold  <gingold@adacore.com>
      
      	* exp_ch9.adb (Expand_N_Task_Type_Declaration):
      	Add relative_deadline to task record on edf profile.
      	(Make_Initialize_Protection): Pass deadline_floor value on edf profile.
      	(Make_Task_Create_Call): Pass relative_deadline value.
      	* par-prag.adb (Prag): Handle Pragma_Deadline_Floor.
      	* s-rident.ads (Profile_Name): Add GNAT_Ravenscar_EDF.
      	(Profile_Info): Add info for GNAT_Ravenscar_EDF.
      	* sem_prag.adb (Set_Ravenscar_Profile): Handle
      	GNAT_Ravenscar_EDF (set scheduling policy).
      	(Analyze_Pragma): Handle GNAT_Ravenscar_EDF profile and Deadline_Floor
      	pragma.
      	(Sig_Flags): Add choice for Pragma_Deadline_Floor.
      	* snames.ads-tmpl (Name_Deadline_Floor, Name_Gnat_Ravenscar_EDF):
      	New names.
      	(Pragma_Deadline_Floor): New pragma.
      	* targparm.adb (Get_Target_Parameters): Recognize
      	GNAT_Ravenscar_EDF profile.
      
      From-SVN: r247221
      Arnaud Charlet committed
    • gnatvsn.ads (Library_Version): Bump to 8. · daad20d6
      	* gnatvsn.ads (Library_Version): Bump to 8. Update comment.
      
      From-SVN: r247220
      Arnaud Charlet committed
    • [multiple changes] · e7c25229
      2017-04-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_aux.adb (Nearest_Ancestor): Use original node of type
      	declaration to locate nearest ancestor, because derived
      	type declarations for record types are rewritten as record
      	declarations.
      	* sem_ch13.adb (Add_Call): Use an unchecked conversion to handle
      	properly derivations that are completions of private types.
      	(Add_Predicates): If type is private, examine rep. items of full
      	view, which may include inherited predicates.
      	(Build_Predicate_Functions): Ditto.
      
      2017-04-25  Javier Miranda  <miranda@adacore.com>
      
      	* sem_util.adb (New_Copy_Tree.Visit_Entity): Extend previous change
      	to generate new entities for subtype declarations located in
      	Expression_With_Action nodes.
      
      2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_elab.adb (Check_A_Call): Remove
      	local variables Is_DIC_Proc and Issue_In_SPARK. Verify the
      	need for Elaborate_All when SPARK elaboration checks are
      	required. Update the checks for instances, variables, and calls
      	to Default_Initial_Condition procedures.
      
      2017-04-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* aspects.ads, aspects.adb: Make the GNAT-specific pragma No_Inline
      	into a boolean aspect, in analogy with the Ada aspect No_Return.
      
      From-SVN: r247219
      Arnaud Charlet committed
    • [multiple changes] · a267d8cc
      2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch6.adb, sem_ch13.adb, sem_ch6.adb: Minor reformatting.
      
      2017-04-25  Bob Duff  <duff@adacore.com>
      
      	* sem_res.adb (Resolve_Actuals): Under -gnatd.q, reset
      	Is_True_Constant for an array variable that is passed to a
      	foreign function as an 'in' parameter.
      	* debug.adb: Document -gnatd.q.
      
      From-SVN: r247218
      Arnaud Charlet committed
    • sem_ch6.adb (Analyze_Expression_Function): If expression function is completion… · 241f328c
      sem_ch6.adb (Analyze_Expression_Function): If expression function is completion and return type is an access type do not...
      
      2017-04-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch6.adb (Analyze_Expression_Function): If expression function
      	is completion and return type is an access type do not freeze
      	designated type: this will be done in the process of freezing
      	the expression if needed.
      	(Freeze_Expr_Types): Check whether type is complete before
      	creating freeze node, to provide a better error message if
      	reference is premature.
      	* sem_ch13.adb (Check_Indexing_Functions): Ignore inherited
      	functions created by type derivations.
      
      From-SVN: r247217
      Ed Schonberg committed
    • [multiple changes] · cccb761b
      2017-04-25  Pascal Obry  <obry@adacore.com>
      
      	* g-sercom.ads: Add simple usage of GNAT.Serial_Communication.
      
      2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_res.adb (Resolve_Type_Conversion):
      	When resolving against any fixed type, set the type of the
      	operand as universal real when the operand is a multiplication
      	or a division where both operands are of any fixed type.
      	(Unique_Fixed_Point_Type): Add local variable ErrN. Improve the
      	placement of an error message by pointing to the operand of a
      	type conversion rather than the conversion itself.
      
      2017-04-25  Thomas Quinot  <quinot@adacore.com>
      
      	* sem_ch13.adb (Build_Predicate_Function_Declaration): Set
      	Needs_Debug_Info when producing SCOs.
      
      2017-04-25  Thomas Quinot  <quinot@adacore.com>
      
      	* exp_ch6.adb (Add_Finalization_Master_Actual_To_Build_In_Place_Call):
      	Always pass a null finalization master for a library level named access
      	type to which a pragme No_Heap_Finalization applies.
      
      From-SVN: r247216
      Arnaud Charlet committed
    • dg.exp (find-cxx-tests): New function. · 6a3936d4
      	* g++.dg/dg.exp (find-cxx-tests): New function.
      	(main): Use it, remove explicit pruning
      
      From-SVN: r247215
      Nathan Sidwell committed
    • re PR ada/78845 (Inverse (Real_Matrix) result has wrong bounds) · 9dd958d2
      	PR ada/78845
      
      	* a-ngcoar.adb, a-ngrear.adb (Inverse): call Unit_Matrix with First_1
      	set to A'First(2) and vice versa.
      
      From-SVN: r247214
      Arnaud Charlet committed
    • Code clean up. · c16fa01e
      From-SVN: r247213
      Arnaud Charlet committed
    • [multiple changes] · 7738270b
      2017-04-25  Yannick Moy  <moy@adacore.com>
      
      	* freeze.adb (Freeze_Record_Type): Remove obsolete
      	rule on volatile tagged record restriction on SPARK code.
      
      2017-04-25  Yannick Moy  <moy@adacore.com>
      
      	* sem_prag.adb (minor) Fix SPARK RM reference.
      
      2017-04-25  Yannick Moy  <moy@adacore.com>
      
      	* sem_util.adb, sem_util.ads (Unique_Defining_Entity): Update
      	comment to reflect which entity is chosen as unique entity.
      	(Unique_Entity): Return full view instead of private spec for
      	protected type or task type. Fix possible incorrect access when
      	called on entry.
      
      2017-04-25  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* sem_res.adb (Set_Slice_Subtype): Treat specially bit-packed
      	array types only instead of all packed array types.
      
      2017-04-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch6.adb (Conforming_Types): If type of formal as a specified
      	dimension system, verify that dimensions of both match.
      	(Check_Conformance): Add error message in case of dimension
      	mismatch.
      	* sem_dim.ads, sem_dim.adb (Dimensions_Match): New utility
      	predicate.
      
      2017-04-25  Arnaud Charlet  <charlet@adacore.com trojanek>
      
      	* gnatxref.adb, gnatfind.adb: Avoid using the term project file,
      	confusing.
      
      From-SVN: r247212
      Arnaud Charlet committed
    • sem_util.adb: Minor refactoring. · e4b1cd76
      2017-04-25  Yannick Moy  <moy@adacore.com>
      
      	* sem_util.adb: Minor refactoring.
      	* freeze.adb (Freeze_Record_Type): Fix checking of SPARK RM 7.1.3(5).
      
      From-SVN: r247211
      Yannick Moy committed
    • Minor reformatting. · 245fee17
      From-SVN: r247210
      Arnaud Charlet committed
    • [multiple changes] · 3e3bc136
      2017-04-25  Claire Dross  <dross@adacore.com>
      
      	* sem_prag.adb (Collect_Inherited_Class_Wide_Conditions): Go to
      	ultimate alias when accessing overridden operation. Indeed, if the
      	overridden operation is itself inherited, it won't have any explicit
      	contract.
      
      2017-04-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_warn.adb (Warn_On_Overlapping_Actuals): There can be no
      	overlap if the two formals have different types, because formally
      	the corresponding actuals cannot designate the same objects.
      
      2017-04-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_dim.adb (Dimensions_Of_Operand): minot cleanups: a) If
      	dimensions are present from context, use them.	b) If operand is
      	a static constant rewritten as a literal, obtain the dimensions
      	from the original declaration, otherwise use dimensions of type
      	established from context.
      
      2017-04-25  Yannick Moy  <moy@adacore.com>
      
      	* sem_util.adb (Is_Effectively_Volatile): Protect against base type
      	of array that is private.
      
      From-SVN: r247209
      Arnaud Charlet committed
    • re PR tree-optimization/80492 (Wrong code when unrolling a loop with inline asm and local regs) · bed3fd46
      2017-04-25  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/80492
      	* alias.c (compare_base_decls): Handle registers with asm
      	specification conservatively.
      	* tree-ssa-alias.c (decl_refs_may_alias_p): Handle
      	compare_base_decls returning dont-know properly.
      
      	* gcc.dg/pr80492.c: New testcase.
      
      From-SVN: r247208
      Richard Biener committed
    • [multiple changes] · ca0b6141
      2017-04-25  Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_ch3.adb, exp_util.adb, sem_prag.adb, exp_ch4.adb: Minor
      	reformatting.
      
      2017-04-25  Yannick Moy  <moy@adacore.com>
      
      	* a-ngelfu.adb, a-ngelfu.ads: Add SPARK_Mode On on spec, Off
      	on body.
      
      From-SVN: r247207
      Arnaud Charlet committed
    • [multiple changes] · 5f8d3dd5
      2017-04-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_disp.adb (Check_Dispatching_Context): Add guard to refine
      	the check that recognizes a call to a private overridding and
      	replaces the called subprogram with its alias.
      
      2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_util.adb: Minor reformatting.
      
      From-SVN: r247206
      Arnaud Charlet committed
    • Code cleanups. · 0bcee275
      From-SVN: r247205
      Arnaud Charlet committed
    • [multiple changes] · b554177a
      2017-04-25  Justin Squirek  <squirek@adacore.com>
      
      	* exp_ch3.adb (Freeze_Type): Add condition to always treat
      	interface types as a partial view of a private type for the
      	generation of invariant procedure bodies.
      	* exp_util.adb, exp_util.ads (Add_Inherited_Invariants):
      	Add a condition to get the Corresponding_Record_Type for
      	concurrent types, add condition to return in the absence of a
      	class in the pragma, remove call to Replace_Type_References,
      	and add call to Replace_References.
      	(Add_Interface_Invariatns),
      	(Add_Parent_Invariants): Modify call to Add_Inherited_Invariants
      	to including the working type T.
      	(Add_Own_Invariants): Remove
      	legacy condition for separate units, remove dispatching for ASIS
      	and save a copy of the expression in the pragma expression.
      	(Build_Invariant_Procedure_Body): Default initalize vars,
      	remove return condition on interfaces, always use the
      	private type for interfaces, and move the processing of types
      	until after the processing of invariants for the full view.
      	(Build_Invariant_Procedure_Declaration): Remove condition
      	to return if an interface type is encountered and add
      	condition to convert the formal parameter to its class-wide
      	counterpart if Work_Typ is abstract.
      	(Replace_Type): Add call to Remove_Controlling_Arguments.
      	(Replace_Type_Ref): Remove class-wide dispatching for the current
      	instance of the type.
      	(Replace_Type_References): Remove parameter "Derived"
      	(Remove_Controlling_Arguments): Created in order to removing
      	the controlliong argument from calls to primitives in the case
      	of the formal parameter being an class-wide abstract type.
      	* sem_ch3.adb (Build_Assertion_Bodies_For_Type): Almost identical
      	to the change made to Freeze_Type in exp_ch3. Add a condition
      	to treat interface types as a partial view.
      	* sem_prag.adb (Analyze_Pragma): Modify parameters in the call
      	to Build_Invariant_Procedure_Declaration to properly generate a
      	"partial" invariant procedure when Typ is an interface.
      
      2017-04-25  Bob Duff  <duff@adacore.com>
      
      	* a-numeri.ads: Go back to using brackets encoding for the Greek
      	letter pi.
      
      From-SVN: r247204
      Arnaud Charlet committed
    • 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