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
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
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 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
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
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 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 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 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
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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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
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 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
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 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
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