2017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch9.adb (Expand_Entry_Barrier): Code
cleanup. Do not perform the optimization which removes the
declarations of the discriminant and component renamings when
validity checks on operands and attributes are in effect.
2017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
* exp_spark.adb, exp_util.adb, sem_ch7.adb, g-dyntab.adb, g-dyntab.ads,
freeze.adb, a-cfinve.ads, a-cofuma.adb, a-cofuma.ads, a-cfhama.adb,
a-cfhama.ads, a-cofove.ads: Minor reformatting.
2017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
* g-debpoo.adb (Dump_Gnatmem): Protect against a possible null
pointer dereference.
* g-spipat.adb (Dump): Code clean up. Protect against a possible
null pointer dereference.
From-SVN: r247326
2017-04-27 Bob Duff <duff@adacore.com>
* g-dyntab.ads, g-dyntab.adb: Default for Table_Low_Bound.
Rename Empty --> Empty_Table_Ptr, and don't duplicate code for it.
Free renames Init, since they do the same thing.
* g-table.ads: Default for Table_Low_Bound.
* table.ads: Default for Table_Low_Bound, Table_Initial, and
Table_Increment.
From-SVN: r247324
2017-04-27 Richard Biener <rguenther@suse.de>
PR middle-end/80539
* tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
being in loop-closed SSA form conservatively.
(chrec_fold_multiply_poly_poly): Likewise.
* gcc.dg/torture/pr80539.c: New testcase.
From-SVN: r247322
2017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
* sem_elab.adb Add new type Visited_Element
and update the contents of table Elab_Visited. Various code clean up.
(Check_Elab_Call): Determine whether a prior call to
the same subprogram was already examined within the same context.
(Check_Internal_Call_Continue): Register the subprogram being
called as examined within a particular context. Do not suppress
elaboration warnings.
2017-04-27 Gary Dismukes <dismukes@adacore.com>
* xoscons.adb, osint.ads: Minor reformatting.
2017-04-27 Bob Duff <duff@adacore.com>
* g-dyntab.ads, g-dyntab.adb: Misc cleanup. Rename
Table_Count_Type --> Table_Last_Type, because the name
was confusing (a "count" usually starts at zero). Add
functionality supported or needed by other tables packages
(Move, Release_Threshold).
* g-table.ads, g-table.adb: This is now just a thin wrapper
around g-dyntab.ads/g-dyntab.adb. Add functionality supported
or needed by other tables packages (Save, Restore).
* table.ads, table.adb: This is now just a thin wrapper around
* g-table.ads/g-table.adb.
* namet.h, scos.h, uintp.h: These files are reaching into the
private data of some instances of g-table, whose names changed,
so the above change requires some adjustment here. It now uses
public interfaces.
2017-04-27 Bob Duff <duff@adacore.com>
* namet.adb, namet.ads: Minor: remove unused procedures.
2017-04-27 Eric Botcazou <ebotcazou@adacore.com>
* checks.adb (Apply_Scalar_Range_Check): Initialize Ok variable too.
(Minimize_Eliminate_Overflows): Initialize Llo and Lhi.
Add pragma Warnings on Rtype variable in nested block. *
* exp_ch3.adb (Build_Init_Statements): Initialize VAR_LOC.
* exp_ch4.adb (Expand_Concatenate): Initialize 3 variables.
(Size_In_Storage_Elements): Add pragma Warnings on Res variable.
* exp_ch7.adb (Build_Adjust_Statements): Initialize Bod_Stmts.
(Process_Component_List_For_Finalize): Initialize Counter_Id.
(Build_Finalize_Statements): Initialize Bod_Stmts.
* exp_disp.adb (Expand_Dispatching_Call): Initialize SCIL_Node.
2017-04-27 Claire Dross <dross@adacore.com>
* a-cfhama.adb, a-cfhamai.ads (=): Generic parameter removed to
allow the use of regular equality over elements in contracts.
(Formal_Model): Ghost package containing model functions that are
used in subprogram contracts.
(Current_To_Last): Removed, model
functions should be used instead.
(First_To_Previous): Removed, model functions should be used instead.
(Strict_Equal): Removed, model functions should be used instead.
(No_Overlap): Removed, model functions should be used instead.
(Equivalent_Keys): Functions over cursors are removed. They were
awkward with explicit container parameters.
* a-cofuma.adb, a-cofuma.ads (Lift_Equivalent_Keys): New lemma
(proof only) procedure to help GNATprove when equivalence over
keys is not equality.
From-SVN: r247320
2017-04-27 Ed Schonberg <schonberg@adacore.com>
* freeze.adb (Build_Inherited_Condition_Pragmas): New procedure,
subsidiary of Check_Inherited_Conditions, to build pragmas for an
operation whose ancestor has classwide pre/postconditions. This
is used both to check the legality of the inheritance in Ada
and in SPARK, and to determine whether a wrapper is needed for
an inherited operation.
* exp_util.adb (Build_Class_Wide_Expression, Replace_Entity):
Improve placement of error message for inherited classwide
conditions that become illegal on type derivation.
2017-04-27 Yannick Moy <moy@adacore.com>
* sem_ch12.adb (Analyze_Generic_Package_Declaration): Set
SPARK_Mode from context on generic package.
* sem_ch7.adb (Analyze_Package_Declaration): Simplify code to remove
useless test.
2017-04-27 Claire Dross <dross@adacore.com>
* a-cofuve.ads (Range_Shifted): Rewrite precondition to avoid
overflows in computations.
* a-cofove.ads (Capacity_Range): Rewrite last bound to avoid
overflows in computations.
(Insert): Rewrite precondition to avoid overflows in computations.
* a-cfinve.ads (Capacity_Range): Rewrite last bound to avoid
overflows in computations.
(Insert): Rewrite precondition to avoid overflows in computations.
From-SVN: r247318
2017-04-27 Steve Baird <baird@adacore.com>
* exp_ch9.adb (Expand_N_Asynchronous_Select): Initialize the Cancel
flag when it is declared in order to avoid confusing CodePeer about
the possibility of an uninitialized variable read.
2017-04-27 Ed Schonberg <schonberg@adacore.com>
* sem_dim.adb (Analyze_Dimension_Object_Declaration): There is
no dimensionality error if the subtype of the expression is
identical to the nominal subtype in the declaration, even though
the expression itself may have been constant-folded and lack a
dimension vector.
* sem_dim.ads: Add comments on setting of dimension vectors and
its interaction with node rewritings and side-effect removal.
2017-04-27 Bob Duff <duff@adacore.com>
* debug.adb: Minor comment correction.
* sem_dim.ads: Minor reformatting and typo fixes.
2017-04-27 Bob Duff <duff@adacore.com>
* g-table.adb, g-table.adsa, scos.h: From the C side, access First and
Last of the tables via function calls, rather than relying on layout
of data structures.
2017-04-27 Ed Schonberg <schonberg@adacore.com>
* exp_util.adb: No wrapper in GNATprove mode.
2017-04-27 Yannick Moy <moy@adacore.com>
* sem_res.adb (Resolve_Comparison_Op): Always
evaluate comparisons between values of universal types.
2017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
* sem_elab.adb (Check_Internal_Call_Continue): Do not generate
an elaboration counter nor a check when in GNATprove mode.
* sem_util.adb (Build_Elaboration_Entity): Do not create an
elaboration counter when in GNATprove mode.
From-SVN: r247317
2017-04-27 Ed Schonberg <schonberg@adacore.com>
* freeze.adb: copy-paste typo.
2017-04-27 Yannick Moy <moy@adacore.com>
* sem_prag.adb (Analyze_Pre_Post_In_Decl_Part):
Use correct test to detect call in GNATprove mode instead of
compilation.
2017-04-27 Claire Dross <dross@adacore.com>
* a-cfdlli.adb, a-cfdlli.ads (Formal_Model.M_Elements_In_Union):
New property function expressing that the element of a
sequence are contained in the union of two sequences.
(Formal_Model.M_Elements_Included): New property function
expressing that the element of a sequence are another sequence.
(Generic_Sorting): Use new property functions to state that
elements are preserved by Sort and Merge.
* a-cofove.adb, a-cofove.ads (=): Generic parameter removed to
allow the use of regular equality over elements in contracts.
(Formal_Model): Ghost package containing model functions
that are used in subprogram contracts. (Capacity):
On unbounded containers, return the maximal capacity.
(Current_To_Last): Removed, model functions should be used instead.
(First_To_Previous): Removed, model functions should be used instead.
(Append): Default parameter value replaced
by new wrapper to allow more precise contracts.
(Insert): Subprogram restored, it seems it was useful to users even if
it is inefficient.
(Delete): Subprogram restored, it seems it was useful to users even if
it is inefficient.
(Prepend): Subprogram restored, it seems it was useful to users even
if it is inefficient.
(Delete_First): Subprogram restored, it seems it
was useful to users even if it is inefficient. (Delete_Last):
Default parameter value replaced by new wrapper to allow more
precise contracts.
(Generic_Sorting.Merge): Subprogram restored.
* a-cfinve.adb, a-cfinve.ads (=): Generic parameter removed to
allow the use of regular equality over elements in contracts.
(Formal_Model): Ghost package containing model functions
that are used in subprogram contracts. (Capacity):
On unbounded containers, return the maximal capacity.
(Current_To_Last): Removed, model functions should be used
instead.
(First_To_Previous): Removed, model functions should be used instead.
(Append): Default parameter value replaced
by new wrapper to allow more precise contracts.
(Insert): Subprogram restored, it seems it was useful to users even if
it is inefficient.
(Delete): Subprogram restored, it seems it was useful to users even if
it is inefficient.
(Prepend): Subprogram restored, it seems it was useful to users even
if it is inefficient.
(Delete_First): Subprogram restored, it seems it
was useful to users even if it is inefficient. (Delete_Last):
Default parameter value replaced by new wrapper to allow more
precise contracts.
(Generic_Sorting.Merge): Subprogram restored.
(Vector): Do not reuse formal vectors, as it is no longer possible
to supply them with an equality function over elements.
2017-04-27 Bob Duff <duff@adacore.com>
* g-dyntab.adb (Release): When allocating the new
table, use the correct slice of the old table to initialize it.
From-SVN: r247316
* einfo.ads: Minor fixes in comments.
2017-04-27 Ed Schonberg <schonberg@adacore.com>
* sem_prag.adb: disable clones in SPARK_Mode.
2017-04-27 Gary Dismukes <dismukes@adacore.com>
* sem_util.ads, contracts.adb: Minor reformatting.
From-SVN: r247315
2017-04-27 Ed Schonberg <schonberg@adacore.com>
* sem_util.adb, sem_util.ads (Build_Class_Wide_Clone_Body):
Build body of subprogram that has a class-wide condition that
contains calls to other primitives.
(Build_Class_Wide_Clone_Call); Build a call to the common
class-wide clone of a subprogram with classwide conditions. The
body of the subprogram becomes a wrapper for a call to the
clone. The inherited operation becomes a similar wrapper to which
modified conditions apply, and the call to the clone includes
the proper conversion in a call the parent operation.
(Build_Class_Wide_Clone_Decl (Spec_Id : Entity_Id): For a
subprogram that has a classwide condition that contains calls to
other primitives, build an internal subprogram that is invoked
through a type-specific wrapper for all inherited subprograms
that may have a modified condition.
* sem_prag.adb (Check_References): If subprogram has a classwide
condition, create entity for corresponding clone, to be invoked
through wrapper subprograns.
(Analyze_Pre_Post_Condition_In_Decl_Part): Do not emit error
message about placement if pragma isi internally generated.
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): If subprogram has
a classwide clone, build body of clone as copy of original body,
and rewrite original body as a wrapper as a wrapper for a call to
the clone, so that it incorporates the original pre/postconditions
of the subprogram.
* freeze.adb (Check_Inherited_Conditions): For an inherited
subprogram that inherits a classwide condition, build spec and
body of corresponding wrapper so that call to inherited operation
gets the modified conditions.
* contracts.adb (Analyze_Contracts): If analysis of classwide
condition has created a clone for a primitive operation, analyze
declaration of clone.
From-SVN: r247313
2017-04-27 Steve Baird <baird@adacore.com>
* exp_util.adb (Build_Allocate_Deallocate_Proc):
Add "Suppress => All_Checks" to avoid generating unnecessary
checks.
2017-04-27 Yannick Moy <moy@adacore.com>
* debug.adb: Reserve debug flag 'm' for no inlining in GNATprove.
* sem_ch6.adb (Anayze_Subprogram_Body_Helper): Skip creation of
inlining body in GNATprove mode when switch -gnatdm used.
* sem_res.adb (Resolve_Call): Skip detection of lack of inlining
in GNATprove mode when switch -gnatdm used.
2017-04-27 Arnaud Charlet <charlet@adacore.com>
* sem_ch13.adb (Analyze_Attribute_Definition_Clause
[Attribute_Address]): Call Set_Address_Taken when ignoring rep
clauses, so that we keep an indication of the address clause
before removing it from the tree.
From-SVN: r247312
2017-04-27 Yannick Moy <moy@adacore.com>
* exp_util.ads, exp_util.adb (Evaluate_Name): Force evaluation
of expression being qualified, when not an object name, or else
evaluate the underlying name.
From-SVN: r247311
2017-04-27 Jerome Lambourg <lambourg@adacore.com>
* bindusg.adb, bindgen.adb, gnatbind.adb, opt.ads: add -nognarl switch.
2017-04-27 Justin Squirek <squirek@adacore.com>
* exp_ch7.adb (Build_Finalize_Statements): Move Num_Comps to
Process_Component_List_For_Finalization as a local variable.
(Process_Component_For_Finalize): Add an extra parameter to avoid
global references.
(Process_Component_List_For_Finalization): Correct calls to
Process_Component_For_Finalize to take Num_Comps as a parameter.
From-SVN: r247310
2017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
* sem_ch8.adb (Find_Direct_Name): Account for the case where
a use-visible entity is defined within a nested scope of an
instance when giving priority to entities which were visible in
the original generic.
* sem_util.ads, sem_util.adb (Nearest_Enclosing_Instance): New routine.
2017-04-27 Tristan Gingold <gingold@adacore.com>
* raise-gcc.c: Don't use unwind.h while compiling
for the frontend, but mimic host behavior.
2017-04-27 Javier Miranda <miranda@adacore.com>
* sem_ch3.adb (Build_Discriminated_Subtype):
Propagate Has_Pragma_Unreferenced_Objects to the built subtype.
2017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
* sem_prag.adb (Analyze_Global_Item):
Do not consider discriminants because they are not "entire
objects". Remove the discriminant-related checks because they are
obsolete.
(Analyze_Input_Output): Do not consider discriminants
because they are not "entire objects".
2017-04-27 Ed Schonberg <schonberg@adacore.com>
* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Do not
perform check if the current scope does not come from source,
as is the case for a rewritten task body, because check has
been performed already, and may not be doable because of changed
visibility.
From-SVN: r247309
2017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
* a-cofuse.adb, a-cfdlli.adb, a-cofuse.ads, a-cfdlli.ads, a-cofuve.adb,
a-cofuve.ads, a-cofuma.adb, a-cofuma.ads, sem_eval.adb, a-cofuba.adb:
Minor reformatting.
2017-04-27 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Analyze_Call): If the return type of a function
is incomplete in an context in which the full view is available,
replace the type of the call by the full view, to prevent spurious
type errors.
* exp_disp.adb (Check_Premature_Freezing): Disable check on an
abstract subprogram so that compiler does not reject a parameter
of a primitive operation of a tagged type being frozen, when
the untagged type of that parameter cannot be frozen.
2017-04-27 Bob Duff <duff@adacore.com>
* sem_attr.adb (Compute_Type_Key): Don't walk
representation items for irrelevant types, which could be in a
different source file.
2017-04-27 Steve Baird <baird@adacore.com>
* exp_attr.adb (Expand_N_Attribute_Reference):
Don't expand Image, Wide_Image, Wide_Wide_Image attributes
for CodePeer.
From-SVN: r247305
2017-04-27 Yannick Moy <moy@adacore.com>
* exp_unst.ads: Fix typos in comments.
2017-04-27 Ed Schonberg <schonberg@adacore.com>
* sem_eval.adb (Choice_Matches): Handle properly a real literal
whose type has a defined static predicate.
2017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch4.adb (Insert_Dereference_Action):
Do not adjust the address of a controlled object when the
associated access type is subject to pragma No_Heap_Finalization.
Code reformatting.
From-SVN: r247304
2017-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
* gcc-interface/utils.c (gnat_type_for_size): Set
TYPE_ARTIFICIAL on created types.
From-SVN: r247303
2017-04-27 Claire Dross <dross@adacore.com>
* a-cfdlli.adb, a-cfdlli.ads (Formal_Model): Adapt to
modifications in functional containers.
* a-cofuba.ads, a-cofuma.ads, a-cofuse.ads, a-cofuve.ads Reformat
to improve readablity. Subprograms are separated between basic
operations, constructors and properties. Universally quantified
formulas in contracts are factorized in independant functions
with a name and a comment. Names of parameters are improved.
2017-04-27 Gary Dismukes <dismukes@adacore.com>
* exp_spark.adb, sem_elab.adb: Minor reformatting and typo fix.
2017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
* sem_res.adb (Resolve_Type_Conversion): Do not
install a predicate check here since this is already done during
the expansion phase. Verify whether the operand satisfies the
static predicate (if any) of the target type.
* sem_ch3.adb (Analyze_Object_Declaration): Do
not install a predicate check if the object is initialized by
means of a type conversion because the conversion is subjected
to the same check.
2017-04-27 Tristan Gingold <gingold@adacore.com>
* raise.c (__gnat_builtin_longjmp): Remove.
(__gnat_bracktrace):
Add a dummy definition for the compiler (__gnat_eh_personality,
__gnat_rcheck_04, __gnat_rcheck_10) (__gnat_rcheck_19,
__gnat_rcheck_20, __gnat_rcheck_21) (__gnat_rcheck_30,
__gnat_rcheck_31, __gnat_rcheck_32): Likewise.
* a-exexpr.adb: Renamed from a-exexpr-gcc.adb
* a-except.ads, a-except.adb: Renamed from a-except-2005.ads
and a-except-2005.adb.
* raise-gcc.c: Allow build in compiler, compiled as a C++
file.
(__gnat_Unwind_ForcedUnwind): Adjust prototype.
(db): Constify msg_format.
(get_call_site_action_for): Don't use void arithmetic.
* system.ads (Frontend_Exceptions): Set to False.
(ZCX_By_Default): Set to True.
(GCC_ZC_Support): Set to True.
* gcc-interface/Makefile.in: No more variants for a-exexpr.adb and
a-except.ad[sb].
* gcc-interface/Make-lang.in: Add support for backend zcx exceptions
in gnat1 and gnatbind.
* gnat1, gnatbind: link with raise-gcc.o, a-exctra.o, s-addima.o,
s-excmac.o, s-imgint.o, s-traceb.o, s-trasym.o, s-wchstw.o
* s-excmac.ads, s-excmac.adb: Copy of variants.
* a-except.o: Adjust preequisites.
Add handling of s-excmac-arm.adb and s-excmac-gcc.adb.
From-SVN: r247301
2017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
* exp_prag.adb, a-cofuse.adb, a-cofuse.ads, einfo.adb, sem_prag.adb,
cstand.adb, par-prag.adb, a-cofuve.adb, a-cofuve.ads, a-cofuma.adb,
a-cofuma.ads, a-cofuba.adb, a-cofuba.ads: Minor reformatting.
2017-04-27 Tristan Gingold <gingold@adacore.com>
* s-excmac-gcc.ads, s-excmac-gcc.adb,
s-excmac-arm.ads, s-excmac-arm.adb (New_Occurrence): Rewrite it in
Ada95.
2017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch7.adb (Establish_Transient_Scope): Rewrite
the loop which detects potential enclosing transient scopes. The
loop now terminates much earlier as transient scopes are bounded
by packages and subprograms.
2017-04-27 Claire Dross <dross@adacore.com>
* a-cfdlli.adb, a-cfdlli.ads (=): Generic parameter removed to
allow the use of regular equality over elements in contracts.
(Cursor): Type is now public so that it can be used in
model functions.
(Formal_Model): Ghost package containing
model functions that are used in subprogram contracts.
(Current_To_Last): Removed, model functions should be used
instead.
(First_To_Previous): Removed, model functions should
be used instead.
(Strict_Equal): Removed, model functions
should be used instead.
(Append): Default parameter value
replaced by new wrapper to allow more precise contracts.
(Insert): Default parameter value replaced by new wrapper to
allow more precise contracts.
(Delete): Default parameter
value replaced by new wrapper to allow more precise contracts.
(Prepend): Default parameter value replaced by new wrapper to
allow more precise contracts.
(Delete_First): Default parameter
value replaced by new wrapper to allow more precise contracts.
(Delete_Last): Default parameter value replaced by new wrapper
to allow more precise contracts.
2017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
* exp_spark.adb (Expand_SPARK): Perform specialized expansion
for object declarations.
(Expand_SPARK_N_Object_Declaration): New routine.
* sem_elab.adb (Check_A_Call): Include calls to the
Default_Initial_Condition procedure of a type under the SPARK
elaboration checks umbrella.
From-SVN: r247299
2017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
* sem.adb (Analyze): Diagnose an illegal iterated component
association.
* sem_util.ads, sem_util.adb
(Diagnose_Iterated_Component_Association): New routine.
2017-04-27 Bob Duff <duff@adacore.com>
* adaint.c (__gnat_get_current_dir): Return 0 in length if
getcwd fails.
* a-direct.adb, g-dirope.adb, osint.adb, s-os_lib.adb: Raise
exception if getcwd failed.
2017-04-27 Yannick Moy <moy@adacore.com>
* exp_dbug.adb, exp_dbug.ads (Get_External_Name): Prefix ghost
entities with special prefix.
2017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
* debug.adb Change the documentation of switch -gnatd.s.
* exp_ch7.adb (Make_Transient_Block): Transient blocks do not need
to manage the secondary stack when an enclosing scope already
performs this functionality (aka relaxed management). Switch
-gnatd.s may be used to force strict management in which case
the block will manage the secondary stack unconditionally. Add
a guard to stop the traversal when encountering a package or a
subprogram scope.
2017-04-27 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Resolve_Call): Refine further the handling of
limited views of return types in function calls. If the function
that returns a limited view appears in the current unit,
we do not replace its type by the non-limited view because
this transformation is performed int the back-end. However,
the type of the call itself must be the non-limited view, to
prevent spurious resolution errors.
2017-04-27 Ed Schonberg <schonberg@adacore.com>
* einfo,ads, einfo.adb (Class_Wide_Preconds, Class_Wide_Postconds):
Removed, proposed implementation using generics for class-wide
preconditions proved impractical.
(Class_Wide_Clone): New attribute of subprogram. Designates
subprogram created for primitive operations with class-wide
pre/postconditions that contain calls to other primitives. The
clone holds the body of the original primitive, but the
pre/postonditions do not apply to it. The original body is
rewritten as a wrapper for a call to the clone.
(Is_Class_Wide_Clone): New flag to identify a Class_Wide_Clone. If
the flag is set, no code for the corresponding pre/postconditions
is inserted into its body.
2017-04-27 Bob Duff <duff@adacore.com>
* exp_prag.adb, par-prag.adb, sem_ch13.adb: Ignore
Scalar_Storage_Order if -gnatI is given.
* sem_prag.adb (Analyze_Pragma): Ignore
Default_Scalar_Storage_Order if -gnatI is given.
From-SVN: r247298
2017-04-27 Claire Dross <dross@adacore.com>
* a-cofuba.ads (Add): Take as an additional input parameter
the position where the element should be inserted.
(Remove): New function that removes an element from the container.
* a-cofuma.ads (Add): Adapt to the new API of Base.Add.
* a-cofuse.ads (Add): Adapt to the new API of Base.Add.
(Remove): New function that removes an element from a set.
* a-cofuve.ads (Add): Adapt to the new API of Base.Add.
(Remove): New function that removes an element from a sequence.
(Insert): New function that adds anywhere in a sequence.
From-SVN: r247297
2017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
* checks.adb (Generate_Range_Check): Revert previous change.
2017-04-27 Gary Dismukes <dismukes@adacore.com>
* sem_util.adb: Minor reformatting/rewording.
2017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
* lib-xref.adb (Generate_Reference): The use
of attribute 'Result is not considered a violation of pragma
Unreferenced.
2017-04-27 Justin Squirek <squirek@adacore.com>
* cstand.adb (Create_Standard): Correctly set
Directly_Designated_Type for Any_Access.
* sem_type.adb (Covers): Minor grammar fixes.
2017-04-27 Bob Duff <duff@adacore.com>
* sem_attr.adb: Minor cleanup.
2017-04-27 Claire Dross <dross@adacore.com>
* a-cofuba.ads, a-cofuba.adb (Ada.Containers.Functional_Base): New
private child of Ada.Containers used to implement all functional
containers.
* a-cofuma.ads, a-cofuma.adb (Ada.Containers.Functional_Maps): New
child of Ada.Containers. It provides functional indefinite unbounded
maps which can be used as high level models for specification
of data structures.
* a-cofuse.ads, a-cofuse.adb (Ada.Containers.Functional_Sets): New
child of Ada.Containers. It provides functional indefinite unbounded
sets which can be used as high level models for specification
of data structures.
* a-cofuve.ads, a-cofuve.adb (Ada.Containers.Functional_Vectors): New
child of Ada.Containers. It provides functional indefinite unbounded
vectors which can be used as high level models for specification
of data structures.
* Makefile.rtl: Add new packages.
* impunit.adb: Add new packages.
From-SVN: r247296
2017-04-27 Gary Dismukes <dismukes@adacore.com>
* sem_ch4.adb: Minor reformatting.
2017-04-27 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Analyze_Associations): minor reformatting.
(Check_Fixed_Point_Actual): Do not emit a warning on a fixed
point type actual that has user-defined arithmetic primitives,
when there is a previous actual for a formal package that defines
a fixed-point type with the parent user-defined operator.
2017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
* checks.adb (Generate_Range_Check): Reinstate part of previous change.
* sem_attr.adb (Resolve_Attribute): Generate a range check when
the component type allows range checks.
2017-04-27 Ed Schonberg <schonberg@adacore.com>
* sem_aux.adb (Is_Generic_Formal): Use original node to locate
corresponding declaration, because formal derived types are
rewritten as private extensions.
2017-04-27 Ed Schonberg <schonberg@adacore.com>
* sem_dim.adb (Analyze_Dimension_Binary_Op): Do not check
dimensions of operands if node has been analyzed already, because
previous analysis and dimension checking will have removed the
dimension information from the operands.
2017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
* debug.adb: Document the use of switch -gnatd.s.
* einfo.ads Update the documentation on attribute
Sec_Stack_Needed_For_Return and attribute Uses_Sec_Stack. Remove
the uses of these attributes from certain entities.
* exp_ch7.adb (Make_Transient_Block): Reimplement the circuitry
which determines whether the block should continue to manage
the secondary stack.
(Manages_Sec_Stack): New routine.
2017-04-27 Bob Duff <duff@adacore.com>
* atree.ads: Minor edit.
2017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
* sinfo.ads: Update the section on Ghost mode. Add
a section on SPARK mode. Update the placement of section on
expression functions.
2017-04-27 Bob Duff <duff@adacore.com>
* sinput.adb (Get_Source_File_Index): Don't
assert that S is in the right range in the case where this is
a .dg file under construction.
2017-04-27 Yannick Moy <moy@adacore.com>
* sem_util.adb (Check_Result_And_Post_State):
Handle more precisely each conjunct in expressions formed by
and'ing sub-expressions.
From-SVN: r247295
* testsuite/23_containers/deque/allocator/move_assign-2.cc: Improve
comment. Ensure first test works because allocator type propagates and
not because is_always_equal is true.
* testsuite/23_containers/vector/52591.cc: Likewise. Restore original
testcase that instantiates the move-assignment operator.
From-SVN: r247284
* parser.c (cp_parser_nested_name_specifier_opt): Add fix-it
information to diagnostic of invalid colon in nested-name-specifier.
* g++.dg/diagnostic/nested-name-1.C: New test.
From-SVN: r247282
gcc/ChangeLog:
PR bootstrap/80486
* dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
(new_zero_array): Adjust signature.
(dom_info::dom_init): Used unsigned rather that size_t.
(dom_info::dom_info): Same.
From-SVN: r247261
PR target/77728
* config/arm/arm.c: Include gimple.h.
(aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
returns negative, increment ncrn only if it returned positive.
(arm_needs_doubleword_align): Return int instead of bool,
ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
members, but if there is any such non-FIELD_DECL
> PARM_BOUNDARY aligned decl, return -1 instead of false.
(arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
returns negative, increment nregs only if it returned positive.
(arm_setup_incoming_varargs): Likewise.
(arm_function_arg_boundary): Emit -Wpsabi note if
arm_needs_doubleword_align returns negative, return
DOUBLEWORD_ALIGNMENT only if it returned positive.
testsuite/
* g++.dg/abi/pr77728-1.C: New test.
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r247258
* parser.c (cp_parser_elaborated_type_specifier): Add fix-it to
diagnostic of invalid class/struct keyword after enum.
* g++.dg/cpp0x/enum34.C: New test.
From-SVN: r247254
2017-04-25 Arnaud Charlet <charlet@adacore.com>
* exp_ch4.adb (Expand_N_Case_Expression): Emit error message when
generating C code on complex case expressions.
2017-04-25 Arnaud Charlet <charlet@adacore.com>
* sem_prag.adb (Analyze_Pragma): Generate a warning instead
of silently ignoring pragma Ada_xxx in Latest_Ada_Only mode.
* directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Use
Ada_2012 instead of Ada_2005 to be compatible with the above
change.
* bindgen.adb: Silence new warning on pragma Ada_95.
2017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
* checks.adb (Generate_Range_Check): Revert part of previous change.
2017-04-25 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Try_Container_Indexing): Handle properly a
container indexing operation that appears as a an actual in a
parameter association in a procedure call.
2017-04-25 Olivier Ramonat <ramonat@adacore.com>
* prj-proc.adb, sem_util.adb, s-stposu.adb, sem_attr.adb, prj-conf.ads:
Fix spelling mistakes.
2017-04-25 Bob Duff <duff@adacore.com>
* types.ads, osint.adb, sinput-c.adb, sinput-d.adb, sinput-l.adb,
* sinput-p.adb: Use regular fat pointers, with bounds checking,
for source buffers. Fix misc obscure bugs.
* sinput.ads, sinput.adb: Use regular fat pointers, with bounds
checking, for source buffers. Modify representation clause for
Source_File_Record as appropriate. Move Source_File_Index_Table
from spec to body, because it is not used outside the body.
Move Set_Source_File_Index_Table into the private part, because
it is used only in the body and in children. Use trickery to
modify the dope in the generic instantiation case. It's ugly,
but not as ugly as the previous method. Fix documentation.
Remove obsolete code.
* fname-sf.adb, targparm.adb: Fix misc out-of-bounds
indexing in source buffers.
* fmap.adb: Avoid conversions from one string type to another.
Remove a use of global name buffer.
* osint.ads, sfn_scan.ads, sfn_scan.adb, sinput-c.ads: Comment
fixes.
From-SVN: r247252
Context: there are currently two types of line number supported in
dg-{error,warning,message,bogus} directives: absolute and relative. With an
absolute line number, it's immediately clear what line number is meant, but
when a line is added at the start of the file, the line number needs to be
updated. With a relative line number, that problem is solved, but when relative
line numbers become large, it becomes less clear what line it refers to, and
when adding a line inbetween the directive using the relative line number and
the line it refers to, the relative line number still needs to be updated.
Add a directive dg-line with argument varname, that saves the line number
of the directive in a variable varname, which can be used as line number in dg
directives.
2017-04-25 Tom de Vries <tom@codesourcery.com>
* lib/gcc-dg.exp (cleanup-after-saved-dg-test): Cleanup line number
variables.
(dg-line): New proc.
(process-message): Handle line number variables.
* objc.dg/try-catch-12.m: Use dg-line.
From-SVN: r247251