Commit Graph

153156 Commits

Author SHA1 Message Date
Bill Seurer
77071af63c [PATCH, rs6000] pr80482 Relax vector builtin parameter checks
PR target/80482

This patch changes the parameter testing for powerpc vector builtins to relax
the existing requirement that the parameters be identical to instead that they
be compatible.  This allows for mixing parameters with differing qualified
(const, volatile, etc.) types.

See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80482 for more information.

Bootstrapped and tested on powerpc64le-unknown-linux-gnu and
powerpc64be-unknown-linux-gnu with no regressions.  Is this ok for trunk?

[gcc]

2017-04-25  Bill Seurer  <seurer@linux.vnet.ibm.com>

	PR target/80482
	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
	type checks to test for compatibility instead of equality.

[gcc/testsuite]

2017-04-25  Bill Seurer  <seurer@linux.vnet.ibm.com>

	PR target/80482
	* gcc.target/powerpc/vec-constvolatile.c: New test.

From-SVN: r247250
2017-04-25 15:22:40 +00:00
David Malcolm
fbe9180458 C++: fix-it hint for removing stray semicolons
gcc/cp/ChangeLog:
	* parser.c (cp_parser_member_declaration): Add fix-it hint
	for removing stray semicolons.

gcc/testsuite/ChangeLog:
	* g++.dg/semicolon-fixits.C: New test case.

From-SVN: r247244
2017-04-25 14:10:52 +00:00
David Malcolm
1c4ea66f24 C: fix-it hint for removing stray semicolons
gcc/c/ChangeLog:
	* c-parser.c (c_parser_struct_or_union_specifier): Add fix-it
	hint for removing extra semicolon.

gcc/testsuite/ChangeLog:
	* gcc.dg/semicolon-fixits.c: New test case.

From-SVN: r247243
2017-04-25 14:03:55 +00:00
Arnaud Charlet
e0666fc62f [multiple changes]
2017-04-25  Gary Dismukes  <dismukes@adacore.com>

	* exp_util.adb, exp_ch4.adb: Minor reformatting.

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

	* checks.adb: Code clean up in various routines.
	(Generate_Range_Check): Do not generate a range check when the
	expander is not active or when index/range checks are suppressed
	on the target type.
	(Insert_List_After_And_Analyze, Insert_List_Before_And_Analyze):
	Remove variants that include a Supress parameter. These routines
	are never used, and were introduced before the current scope-based
	check suppression method.

2017-04-25  Vasiliy Fofanov  <fofanov@adacore.com>

	* prj-part.adb, cstreams.c, osint.adb, osint.ads: Remove VMS specific
	code and some subprogram calls that are now noop.

From-SVN: r247242
2017-04-25 15:58:36 +02:00
David Malcolm
5ca28c1d5f C++: hints for missing std:: headers
gcc/cp/ChangeLog:
	* name-lookup.c (get_std_name_hint): New function.
	(maybe_suggest_missing_header): New function.
	(suggest_alternative_in_explicit_scope): Call
	maybe_suggest_missing_header.

gcc/testsuite/ChangeLog:
	* g++.dg/lookup/missing-std-include.C: New test file.

