|
|
|
@ -1,3 +1,354 @@
|
|
|
|
|
2020-06-15 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_eval.ads (Predicates_Match): Fix description.
|
|
|
|
|
* sem_eval.adb (Predicates_Match): Rewrite.
|
|
|
|
|
|
|
|
|
|
2020-06-15 Ed Falis <falis@adacore.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.rtl: Change name of hie/g-io__vxworks-ppc-cert.adb.
|
|
|
|
|
|
|
|
|
|
2020-06-15 Arnaud Charlet <charlet@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_ch8.adb (Premature_Usage): Add support for subtype
|
|
|
|
|
references and replace set of if-then-else by a case statement.
|
|
|
|
|
|
|
|
|
|
2020-06-15 Piotr Trojanek <trojanek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_prag.adb (Analyze_Depends_In_Decl_Part,
|
|
|
|
|
Analyze_Global_In_Decl_Part): Bring back task discriminants for
|
|
|
|
|
analysis of the Global/Depends contracts; add comments.
|
|
|
|
|
|
|
|
|
|
2020-06-15 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* einfo.ads (Return_Applies_To): Document special usage for E_Block.
|
|
|
|
|
* einfo.adb (Write_Field8_Name): Write it for E_Block too.
|
|
|
|
|
* exp_ch4.adb (Expand_N_Type_Conversion): Remove implementation of
|
|
|
|
|
the check prescribed by AI05-0073.
|
|
|
|
|
* exp_ch6.adb (Apply_CW_Accessibility_Check): New procedure to apply
|
|
|
|
|
the check prescribed by AI95-344 extracted from...
|
|
|
|
|
(Expand_N_Extended_Return_Statement): Apply the check prescribed by
|
|
|
|
|
AI95-344 to the expression, if present. Suppress only access checks
|
|
|
|
|
when analyzing the rewritten result.
|
|
|
|
|
(Expand_Simple_Function_Return): ...here. Rename local variable.
|
|
|
|
|
Call Apply_CW_Accessibility_Check to apply the check prescribed by
|
|
|
|
|
AI95-344, but do not do it for the simple return statement generated
|
|
|
|
|
by the expansion of an extended return statement. Apply the check
|
|
|
|
|
prescribed by AI05-0073 to all functions returning anonymous access
|
|
|
|
|
type designating a specific tagged type, but not if the expression
|
|
|
|
|
was null or tag checks are suppressed for the type, and use Not In
|
|
|
|
|
operator rather than comparing the tags explicitly.
|
|
|
|
|
* sem.adb (Analyze): Handle all Suppress values.
|
|
|
|
|
* sem_ch6.adb (Analyze_Function_Return): Do not explicitly apply
|
|
|
|
|
predicate checks in the case of an extended return statement.
|
|
|
|
|
Do not apply an implicit conversion to the anonymous access result
|
|
|
|
|
type in the case of the simple return statement generated by the
|
|
|
|
|
expansion of an extended return statement.
|
|
|
|
|
(New_Overloaded_Entity): Small comment tweak.
|
|
|
|
|
* treepr.adb (Print_Node): Fix typo in flag string.
|
|
|
|
|
|
|
|
|
|
2020-06-15 Bob Duff <duff@adacore.com>
|
|
|
|
|
|
|
|
|
|
* exp_put_image.ads, exp_put_image.adb
|
|
|
|
|
(Image_Should_Call_Put_Image): New function to determine whether
|
|
|
|
|
the call to Put_Image should be generated.
|
|
|
|
|
(Build_Image_Call): New procedure to generate the call to
|
|
|
|
|
Put_Image.
|
|
|
|
|
* exp_imgv.adb (Expand_Image_Attribute): Use underlying types to
|
|
|
|
|
bypass privacy (only in Ada 2020). If
|
|
|
|
|
Image_Should_Call_Put_Image is True (which happens only in Ada
|
|
|
|
|
2020), then call Build_Image_Call.
|
|
|
|
|
* rtsfind.ads, rtsfind.adb: Add the necessary declarations in
|
|
|
|
|
Ada.Strings.Text_Output.Buffers.
|
|
|
|
|
* sem_attr.adb (Check_Image_Type): Enable the Ada 2020 case.
|
|
|
|
|
* libgnat/a-stoufo.ads, libgnat/a-stoufo.adb: Use the less
|
|
|
|
|
restrictive type that allows newline characters.
|
|
|
|
|
|
|
|
|
|
2020-06-15 Gary Dismukes <dismukes@adacore.com>
|
|
|
|
|
|
|
|
|
|
* exp_ch9.ads (Build_Master_Declaration): Add commas.
|
|
|
|
|
* exp_ch9.adb (Build_Master_Entity): Spelling fix ("build" =>
|
|
|
|
|
"built").
|
|
|
|
|
(Build_Task_Activation_Call): Fix word order.
|
|
|
|
|
|
|
|
|
|
2020-06-15 Arnaud Charlet <charlet@adacore.com>
|
|
|
|
|
|
|
|
|
|
* libgnat/a-nbnbin.ads (Big_Positive, Big_Natural): Fix
|
|
|
|
|
predicate.
|
|
|
|
|
|
|
|
|
|
2020-06-15 Piotr Trojanek <trojanek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Fix
|
|
|
|
|
dealing with scopes on subprogram bodies that act as specs.
|
|
|
|
|
* sem_util.adb (Has_Relaxed_Initialization): Fix trivial
|
|
|
|
|
mistake.
|
|
|
|
|
|
|
|
|
|
2020-06-15 Javier Miranda <miranda@adacore.com>
|
|
|
|
|
|
|
|
|
|
* restrict.ads (Set_Global_No_Tasking, Global_No_Tasking): New
|
|
|
|
|
subprograms.
|
|
|
|
|
* restrict.adb (Set_Global_No_Tasking, Global_No_Tasking): New
|
|
|
|
|
subprograms.
|
|
|
|
|
* sem_ch3.adb (Access_Definition): Do not skip building masters
|
|
|
|
|
since they may be required for BIP calls.
|
|
|
|
|
(Analyze_Subtype_Declaration): Propagate attribute
|
|
|
|
|
Is_Limited_Record in class-wide subtypes and subtypes with
|
|
|
|
|
cloned subtype attribute; propagate attribute
|
|
|
|
|
Is_Limited_Interface.
|
|
|
|
|
* sem_ch6.adb (Check_Anonymous_Return): Do not skip building
|
|
|
|
|
masters since they may be required for BIP calls. Use
|
|
|
|
|
Build_Master_Declaration to declare the _master variable.
|
|
|
|
|
(Create_Extra_Formals): Add decoration of Has_Master_Entity when
|
|
|
|
|
the _master formal is added.
|
|
|
|
|
* exp_ch3.adb (Init_Formals): Adding formal to decorate it with
|
|
|
|
|
attribute Has_Master_Entity when the _master formal is added.
|
|
|
|
|
(Build_Master): Do not skip building masters since they may be
|
|
|
|
|
required for BIP calls.
|
|
|
|
|
(Expand_N_Object_Declaration): Ensure activation chain and
|
|
|
|
|
master entity for objects initialized with BIP function calls.
|
|
|
|
|
* sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
|
|
|
|
|
Adding support to detect and save restriction No_Tasking when
|
|
|
|
|
set in the run-time package System or in a global configuration
|
|
|
|
|
pragmas file.
|
|
|
|
|
* sem_util.adb (Current_Entity_In_Scope): Overload this
|
|
|
|
|
subprogram to allow searching for an entity by its Name.
|
|
|
|
|
* sem_util.ads (Current_Entity_In_Scope): Update comment.
|
|
|
|
|
* exp_ch4.adb (Expand_N_Allocator): Do not skip building masters
|
|
|
|
|
since they may be required for BIP calls.
|
|
|
|
|
* exp_ch6.ads (Might_Have_Tasks): New subprogram.
|
|
|
|
|
* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Add
|
|
|
|
|
support for BIP calls returning objects that may have tasks.
|
|
|
|
|
(Make_Build_In_Place_Call_In_Allocator): Build the activation
|
|
|
|
|
chain if the result might have tasks.
|
|
|
|
|
(Make_Build_In_Place_Iface_Call_In_Allocator): Build the class
|
|
|
|
|
wide master for the result type.
|
|
|
|
|
(Might_Have_Tasks): New subprogram.
|
|
|
|
|
(Needs_BIP_Task_Actuals): Returns False when restriction
|
|
|
|
|
No_Tasking is globally set.
|
|
|
|
|
* exp_ch9.ads (Build_Master_Declaration): New subprogram.
|
|
|
|
|
* exp_ch9.adb (Build_Activation_Chain_Entity): No action
|
|
|
|
|
performed when restriction No_Tasking is globally set.
|
|
|
|
|
(Build_Class_Wide_Master): No action performed when restriction
|
|
|
|
|
No_Tasking is globally set; use Build_Master_Declaration to
|
|
|
|
|
declare the _master variable.
|
|
|
|
|
(Build_Master_Declaration): New subprogram.
|
|
|
|
|
(Build_Master_Entity): No action performed when restriction
|
|
|
|
|
No_Tasking is globally set; added support to handle transient
|
|
|
|
|
scopes and _finalizer routines.
|
|
|
|
|
(Build_Master_Renaming): No action performed when restriction
|
|
|
|
|
No_Tasking is globally set.
|
|
|
|
|
(Build_Task_Activation_Call): Skip generating the call when
|
|
|
|
|
the chain is an ignored ghost entity.
|
|
|
|
|
(Find_Master_Scope): Generalize the code that detects transient
|
|
|
|
|
scopes with master entity.
|
|
|
|
|
* einfo.ads (Has_Nested_Subprogram): Minor comment reformatting.
|
|
|
|
|
|
|
|
|
|
2020-06-15 Arnaud Charlet <charlet@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_attr.adb (Eval_Attribute): Protect against previous
|
|
|
|
|
errors.
|
|
|
|
|
* sem_ch13.adb (Analyze_Aspect_Default_Value): Remove redundant
|
|
|
|
|
error checking, handling in Analyze_Aspect_Specifications.
|
|
|
|
|
(Analyze_Aspect_Specifications): Refine error messages on
|
|
|
|
|
Default_[Component_]Value.
|
|
|
|
|
(Check_Aspect_Too_Late): New procedure.
|
|
|
|
|
(Rep_Item_Too_Late.Is_Derived_Type_With_Constraint): Remove,
|
|
|
|
|
dead code.
|
|
|
|
|
* aspects.ads (Is_Representation_Aspect): Default_Value is a
|
|
|
|
|
representation aspect.
|
|
|
|
|
|
|
|
|
|
2020-06-15 Arnaud Charlet <charlet@adacore.com>
|
|
|
|
|
|
|
|
|
|
* libgnat/a-wichha.ads, libgnat/a-wichha.adb,
|
|
|
|
|
libgnat/a-wichun.ads, libgnat/a-wichun.adb (Is_Basic, To_Basic):
|
|
|
|
|
New.
|
|
|
|
|
* libgnat/s-utf_32.ads, libgnat/s-utf_32.adb (Is_UTF_32_Basic,
|
|
|
|
|
To_UTF_32_Basic, Decomposition_Search): New subprograms.
|
|
|
|
|
(Unicode_Decomposition): New table.
|
|
|
|
|
|
|
|
|
|
2020-06-15 Gary Dismukes <dismukes@adacore.com>
|
|
|
|
|
|
|
|
|
|
* exp_ch6.adb (Add_Call_By_Copy_Code): In the case of a view
|
|
|
|
|
conversion passed to a scalar out-mode parameter where the
|
|
|
|
|
formal has Default_Value set, declare the copy temp with the
|
|
|
|
|
base type of the formal's subtype and initialize the copy temp
|
|
|
|
|
with the actual's value.
|
|
|
|
|
|
|
|
|
|
2020-06-15 Justin Squirek <squirek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* exp_ch4.adb (Expand_N_Case_Expression): Set default value for
|
|
|
|
|
Target to silence potential warnings.
|
|
|
|
|
(Expand_N_If_Expression): Add calculation to check when the if
|
|
|
|
|
expression is used directly in the context of an actual of an
|
|
|
|
|
anonymous access type and add a special path to force expansion
|
|
|
|
|
of the if expression in this case.
|
|
|
|
|
* exp_ch6.adb (Expand_Branch): Generate an assignment to the
|
|
|
|
|
level temporary for a given branch.
|
|
|
|
|
(Expand_Call_Helper): Add expansion to allow for creating a
|
|
|
|
|
temporary to store associated accessiblity levels on each branch
|
|
|
|
|
of the conditional expression. Also perform expansion of
|
|
|
|
|
function calls into expressions with actions, and fixup
|
|
|
|
|
references to N with Call_Node.
|
|
|
|
|
(Insert_Level_Assign): Move through nested conditional
|
|
|
|
|
expressions to each branch.
|
|
|
|
|
* sem_util.ads, sem_util.adb (Is_Anonymous_Access_Actual): Added
|
|
|
|
|
to detect when to force expansion of if expressions.
|
|
|
|
|
|
|
|
|
|
2020-06-15 Piotr Trojanek <trojanek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_prag.adb (Analyze_Depends_In_Decl_Part,
|
|
|
|
|
Analyze_Global_In_Decl_Part): Do not install task discriminants
|
|
|
|
|
for analysis of the Global/Depends contracts.
|
|
|
|
|
|
|
|
|
|
2020-06-15 Piotr Trojanek <trojanek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* contracts.adb (Analyze_Object_Contract): Do not expect
|
|
|
|
|
Global/Depends on single protected units.
|
|
|
|
|
|
|
|
|
|
2020-06-15 Justin Squirek <squirek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_res.adb (Valid_Conversion): Add missing condition to
|
|
|
|
|
trigger proper static accessiblity failiures when the target
|
|
|
|
|
type is an anonymous access.
|
|
|
|
|
|
|
|
|
|
2020-06-15 Piotr Trojanek <trojanek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* exp_ch6.adb (Expand_Call_Helper): Replace repeated Ekind with
|
|
|
|
|
Ekind_In.
|
|
|
|
|
|
|
|
|
|
2020-06-15 Piotr Trojanek <trojanek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* exp_ch6.adb, sem_util.adb: Remove excessive parents,
|
|
|
|
|
especially since they don't make the code any easier to read.
|
|
|
|
|
|
|
|
|
|
2020-06-15 Piotr Trojanek <trojanek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* aspects.ads (Aspect_Id): Add Aspect_Relaxed_Initialization.
|
|
|
|
|
(Implementation_Defined_Aspect): Add new aspect.
|
|
|
|
|
(Aspect_Argument): Add new aspect with Optional_Expression
|
|
|
|
|
argument.
|
|
|
|
|
(Is_Representation_Aspect): Add new aspect as a
|
|
|
|
|
non-representation one.
|
|
|
|
|
(Aspect_Names): Add name for the new aspect.
|
|
|
|
|
(Aspect_Delay): Add new aspect as a non-delayed one.
|
|
|
|
|
* sem_ch3.adb: Minor reformatting.
|
|
|
|
|
* einfo.ads, einfo.adb (Is_Relaxed_Initialization_State): New
|
|
|
|
|
query; reuses existing code for querying abstract state options.
|
|
|
|
|
* exp_attr.adb (Expand_N_Attribute_Reference): For now ignore
|
|
|
|
|
attribute 'Initialized.
|
|
|
|
|
* sem_attr.adb (Analyze_Attribute_Old_Result): Allow attribute
|
|
|
|
|
'Result to be used in the aspect Relaxed_Initialization
|
|
|
|
|
expression.
|
|
|
|
|
(Analyze_Attribute): Analyze attribute 'Initialized; based on
|
|
|
|
|
existing code for attribute 'Valid_Scalars.
|
|
|
|
|
(Eval_Attribute): Do not expect attribute 'Initialized, just
|
|
|
|
|
like attribute 'Valid_Scalars is not expected.
|
|
|
|
|
* sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): New
|
|
|
|
|
routine.
|
|
|
|
|
(Analyze_Aspect_Specifications): Analyze new aspect in a
|
|
|
|
|
dedicated routine.
|
|
|
|
|
(Check_Aspect_At_Freeze_Point): Do not expect new aspect.
|
|
|
|
|
* sem_prag.adb (Analyze_Abstract_State): Support option
|
|
|
|
|
Relaxed_Initialization on abstract states.
|
|
|
|
|
* sem_util.ads, sem_util.adb (Has_Relaxed_Initialization): New
|
|
|
|
|
query for the GNATprove backend.
|
|
|
|
|
* snames.ads-tmpl (Snames): Add Name_Ids for the new aspect and
|
|
|
|
|
attribute; add an Attribute_Id for the new attribute.
|
|
|
|
|
|
|
|
|
|
2020-06-15 Bob Duff <duff@adacore.com>
|
|
|
|
|
|
|
|
|
|
* exp_put_image.adb, libgnat/s-putima.adb, libgnat/s-putima.ads,
|
|
|
|
|
rtsfind.ads: Enable Put_Image if Is_Access_Subprogram_Type (Typ).
|
|
|
|
|
Remove comment saying it's disabled in that case. Rename
|
|
|
|
|
Put_Image_Access_Prot to be Put_Image_Access_Prot_Subp to
|
|
|
|
|
clarify that we're talking about access-to-subprogram, not
|
|
|
|
|
access-to-protected-object.
|
|
|
|
|
|
|
|
|
|
2020-06-15 Bob Duff <duff@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_attr.adb (Check_Image_Type): New procedure for checking
|
|
|
|
|
the type, depending on language version. Disable the Ada 2020
|
|
|
|
|
support until the corresponding expander work is done.
|
|
|
|
|
(Analyze_Image_Attribute): Call Check_Image_Type. Rearrange the
|
|
|
|
|
code to be simplier and more logical. When P_Type is modified,
|
|
|
|
|
modify P_Base_Type accordingly.
|
|
|
|
|
* sem_util.adb (Is_Object_Image): Do not return False if the
|
|
|
|
|
prefix is a type. X'Image should be considered an image of an
|
|
|
|
|
object iff X is an object (albeit illegal pre-2020 if
|
|
|
|
|
nonscalar).
|
|
|
|
|
|
|
|
|
|
2020-06-15 Bob Duff <duff@adacore.com>
|
|
|
|
|
|
|
|
|
|
* libgnat/s-putima.ads, libgnat/s-putima.adb
|
|
|
|
|
(Put_Image_Access_Subp, Put_Image_Access_Prot): New procedures
|
|
|
|
|
for printing access-to-subprogram objects. Remove an explicit
|
|
|
|
|
" ", because Put_Image includes the annoying leading blank.
|
|
|
|
|
* rtsfind.ads: Add new procedures in s-putima.
|
|
|
|
|
* exp_put_image.adb: Call new procedures as appropriate.
|
|
|
|
|
|
|
|
|
|
2020-06-15 Bob Duff <duff@adacore.com>
|
|
|
|
|
|
|
|
|
|
* exp_imgv.adb (Expand_Image_Attribute): Allow private types.
|
|
|
|
|
Put_Image generates Image for numeric types, and private types
|
|
|
|
|
whose full type is numeric. This requires the Conversion_OK flag
|
|
|
|
|
for integer and floating-point types. For fixed point, we need
|
|
|
|
|
the extra conversion.
|
|
|
|
|
* exp_put_image.adb (Build_Elementary_Put_Image_Call): Remove
|
|
|
|
|
special handling of real types.
|
|
|
|
|
(Enable_Put_Image): Enable for reals.
|
|
|
|
|
|
|
|
|
|
2020-06-15 Bob Duff <duff@adacore.com>
|
|
|
|
|
|
|
|
|
|
* exp_attr.adb (Put_Image): Use underlying type for strings.
|
|
|
|
|
Remove unchecked union processing.
|
|
|
|
|
* exp_put_image.adb (Tagged_Put_Image_Enabled): Use -gnatd_z to
|
|
|
|
|
enable default Put_Image for tagged types. This allows testing
|
|
|
|
|
that feature.
|
|
|
|
|
(Build_String_Put_Image_Call): Set Conversion_OK flag.
|
|
|
|
|
(Make_Component_List_Attributes): Remove unchecked union
|
|
|
|
|
processing.
|
|
|
|
|
(Enable_Put_Image): Disable for unchecked unions. Enable for
|
|
|
|
|
nonscalar types (which were mistakenly disabled in earlier
|
|
|
|
|
changes).
|
|
|
|
|
* debug.adb: Document -gnatd_z switch.
|
|
|
|
|
* libgnat/s-putima.adb (Put_Image_String, Put_Image_Wide_String,
|
|
|
|
|
Put_Image_Wide_Wide_String): Double double-quote characters.
|
|
|
|
|
Forget about special handling of control characters for now --
|
|
|
|
|
that's rare enough to not be a priority, and it's not clear what
|
|
|
|
|
the right thing to do is anyway.
|
|
|
|
|
* namet.adb: Minor: Improve debugger-friendliness.
|
|
|
|
|
* sinfo.ads: Minor: Add "???" comment.
|
|
|
|
|
|
|
|
|
|
2020-06-15 Piotr Trojanek <trojanek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_util.ads, sem_util.adb (Is_Renaming_Declaration): Remove.
|
|
|
|
|
|
|
|
|
|
2020-06-15 Ed Schonberg <schonberg@adacore.com>
|
|
|
|
|
|
|
|
|
|
* freeze.adb (Freeze_Expression): When traversing the tree
|
|
|
|
|
looking for the proper insertion point for the freeze node of an
|
|
|
|
|
entity that is declared in an outer scope, set the candidate
|
|
|
|
|
subprogram body node properly. Previous code has an off-by-one
|
|
|
|
|
error.
|
|
|
|
|
|
|
|
|
|
2020-06-15 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* exp_attr.adb (Expand_N_Attribute_Reference) <Has_Same_Storage>:
|
|
|
|
|
Do not do superfluous work. Add the condition (X'Size /= 0) on
|
|
|
|
|
both paths and turn binary AND into short-circuit AND THEN.
|
|
|
|
|
|
|
|
|
|
2020-06-15 Steve Baird <baird@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_attr.adb (Analyze_Attribute): In the Loop_Entry case,
|
|
|
|
|
replace a call to Statically_Denotes_Object with a call to
|
|
|
|
|
Statically_Names_Object and clean up the preceding comment.
|
|
|
|
|
|
|
|
|
|
2020-06-15 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_res.adb (Resolve_Set_Membership): Remove local variable.
|
|
|
|
|
In the non-overloaded case, call Intersect_Types on the left
|
|
|
|
|
operand and the first alternative to get the resolution type.
|
|
|
|
|
But test the subtype of the left operand to give the warning.
|
|
|
|
|
|
|
|
|
|
2020-06-12 Steve Baird <baird@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_res.adb (Valid_Conversion): The simpler cases of
|
|
|
|
|