From-SVN: r247240
2017-04-25 13:54:35 +00:00
Ramana Radhakrishnan
2ec07fa616 re PR target/77728 (Miscompilation multiple vector iteration on ARM)
PR target/77728
	* config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
	type.
	(aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
	struct.  Ignore DECL_ALIGN of decls other than FIELD_DECL for
	the alignment computation, but return their maximum in warn_alignment.
	(aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
	Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
	is smaller.
	(aarch64_function_arg_boundary): Likewise.  Simplify using MIN/MAX.
	(aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
	caller.
testsuite/
	* g++.dg/abi/pr77728-2.C: New test.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r247239
2017-04-25 15:52:33 +02:00
Arnaud Charlet
eb2d5ccc33 Minor reformatting.
From-SVN: r247238
2017-04-25 15:42:56 +02:00
Arnaud Charlet
e44e8a5eba exp_ch4.adb (Expand_N_Case_Expression): Take Minimize_Expression_With_Actions into account when possible.
2017-04-25  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch4.adb (Expand_N_Case_Expression): Take
	Minimize_Expression_With_Actions into account when possible.

From-SVN: r247237
2017-04-25 15:42:35 +02:00
Arnaud Charlet
bf604a5eeb [multiple changes]
2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_util.adb (Known_Non_Null): Moved to Sem_Util.
	(Known_Null): Moved to Sem_Util.
	* exp_util.ads (Known_Non_Null): Moved to Sem_Util.
	(Known_Null): Moved to Sem_Util.
	* sem_util.adb Add new enumeration type Null_Status_Kind.
	(Known_Non_Null): Moved from Exp_Util. Most of the logic in
	this routine is now carried out by Null_Status.
	(Known_Null): Moved from Exp_Util. Most of the logic in this routine
	is now carried out by Null_Status.
	(Null_Status): New routine.
	* sem_util.ads (Known_Non_Null): Moved from Exp_Util.
	(Known_Null): Moved from Exp_Util.

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

	* sem_ch6.adb (Analyze_Expression_Function): Do not report an
	error on the return type of an expression function that is a
	completion, if the type is derived from a generic formal type.

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

	* sem_dim.adb (Dimensions_Of_Operand): The dimensions of a type
	conversion are those of the target type.

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

	* a-clrefi.adb: Minor cleanup.

From-SVN: r247236
2017-04-25 15:41:04 +02:00
Gary Dismukes
178c3cba2d exp_util.adb, [...]: Minor reformatting.
2017-04-25  Gary Dismukes  <dismukes@adacore.com>

	* exp_util.adb, exp_util.ads, types.ads: Minor reformatting.

From-SVN: r247235
2017-04-25 15:39:30 +02:00
Bob Duff
0f96fd143c err_vars.ads, [...]: Eliminate the vestigial Internal_Source_File and the Internal_Source buffer.
2017-04-25  Bob Duff  <duff@adacore.com>

	* err_vars.ads, fmap.adb, fmap.ads, comperr.adb, fname-sf.adb,
	types.adb, types.ads, types.h, sinput-l.adb, targparm.adb,
	errout.adb, sinput.adb, sinput.ads, cstand.adb, scn.adb,
	scn.ads, gnatls.adb: Eliminate the vestigial Internal_Source_File and
	the Internal_Source buffer. This removes the incorrect call to "="
	the customer noticed.
	Wrap remaining calls to "=" in Null_Source_Buffer_Ptr. We
	eventually need to eliminate them altogether. Or else get rid
	of zero-origin addressing.

From-SVN: r247234
2017-04-25 15:37:18 +02:00
David Malcolm
7d5dbb22ec Fix spelling suggestions for reserved words (PR c++/80177)
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
2017-04-25 13:34:50 +00:00
Arnaud Charlet
0f168ccca1 Minor reformatting.
From-SVN: r247232
2017-04-25 15:33:32 +02:00
Arnaud Charlet
28ccbd3ff8 [multiple changes]
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
2017-04-25 15:33:16 +02:00
Hristian Kirtchev
f9a8f91057 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
2017-04-25 15:30:56 +02:00
Ed Schonberg
e1691d7e60 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
2017-04-25 15:28:14 +02:00
Arnaud Charlet
57f6e00c46 [multiple changes]
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
2017-04-25 15:27:07 +02:00
Arnaud Charlet
628078425b [multiple changes]
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
2017-04-25 15:25:06 +02:00
Claudiu Zissulescu
c66cda60fe [ARC][COMMITTED] Fix typo dmpyh pattern
gcc/
2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/simdext.md (dmpyh): Fix typo.

From-SVN: r247226
2017-04-25 15:22:00 +02:00
Gary Dismukes
2da8c8e2e3 sem_prag.adb, [...]: Minor reformatting and typo fixes.
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
2017-04-25 15:21:15 +02:00
Arnaud Charlet
634a926b69 [multiple changes]
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
2017-04-25 15:19:23 +02:00
Arnaud Charlet
884f97cc82 Code cleanup.
From-SVN: r247223
2017-04-25 15:06:11 +02:00
Bernd Edlinger
7c14545611 017-04-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
* 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
2017-04-25 13:05:22 +00:00
Arnaud Charlet
1f70c47f8a [multiple changes]
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
2017-04-25 15:05:10 +02:00
Arnaud Charlet
daad20d682 gnatvsn.ads (Library_Version): Bump to 8.
* gnatvsn.ads (Library_Version): Bump to 8. Update comment.

From-SVN: r247220
2017-04-25 15:02:18 +02:00
Arnaud Charlet
e7c2522905 [multiple changes]
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
2017-04-25 14:58:46 +02:00
Arnaud Charlet
a267d8ccb7 [multiple changes]
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
2017-04-25 14:56:34 +02:00
Ed Schonberg
241f328c23 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
2017-04-25 14:55:11 +02:00
Arnaud Charlet
cccb761bc2 [multiple changes]
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
2017-04-25 14:49:24 +02:00
Nathan Sidwell
6a3936d48b dg.exp (find-cxx-tests): New function.
* g++.dg/dg.exp (find-cxx-tests): New function.
	(main): Use it, remove explicit pruning

From-SVN: r247215
2017-04-25 12:49:17 +00:00
Arnaud Charlet
9dd958d2d1 re PR ada/78845 (Inverse (Real_Matrix) result has wrong bounds)
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
2017-04-25 14:44:16 +02:00
Arnaud Charlet
c16fa01e7e Code clean up.
From-SVN: r247213
2017-04-25 14:39:28 +02:00
Arnaud Charlet
7738270b0c [multiple changes]
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
2017-04-25 14:38:24 +02:00
Yannick Moy
e4b1cd7656 sem_util.adb: Minor refactoring.
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
2017-04-25 14:35:59 +02:00
Arnaud Charlet
245fee17cb Minor reformatting.
From-SVN: r247210
2017-04-25 14:33:34 +02:00
Arnaud Charlet
3e3bc136d4 [multiple changes]
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
2017-04-25 14:33:25 +02:00
Richard Biener
bed3fd4637 re PR tree-optimization/80492 (Wrong code when unrolling a loop with inline asm and local regs)
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
2017-04-25 12:15:44 +00:00
Arnaud Charlet
ca0b6141fa [multiple changes]
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
2017-04-25 14:11:12 +02:00
Arnaud Charlet
5f8d3dd5b3 [multiple changes]
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
2017-04-25 14:09:22 +02:00
Arnaud Charlet
0bcee27558 Code cleanups.
From-SVN: r247205
2017-04-25 14:08:24 +02:00
Arnaud Charlet
b554177a8f [multiple changes]
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
2017-04-25 14:07:59 +02:00
Senthil Kumar Selvaraj
c9e9c3ac4d Fix broken attr-alloc_size-10.c for avr
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
2017-04-25 12:06:04 +00:00
Arnaud Charlet
904a2ae4e3 [multiple changes]
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
2017-04-25 14:05:53 +02:00
Claudiu Zissulescu
ac2e1a513e [ARC] Addresses can use long immediate for offsets.
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
2017-04-25 14:04:46 +02:00
Claudiu Zissulescu
1f8876c786 [ARC] Fix calling multiple inheritances.
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
2017-04-25 14:04:36 +02:00
Claudiu Zissulescu
8b22ef6af9 [ARC] Use ACCL, ACCH registers whenever they are available.
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
2017-04-25 14:04:25 +02:00
Claudiu Zissulescu
ad3d6e77aa [ARC] Make D0, D1 double regs fix when not used.
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
2017-04-25 14:04:14 +02:00
Arnaud Charlet
8f34c90bb2 [multiple changes]
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
2017-04-25 14:03:43 +02:00
Claudiu Zissulescu
4f9c5d5c48 [ARC] Allow extension core registers to be used for addresses.
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
2017-04-25 14:03:40 +02:00
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