| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* sem_ch3.adb (Is_Visible_Component): Component is visible
in a derived type if inherited through an ancestor that has a
partial view of the original type holding the component, if the
full view of that original type is in scope.
* sem_util.ads (Get_Body_From_Stub): Works for all kinds of stubs.
2015-05-28 Bob Duff <duff@adacore.com>
* sem_util.adb (Requires_Transient_Scope): For definite untagged
subtypes, we should never have to use the secondary stack. This moves
toward that goal. But there are still cases that don't work.
Here, we move the check for Is_Definite first, but add a
special-purpose check for Has_Discrim_Dep_Array.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223817 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
* sem_util.adb (Requires_Transient_Scope): Avoid returning
function results on the secondary stack in so many cases.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223814 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* sem_util.adb (Wrong_Type): In any instance, do not emit error
if type of expression is the partial view of the expected type.
2015-05-28 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Resolve_Actuals): a) The replacement of formal
names in named associations only needs to be done within an
instance, on a call to a primitive of a formal derived type,
where the actual subprogram may have different formal names than
those of the primitive operation of the formal type.
b) Defaulted parameters must be taken into account when obtaining
the names of the formals of the actual subprogram being called.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223804 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* sem_ch13.adb, sem_disp.ads: Minor reformatting.
2015-05-28 Ed Schonberg <schonberg@adacore.com>
* sem_util.adb (Set_Debug_Info_Needed): For a private type
whose full view is itself a derived private type, set flag on
underlying full view as well, for proper gdb display.
2015-05-28 Bob Duff <duff@adacore.com>
* exp_tss.ads: Minor comment fix.
* exp_ch3.adb (Build_Array_Init_Proc, Build_Record_Init_Proc):
Inline init_procs when the type has controlled parts. Remove
obsolete comments about those init_procs -- init_procs for
such types are no longer complex. A typical init_proc just
initializes the 'Tag field, and calls the parent init_proc
(e.g. for Limited_Controlled), which calls the grandparent
(for Root_Controlled), which does nothing. This all boils down
to one instruction when inlined.
* exp_ch7.adb (Create_Finalizer): Inline the finalizer.
2015-05-28 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Analyze_Selected_Component): If the type to use
is a derived type and is a generic actual, the selected component
appears within an instance body, and the check over the type
has failed, examine ancestor types for the desired component.
(Find_Component_In_Instance): If record type is a derived type,
examine all ancestors in order to locate desired component.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223800 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* sem_aux.adb: Minor rewording.
2015-05-27 Bob Duff <duff@adacore.com>
* exp_prag.adb (Expand_Pragma_Abort_Defer): Make
pragma Abort_Defer do nothing if Abort_Allowed is False.
2015-05-27 Arnaud Charlet <charlet@adacore.com>
* exp_ch9.adb, sem_util.adb, sem_util.ads, s-stposu.adb, s-spsufi.ads,
sem_elab.ads, g-comlin.ads, errout.ads, exp_ch6.adb, sem_ch4.adb,
opt.ads, s-bignum.adb, output.ads, sem_ch13.adb, erroutc.ads,
sem_disp.ads, exp_ch3.adb: Minor fixes of duplicate words in comments.
2015-05-27 Doug Rupp <rupp@adacore.com>
* adaint.c (__gnat_tmp_name) [vxworks]: Robustify and use for rtp as
well as kernel.
2015-05-27 Pierre-Marie de Rodat <derodat@adacore.com>
* par_sco.adb (Process_Decision): Store sloc to
condition/pragmas SCOs associations into a temporary table before
moving them to the SCO_Raw_Hash_Table so that we can back them
out just like we do for SCO entries that are simple decisions
in an expression context.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223754 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* exp_prag.adb, sem_ch3.adb, sem_ch5.adb, exp_ch11.adb, ghost.adb,
exp_ch6.adb, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb, sem_ch13.adb,
exp_ch3.adb: Minor reformatting.
2015-05-26 Bob Duff <duff@adacore.com>
* treepr.adb: Minor improvement to debugging routines (pp, pn)
robustness. Rearrange the code so passing a nonexistent Node_Id
prints "No such node" rather than crashing, and causing gdb to
generate confusing messages.
2015-05-26 Gary Dismukes <dismukes@adacore.com>
* sem_util.adb: Minor typo fix.
2015-05-26 Yannick Moy <moy@adacore.com>
* sem_aux.adb (Subprogram_Body_Entity): Deal with subprogram stubs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223685 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* exp_ch3.adb (Expand_N_Full_Type_Declaration): Capture, set and
restore the Ghost mode.
(Expand_N_Object_Declaration): Capture, set and restore the Ghost mode.
(Freeze_Type): Update the call to Set_Ghost_Mode.
(Restore_Globals): New routine.
* exp_ch5.adb Add with and use clauses for Ghost.
(Expand_N_Assignment_Statement): Capture, set and restore the
Ghost mode.
(Restore_Globals): New routine.
* exp_ch6.adb Add with and use clauses for Ghost.
(Expand_N_Procedure_Call_Statement): Capture, set and
restore the Ghost mode.
(Expand_N_Subprogram_Body):
Code cleanup. Capture, set and restore the Ghost mode.
(Expand_N_Subprogram_Declaration): Capture, set and restore the
Ghost mode.
(Restore_Globals): New routine.
* exp_ch7.adb Add with and use clauses for Ghost.
(Expand_N_Package_Body): Capture, set and restore the Ghost mode.
(Expand_N_Package_Declaration): Capture, set and restore the
Ghost mode.
(Wrap_HSS_In_Block): Create a proper identifier for the block.
* exp_ch8.adb Add with and use clauses for Ghost.
(Expand_N_Exception_Renaming_Declaration): Code
cleanup. Capture, set and restore the Ghost mode.
(Expand_N_Object_Renaming_Declaration): Capture, set and restore
the Ghost mode.
(Expand_N_Package_Renaming_Declaration): Capture, set and restore the
Ghost mode.
(Expand_N_Subprogram_Renaming_Declaration): Capture, set and
restore the Ghost mode.
* exp_ch11.adb (Expand_N_Exception_Declaration): Code
cleanup. Capture, set and restore the Ghost mode.
* exp_disp.adb (Make_DT): Update the call to Set_Ghost_Mode. Do
not initialize the dispatch table slot of a Ghost subprogram.
* exp_prag.adb Add with and use clauses for Ghost.
(Expand_Pragma_Check): Capture, set and restore the Ghost mode.
(Expand_Pragma_Contract_Cases): Capture, set and restore the
Ghost mode.
(Expand_Pragma_Initial_Condition): Capture, set and
restore the Ghost mode.
(Expand_Pragma_Loop_Variant): Capture,
set and restore the Ghost mode.
(Restore_Globals): New routine.
* exp_util.adb Add with and use clauses for Ghost.
(Make_Predicate_Call): Code cleanup. Capture, set and restore
the Ghost mode.
(Restore_Globals): New routine.
* freeze.adb (Freeze_Entity): Code cleanup. Update the call
to Set_Ghost_Mode.
* ghost.adb Add with and use clause for Sem_Prag.
(Check_Ghost_Completion): Code cleanup.
(Check_Ghost_Overriding): New routine.
(Check_Ghost_Policy): Code cleanup.
(Ghost_Entity): New routine.
(Is_Ghost_Declaration): Removed.
(Is_Ghost_Statement_Or_Pragma): Removed.
(Is_OK_Context): Reimplemented.
(Is_OK_Declaration): New routine.
(Is_OK_Pragma): New routine.
(Is_OK_Statement): New routine.
(Mark_Full_View_As_Ghost): New routine.
(Mark_Pragma_As_Ghost): New routine.
(Mark_Renaming_As_Ghost): New routine.
(Propagate_Ignored_Ghost_Code): Update the comment on usage.
(Set_From_Entity): New routine.
(Set_From_Policy): New routine.
(Set_Ghost_Mode): This routine now handles pragmas and freeze nodes.
(Set_Ghost_Mode_For_Freeze): Removed.
(Set_Ghost_Mode_From_Entity): New routine.
(Set_Ghost_Mode_From_Policy): Removed.
* ghost.ads (Check_Ghost_Overriding): New routine.
(Mark_Full_View_As_Ghost): New routine.
(Mark_Pragma_As_Ghost): New routine.
(Mark_Renaming_As_Ghost): New routine.
(Set_Ghost_Mode): Update the parameter profile. Update the
comment on usage.
(Set_Ghost_Mode_For_Freeze): Removed.
(Set_Ghost_Mode_From_Entity): New routine.
* sem_ch3.adb (Analyze_Full_Type_Declaration):
Capture and restore the Ghost mode. Mark a type
as Ghost regardless of whether it comes from source.
(Analyze_Incomplete_Type_Decl): Capture, set and restore the
Ghost mode.
(Analyze_Number_Declaration): Capture and restore the Ghost mode.
(Analyze_Object_Declaration): Capture and restore the Ghost mode.
(Analyze_Private_Extension_Declaration): Capture and
restore the Ghost mode.
(Analyze_Subtype_Declaration): Capture and restore the Ghost mode.
(Process_Full_View): The full view inherits all Ghost-related
attributes from the private view.
(Restore_Globals): New routine.
* sem_ch5.adb (Analyze_Assignment): Capture and restore the
Ghost mode.
(Restore_Globals): New routine.
* sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration):
Code cleanup. Capture and restore the Ghost mode. Mark a
subprogram as Ghost regarless of whether it comes from source.
(Analyze_Procedure_Call): Capture and restore the Ghost mode.
(Analyze_Subprogram_Body_Helper): Capture and restore the Ghost mode.
(Analyze_Subprogram_Declaration): Capture and restore the Ghost mode.
(New_Overloaded_Entity): Ensure that a
parent subprogram and an overriding subprogram have compatible
Ghost policies.
* sem_ch7.adb (Analyze_Package_Body_Helper): Capture and restore
the Ghost mode.
(Analyze_Package_Declaration): Capture and
restore the Ghost mode. Mark a package as Ghost when it is
declared in a Ghost region.
(Analyze_Private_Type_Declaration): Capture and restore the Ghost mode.
(Restore_Globals): New routine.
* sem_ch8.adb (Analyze_Exception_Renaming): Code
reformatting. Capture and restore the Ghost mode. A renaming
becomes Ghost when its name references a Ghost entity.
(Analyze_Generic_Renaming): Capture and restore the Ghost mode. A
renaming becomes Ghost when its name references a Ghost entity.
(Analyze_Object_Renaming): Capture and restore the Ghost mode. A
renaming becomes Ghost when its name references a Ghost entity.
(Analyze_Package_Renaming): Capture and restore the Ghost mode. A
renaming becomes Ghost when its name references a Ghost entity.
(Analyze_Subprogram_Renaming): Capture and restore the Ghost
mode. A renaming becomes Ghost when its name references a
Ghost entity.
* sem_ch11.adb (Analyze_Exception_Declaration): Capture, set
and restore the Ghost mode.
* sem_ch12.adb (Analyze_Generic_Package_Declaration): Capture and
restore the Ghost mode.
(Analyze_Generic_Subprogram_Declaration):
Capture and restore the Ghost mode.
* sem_ch13.adb Add with and use clauses for Ghost.
(Add_Invariant): New routine.
(Add_Invariants): Factor out code.
(Add_Predicate): New routine.
(Add_Predicates): Factor out code.
(Build_Invariant_Procedure_Declaration): Code cleanup. Capture,
set and restore the Ghost mode.
(Build_Invariant_Procedure): Code cleanup.
(Build_Predicate_Functions): Capture, set and
restore the Ghost mode. Mark the generated functions as Ghost.
* sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part):
Capture, set and restore the Ghost mode.
(Analyze_External_Property_In_Decl_Part): Capture, set and restore
the Ghost mode.
(Analyze_Initial_Condition_In_Decl_Part):
Capture, set and restore the Ghost mode.
(Analyze_Pragma):
Code cleanup. Capture, set and restore the Ghost mode. Flag
pragmas Linker_Section, No_Return, Unmodified, Unreferenced and
Unreferenced_Objects as illegal when it applies to both Ghost
and living arguments. Pragma Ghost cannot apply to synchronized
objects.
(Check_Kind): Moved to the spec of Sem_Prag.
(Process_Inline): Flag the pragma as illegal when it applies to
both Ghost and living arguments.
(Restore_Globals): New routine.
* sem_prag.ads Add pragma Default_Initial_Condition
to table Assertion_Expression_Pragma. Add new table
Is_Aspect_Specifying_Pragma.
(Check_Kind): Moved from body of Sem_Prag.
* sem_util.adb Add with and use clauses for Ghost.
(Build_Default_Init_Cond_Procedure_Body): Capture, set and restore
the Ghost mode.
(Build_Default_Init_Cond_Procedure_Declaration):
Capture, set and restore the Ghost mode. Mark the default
initial condition procedure as Ghost when it is declared
in a Ghost region.
(Is_Renaming_Declaration): New routine.
(Policy_In_List): Account for the single argument version of
Check_Pragma.
* sem_util.ads (Is_Renaming_Declaration): New routine.
* sinfo.adb (Is_Ghost_Pragma): New routine.
(Set_Is_Ghost_Pragma): New routine.
* sinfo.ads New attribute Is_Ghost_Pragma.
(Is_Ghost_Pragma): New routine along with pragma Inline.
(Set_Is_Ghost_Pragma): New routine along with pragma Inline.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223684 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* sem_aux.adb, sem_aux.ads (Get_Low_Bound): Use Type_Low_Bound.
(Package_Body, Package_Spec): New queries moved
here from GNATprove.
(Package_Specification): Simplify query to remove use of loop.
* sem_util.adb, sem_util.ads (Enclosing_Declaration,
Enclosing_Package_Or_Subprogram, Is_Attribute_Update): New
queries moved here from GNATprove.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223681 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* einfo.adb, einfo.ads, sprint.adb, lib-xref.ads: Minor cleanup: Remove
obsolete Entity_Kinds E_String_Type and E_String_Subtype. Update
redundant assertions.
2015-05-26 Gary Dismukes <dismukes@adacore.com>
* sem_util.adb, sem_util.ads, sem_ch13.adb: Minor typo fixes.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223680 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* init.c [vxworks]: Refine previous checkin.
2015-05-26 Robert Dewar <dewar@adacore.com>
* exp_ch4.adb (Wrap_MA): New function.
(Expand_N_Op_Expon): Use Wrap_MA.
2015-05-26 Bob Duff <duff@adacore.com>
* exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
Do not use secondary stack to return limited records with
defaulted discriminants. This is an efficiency improvement.
* exp_ch6.adb, exp_dist.adb, sem_attr.adb, sem_aux.adb, sem_aux.ads,
sem_ch12.adb, sem_ch3.adb, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb,
sem_util.adb: Change the sense of Is_Indefinite_Subtype to be
Is_Definite_Subtype. This is an improvement to readability (the double
negative in "not Is_Indefinite_Subtype" was slightly confusing). Also
disallow passing non-[sub]type entities, an unnecessary and slightly
bug-prone flexibility.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223679 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* sem_aggr.adb (Resolve_Array_Aggregate): Defend against
bad bounds.
* debug.adb: Document -gnatd.k.
* erroutc.adb (Set_Msg_Insertion_Line_Number): Implement -gnatd.k.
2015-05-26 Robert Dewar <dewar@adacore.com>
* gnat1drv.adb (Gnat1drv): Provide new arguments for
Get_Target_Parameters.
* restrict.adb (Set_Restriction_No_Specification_Of_Aspect):
new procedure.
(Set_Restriction_No_Use_Of_Attribute): new procedure.
* restrict.ads (Set_Restriction_No_Specification_Of_Aspect):
new procedure.
(Set_Restriction_No_Use_Of_Attribute): new procedure.
* s-rident.ads (Integer_Parameter_Restrictions): New subtype.
* targparm.adb (Get_Target_Parameters): Allow new restriction
pragmas No_Specification_Of_Aspect No_Use_Of_Attribute
No_Use_Of_Pragma.
* targparm.ads: New parameters for Get_Target_Parameters.
* tbuild.adb (Set_NOD): New name for Set_RND.
(Set_NSA): New procedure.
(Set_NUA): New procedure.
(Set_NUP): New procedure.
* tbuild.ads (Make_SC): Minor reformatting.
(Set_NOD): New name for Set_RND.
(Set_NSA, Set_NUA, Set_NUP): New procedure.
2015-05-26 Ed Schonberg <schonberg@adacore.com>
* a-stwise.adb (Find_Token): If source'first is not positive,
an exception must be raised, as specified by RM 2005 A.4.3
(68/1). This must be checked explicitly, given that run-time
files are normally compiled without constraint checks.
* a-stzsea.adb (Find_Token): Ditto.
2015-05-26 Ed Schonberg <schonberg@adacore.com>
* sem_util.ads sem_util.adb (Is_Current_Instance): New predicate
to fully implement RM 8.6 (17/3). which earlier only applied
to synchronized types. Used to preanalyze aspects that include
current instances of types, such as Predicate and Invariant.
* sem_res.adb (Resolve_Entity_Name): Use Is_Current_Instance.
* sem_ch13.adb (Add_Predicates): In ASIS mode, preserve original
expression of aspect and analyze it to provide proper type
information.
2015-05-26 Robert Dewar <dewar@adacore.com>
* rtsfind.ads: Add entries for RE_Exn[_Long]_Float.
* s-exnllf.adb (Exn_Float): New function.
(Exn_Long_Float): New function.
(Exn_Long_Long_Float): Rewritten interface.
(Exp): New name for what used to be Exn_Long_Long_Float.
* s-exnllf.ads (Exn_Float): New function.
(Exn_Long_Float): New function.
2015-05-26 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb (Find_Selected_Component): Do not emit an error
on a selected component when the prefix is a type name that is
a Current_Instance.
* einfo.ads: Minor grammar fix.
2015-05-26 Doug Rupp <rupp@adacore.com>
* init.c [vxworks] (sysLib.h): Only for x86.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223678 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* init-vxsim.c (CPU): define as __VXSIM_CPU__
* sigtramp-vxworks-vxsim.c (CPU): Likewise.
sigtramp-vxworks-target.inc: Add check for SIMLINUX.
* sigtramp.h: Likewise.
2015-05-26 Robert Dewar <dewar@adacore.com>
* sem_aux.adb, sem_disp.adb, sem_util.ads: Add comment.
* sem_util.adb: Minor reformatting
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223675 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* inline.adb (Has_Initialized_Type): Adapt to new names.
* sem_aux.adb, sem_aux.ads (Get_Low_Bound, Number_Components,
Subprogram_Body, Subprogram_Body_Entity, Subprogram_Spec,
Subprogram_Specification): New query functions used in GNATprove.
* sem_disp.adb, sem_disp.ads (Is_Overriding_Subprogram): New
query functions used in GNATprove.
* sem_util.adb, sem_util.adso (Enclosing_Lib_Unit_Node,
Get_Cursor_Type, Get_Return_Object, Get_User_Defined_Eq,
Is_Double_Precision_Floating_Point_Type,
Is_Single_Precision_Floating_Point_Type): New query functions
used in GNATprove.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223674 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* s-rpc.ads (Partition_ID): Increase maximum Partition_ID to
some huge number.
* a-except-2005.adb, a-except-2005.ads, a-except.adb,
a-except.ads, a-exexda.adb, a-exstat.adb: Minor comment fixes.
2015-05-26 Robert Dewar <dewar@adacore.com>
* sinfo.adb: Minor comment addition.
* einfo.adb: Minor whitespace and punctuation fix.
* sem_util.adb: Minor editing of comments.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223673 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* sem_ch7.adb (Install_Private_Declarations,
Swap_Private_Dependents): Ensure that both views of the dependent
subtype are immediately visible if we are within their scope. This
may be needed when a procedure body is both the parent of an
instantiated child unit, and is itself used to inline a local
function.
2015-05-26 Gary Dismukes <dismukes@adacore.com>
* exp_prag.adb, gnat1drv.adb: Minor reformatting.
2015-05-26 Eric Botcazou <ebotcazou@adacore.com>
* exp_ch4.adb (Expand_N_Indexed_Component): In the circuit
detecting exceptions to the rewriting, deal with implicit
dereferences in the selected component case.
2015-05-26 Bob Duff <duff@adacore.com>
* sem_ch13.adb (Analyze_One_Aspect): Do not
require the expression of the Disable_Controlled aspect to be
static in a generic template, because 'Enabled is not known
until the instance.
2015-05-26 Doug Rupp <rupp@adacore.com>
* init-vxsim.c: New file for vxsim ZCX
* sigtramp-vxworks-vxsim.c: Likewise.
* sigtramp-vxworks.c: Factor out target dependent bits into ...
* sigtramp-vxworks-target.inc: ... here.
* sigtramp.h: Add vxsim zcx protos.
* init.c [vxworks...] (sysLib.h): Include.
(__gnat_map_signal): Make global.
[...i386] (__gnat_error_handler): Call __gnat_vxsim_error_handler if
on vxsim.
[...i386] (__gnat_install_handler): Test if on vxsim.
2015-05-26 Ed Schonberg <schonberg@adacore.com>
* sem_ch5.adb (Analyze_Iterator_Specification): For an element
iterator over an array, if the component is aliased, the loop
variable is aliased as well.
2015-05-26 Ed Schonberg <schonberg@adacore.com>
* exp_ch6.adb (Expand_Actuals): For a function call with in-out
parameters that is rewritten as an expression_with_actions,
we preserve the original function call node for further use by
the caller (typically Expand_Call). In the presence of validity
checks, that function call, though it is labelled Analyzed to
prevent an infinite recursion, may be rewritten as a temporary
by Remove_Side_Effects. Ensure that the caller has access to
the original function call to continue expansion.
* atree.ads: Minor typo in comment.
2015-05-26 Javier Miranda <miranda@adacore.com>
* sem_util.adb (Check_Function_Writable_Actuals):
Add missing support to check the violation of writable actuals
in array aggregates that have a nonstatic range.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223672 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* sem_aggr.adb (Resolve_Aggregate, Resolve_Extension_Aggregate):
Code cleanup.
* sem_ch3.adb (Build_Derived_Record_Type,
Record_Type_Declaration): Code cleanup.
* sem_ch4.adb (Has_Arbitrary_Evaluation_Order,
Stop_Subtree_Climbind): Tables which speed up the identification
of dangerous calls to Ada 2012 functions with writable actuals
(AI05-0144).
(Analyze_Arithmetic_Op, Analyze_Call, Analyze_Comparison_Op,
Analyze_Equality_Op, Analyze_Logical_Op, Analyze_Membership_Op,
Analyze_Range): Code cleanup.
(Is_Arbitrary_Evaluation_Order_Construct): Removed.
(Check_Writable_Actuals): Code cleanup using the added tables.
* sem_util.adb (Check_Function_Writable_Actuals): Return
immediately if the node does not have the flag Check_Actuals
set to True.
2015-05-26 Eric Botcazou <ebotcazou@adacore.com>
* exp_ch6.adb (Add_Call_By_Copy_Code): Remove restrictive
condition in the detection of the effects of Remove_Side_Effects.
* exp_util.ads (Remove_Side_Effects): Add general and historical note.
* exp_util.adb (Is_Name_Reference): New predicate.
(Remove_Side_Effects): Use it in lieu of Is_Object_Reference
in order to decide whether to use the renaming to capture the
side effects of the subexpression.
(Side_Effect_Free): Remove obsolete test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223668 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* einfo.ads, sem_util.adb, sem_ch4.adb: Minor reformatting.
2015-05-26 Robert Dewar <dewar@adacore.com>
* exp_unst.adb, exp_unst.ads: Change to using Subps table index for
making AREC entity names unique.
2015-05-26 Ed Schonberg <schonberg@adacore.com>
* sem_cat.adb (Has_Stream_Attribute_Definition): If the type
has aspect specifications, examine the corresponding list of
representation items to determine whether there is a visible
stream operation. The attribute definition clause generated from
the aspect will be inserted at the freeze point of the type,
which may be in the private part and not directly visible,
but the aspect makes the operation available to a client.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223663 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
* sem_util.adb: Minor code reorganization.
* sem_ch6.adb: Minor reformatting.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223662 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* einfo.ads, einfo.adb (Has_Out_Or_In_Out_Parameter): This attribute
is now present in subprograms, generic subprograms, entries and
entry families.
* sem_ch6.adb (Set_Formal_Mode): Set As_Out_Or_In_Out_Parameter
on entries, entry families, subprograms and generic subprograms.
* sem_ch12.adb (Analyze_Generic_Subprogram_Declaration):
Minor code reorganization to ensure that the Ekind attribute
of the subprogram entity is set before its formals are
processed. Required to allow the use of the attribute
Has_Out_Or_In_Out_Parameter on the subprogram entity.
* sem_aggr.adb (Resolve_Aggregate, Resolve_Extension_Aggregate):
Perform the check on writable actuals only if the value of some
component of the aggregate involves calling a function with
out-mode parameters.
(Resolve_Record_Aggregate): Propagate the Check_Actuals flag to the
internally built aggregate.
* sem_ch3.adb (Build_Derived_Record_Type, Record_Type_Declaration):
Perform the check on writable actuals only if the initialization of
some component involves calling a function with out-mode parameters.
* sem_ch4.adb (Analyze_Arithmetic_Op, Analyze_Comparison_Op,
Analyze_Equality_Op, Analyze_Logical_Op, Analyze_Membership_Op,
Analyze_Range): Check writable actuals only if the
subtrees have a call to a function with out-mode parameters
(Analyze_Call.Check_Writable_Actuals): New subprogram. If the call
has out or in-out parameters then mark its outermost enclosing
construct as a node on which the writable actuals check must
be performed.
(Analyze_Call): Check if the flag must be set and if the outermost
enclosing construct.
* sem_util.adb (Check_Function_Writable_Actuals): Code cleanup
and reorganization. We skip processing aggregate discriminants
since their precise analysis involves two phases traversal.
* sem_res.adb (Resolve_Actuals, Resolve_Arithmetic_Op,
Resolve_Logical_Op, Resolve_Membership_Op): Remove call to
check_writable_actuals.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223643 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* einfo.ads (Has_Volatile_Full_Access): Rename into...
(Is_Volatile_Full_Access): ...this.
(Set_Has_Volatile_Full_Access): Rename into...
(Set_Is_Volatile_Full_Access): ...this.
* einfo.adb (Has_Volatile_Full_Access): Rename into...
(Is_Volatile_Full_Access): ...this.
(Set_Has_Volatile_Full_Access): Rename into...
(Set_Is_Volatile_Full_Access): ...this.
(Is_Atomic_Or_VFA): Adjust to above renaming.
* errout.adb (Special_Msg_Delete): Likewise.
* exp_pakd.adb (Install_PAT): Likewise.
* freeze.adb (Freeze_Array_Type): Likewise.
* sem_ch8.adb (Analyze_Object_Renaming): Likewise.
* sem_ch13.adb (Inherit_Delayed_Rep_Aspects): Likewise.
(Inherit_Aspects_At_Freeze_Point): Likewise.
* sem_prag.adb (Set_Atomic_VFA): Likewise.
(Process_Atomic_Independent_Shared_Volatile): Likewise.
* sem_util.adb (Is_Atomic_Or_VFA_Object): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223561 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* exp_ch5.adb, layout.adb, einfo.adb, einfo.ads, sem_prag.adb,
freeze.adb, freeze.ads, sem_util.adb, sem_util.ads, exp_ch2.adb,
exp_ch4.adb, errout.adb, exp_aggr.adb, sem_ch13.adb: This is a general
change that deals with the fact that most of the special coding for
Atomic should also apply to the case of Volatile_Full_Access.
A new attribute Is_Atomic_Or_VFA is introduced, and many of the
references to Is_Atomic now use this new attribute.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223560 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* exp_utils.ads, exp_utils.adb (Find_Optional_Prim_Op): New
interface to return Empty when not found, so we can avoid handling
Program_Error in that case.
(Find_Prim_Op): Fix latent bug: raise Program_Error when there are no
primitives.
* exp_ch7.adb, sem_util.adb: Use Find_Optional_Prim_Op when the
code is expecting Empty.
* sem_ch8.adb: Use Find_Optional_Prim_Op to avoid handling
Program_Error.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223541 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* sem_prag.adb (Analyze_Pragma): Remove the detection
of a useless Part_Of indicator when the related item is a constant.
(Check_Matching_Constituent): Do not emit an error on a constant.
(Check_Missing_Part_Of): Do not check for a missing Part_Of indicator
when the related item is a constant.
(Collect_Body_States): Code cleanup.
(Collect_Visible_States): Code cleanup.
(Report_Unused_States): Do not emit an error on a constant.
* sem_util.ads, sem_util.adb (Has_Variable_Input): Removed.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223535 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* sem_util.ads: Minor addition of ??? comment.
* sem_prag.adb, sem_util.adb: Minor reformatting.
* sem_ch13.adb: minor reformatting.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223532 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* a-reatim.ads: Add Compile_Time_Error to ensure Duration
is 64-bits.
* sem_ch13.adb: Improve error message.
* exp_ch4.adb: Minor reformatting.
2015-05-22 Hristian Kirtchev <kirtchev@adacore.com>
* sem_prag.adb (Analyze_Pragma): Constants without variable
input do not require indicator Part_Of.
(Check_Missing_Part_Of): Constants without variable input do not
requrie indicator Part_Of.
(Collect_Visible_States): Constants without variable input are
not part of the hidden state of a package.
* sem_util.ads, sem_util.adb (Has_Variable_Input): New routine.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223531 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* einfo.adb (Contract): This attribute now applies to constants.
(Set_Contract): This attribute now applies to constants.
(Write_Field34_Name): Add output for constants.
* einfo.ads Attribute Contract now applies to constants.
* sem_ch3.adb (Analyze_Object_Contract): Constants now have
their Part_Of indicator verified.
* sem_prag.adb (Analyze_Constituent): A constant is now a valid
constituent.
(Analyze_Global_Item): A constant cannot act as an output.
(Analyze_Initialization_Item): Constants are now a valid
initialization item.
(Analyze_Initializes_In_Decl_Part): Rename
global variable States_And_Vars to States_And_Objs and update
all its occurrences.
(Analyze_Input_Item): Constants are now a
valid initialization item. Remove SPARM RM references from error
messages.
(Analyze_Pragma): Indicator Part_Of can now apply to a constant.
(Collect_Body_States): Collect both source constants
and variables.
(Collect_States_And_Objects): Collect both source constants and
variables.
(Collect_States_And_Variables): Rename
to Collect_States_And_Objects and update all its occurrences.
(Collect_Visible_States): Do not collect constants and variables
used to map generic formals to actuals.
(Find_Role): The role of a constant is that of an input. Separate the
role of a variable from that of a constant.
(Report_Unused_Constituents): Add specialized wording for constants.
(Report_Unused_States): Add specialized wording for constants.
* sem_util.adb (Add_Contract_Item): Add processing for constants.
* sem_util.ads (Add_Contract_Item): Update the comment on usage.
(Find_Placement_In_State_Space): Update the comment on usage.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223484 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* einfo.adb Node32 is now used as Encapsulating_State.
Node37 is now used as Associated_Entity.
(Associated_Entity): New routine.
(Encapsulating_State): Update the assertion guard
to include constants.
(Set_Associated_Entity): New routine.
(Set_Encapsulating_State): Update the assertion guard to
include constants.
(Write_Field10_Name): Remove the output for Encapsulating_State.
(Write_Field32_Name): Add output for Encapsulating_State.
(Write_Field37_Name): Add output for Associated_Entity.
* einfo.ads New attribute Associated_Entity along with placement
in entities. Attribute Encapsulating_State now uses Node32.
(Associated_Entity): New routine along with pragma Inline.
(Set_Associated_Entity): New routine along with pragma Inline.
* inline.ads Code reformatting.
* sem_attr.adb (Analyze_Attribute): Correct the prefix of
attribute 'Result when the context is a generic instantiation.
(Analyze_Attribute_Old_Result): Pragmas Depends and
Refined_Depends are a valid context for attribute 'Result.
(Denote_Same_Function): Allow attribute 'Result to denote
generic functions.
* sem_ch3.adb Add with and use clauses for Sem_Ch12.
(Analyze_Declarations): Capture global references within the
contracts of packages, subprograms and their respective bodies.
* sem_ch6.adb (Analyze_Aspects_On_Body_Or_Stub): Removed.
(Analyze_Completion_Contract): Removed.
(Analyze_Generic_Subprogram_Body): Enchange the aspects after
creating the generic copy. Create a generic contract for the
template. Analyze the aspects of the generic body. Analyze the
contract of the generic body when it is a compilation unit and
capture global references.
(Analyze_Subprogram_Body_Contract): Code cleanup.
(Analyze_Subprogram_Contract): Do not save global references here.
(Save_Global_References_In_List): Removed.
* sem_ch7.adb (Analyze_Package_Body_Contract): Code cleanup.
(Analyze_Package_Body_Helper): Create a generic contract for
the template.
(Analyze_Package_Contract): Code cleanup.
* sem_ch10.adb Add with and use clauses for Sem_Ch12.
(Analyze_Compilation_Unit): Capture global references in a
generic subprogram declaration that acts as a compilation unit.
* sem_ch12.adb Add with and use clauses for Sem_Prag. Illustrate
the implementation of generic contracts. Alphabetize various
subprograms.
(Analyze_Generic_Package_Declaration):
Create a generic contract for the template.
(Analyze_Generic_Subprogram_Declaration): Create a generic
contract for the template.
(Analyze_Subprogram_Instantiation): Instantiate the contract of the
subprogram.
(Copy_Generic_Node): Link defining entities of the generic template
with the corresponding defining entities of the generic copy. Update
the processing of pragmas.
(Instantiate_Contract): Removed.
(Instantiate_Subprogram_Contract): New routine.
(Requires_Delayed_Save): New routine.
(Save_Global_References): Rename formal parameter N to Templ. Various
cleanups.
(Save_Global_References_In_Aspects): Moved from the spec.
(Save_Global_References_In_Contract): New routine.
(Save_References_In_Aggregate): New routine.
(Save_References_In_Char_Lit_Or_Op_Symbol): New routine.
(Save_References_In_Descendants): New routine.
(Save_References_In_Identifier): New routine.
(Save_References_In_Operator): New routine.
(Save_References_In_Pragma): New routine.
* sem_ch12.ads (Save_Global_References): Rename formal
parameter N to Templ. Update the comment on usage.
(Save_Global_References_In_Aspects): Moved to the body.
(Save_Global_References_In_Contract): New routine.
* sem_ch13.adb (Analyze_Aspect_Specifications_On_Body_Or_Stub):
New routine.
* sem_ch13.ads (Analyze_Aspect_Specifications_On_Body_Or_Stub):
New routine.
* sem_prag.adb (Add_Item_To_Name_Buffer): Add support for
generic parameters.
(Analyze_Contract_Cases_In_Decl_Part): Code cleanup.
(Analyze_Depends_Global): New routine.
(Analyze_Depends_In_Decl_Part): Code cleanup.
(Analyze_Global_In_Decl_Part): Code cleanup.
(Analyze_Global_Item): Constants are now valid global items. Do
not perform state-related checks in an instance. Change the way
renamings are handled. (Analyze_Initial_Condition_In_Decl_Part):
Code cleanup.
(Analyze_Initializes_In_Decl_Part): Code cleanup.
(Analyze_Input_Output): The analysis of attribute 'Result in
the context of pragmas Depends or Refined_Depends now reuses
the existing attribute analysis machinery. Constants and
generic parameters are now valid dependency items. Do not
perform state-related checks in an instance. Change the way
renamings are handled. (Analyze_Pragma): Add a "characteristics"
section for pragmas Abstract_State, Contract_Cases, Depends,
Extensions_Visible, Global, Initial_Condition, Initializes,
Post, Post_Class, Postcondition, Pre, Pre_Class, Precondition,
Refined_Depends, Refined_Global, Refined_Post, Refined_State, Test_Case.
(Analyze_Pre_Post_Condition): Do not create a generic
template here.
(Analyze_Pre_Post_Condition_In_Decl_Part): Code cleanup.
(Analyze_Refined_Depends_Global_Post): New routine.
(Analyze_Refined_Depends_In_Decl_Part): Code cleanup.
(Analyze_Refined_Global_In_Decl_Part): Code cleanup.
(Analyze_Refined_Pragma): Removed.
(Analyze_Refined_State_In_Decl_Part): Code cleanup.
(Analyze_Test_Case_In_Decl_Part): Code cleanup.
(Check_Dependency_Clause): Do not perform this check in an instance.
(Check_Function_Return): Add support for generic functions.
(Check_In_Out_States): Do not perform this check in an instance.
(Check_Input_States): Do not perform this check in an instance.
(Check_Mode_Restriction_In_Function): Add support for generic functions.
(Check_Output_States): Do not perform this check in an instance.
(Check_Postcondition_Use_In_Inlined_Subprogram): Rename
parameter Subp_Id to Spec_Id and update comment on usage.
(Check_Proof_In_States): Do not perform this check in an instance.
(Check_Refined_Global_Item): Add support for constants.
(Check_Refined_Global_List): Do not perform this check in an instance.
(Collect_Global_Items): Reimplemented.
(Collect_Subprogram_Inputs_Outputs): Add support for generic parameters.
(Create_Generic_Template): Removed.
(Find_Related_Package_Or_Body): Moved to spec.
(Find_Role): Add support for generic parameters and constants.
(Get_Argument): Moved to spec. Rename parameter Spec_Id to Context_Id.
(Match_Item): Add support for constants.
(Preanalyze_Test_Case_Arg): Reimplemented.
(Report_Extra_Clauses): Do not perform this check in an instance.
(Report_Extra_Constituents): Do not perform this check in an instance.
* sem_prag.ads (Collect_Subprogram_Inputs_Outputs): Update
the comment on usage.
(Find_Related_Package_Or_Body): Moved from body.
(Get_Argument): Moved from body.
* sem_util.adb Add with and use clauses for Sem_Ch12.
(Corresponding_Spec_Of): Add support for packages and package bodies.
(Create_Generic_Contract): New routine.
(Is_Contract_Annotation): Reimplemented.
(Is_Generic_Declaration_Or_Body): New routine.
(Is_Package_Contract_Annotation): New routine.
(Is_Subprogram_Contract_Annotation): New routine.
* sem_util.ads (Corresponding_Spec_Of): Update the comment on usage.
(Create_Generic_Contract): New routine.
(Is_Generic_Declaration_Or_Body): New routine.
(Is_Package_Contract_Annotation): New routine.
(Is_Subprogram_Contract_Annotation): New routine.
* sinfo.adb (Is_Generic_Contract_Pragma): New routine.
(Set_Is_Generic_Contract_Pragma): New routine.
* sinfo.ads Add new attribute Is_Generic_Contract_Pragma along
with occurrences in nodes.
(Is_Generic_Contract_Pragma): New routine along with pragma Inline.
(Set_Is_Generic_Contract_Pragma): New routine along with pragma Inline.
* treepr.adb (Print_Entity_Info): Output fields 36 to 41.
2015-05-12 Robert Dewar <dewar@adacore.com>
* a-taster.ads: Minor comment fix: fix bad header, this is a
pure RM unit.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223064 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* exp_pakd.adb: Make clearer the comment in exp_pakd.adb about
___XP suffixes.
2015-05-12 Robert Dewar <dewar@adacore.com>
* sem_ch3.adb, sem_util.adb, sem_ch6.adb: Minor reformatting.
2015-05-12 Robert Dewar <dewar@adacore.com>
* exp_unst.adb (Visit_Node): Deal with subprogram and package stubs.
2015-05-12 Ed Schonberg <schonberg@adacore.com>
* exp_intr.adb (Expand_Dispatching_Constructor_Call): The
tag to be retrieved for the generated call is the first entry
in the dispatch table for the return type of the instantiated
constructor.
2015-05-12 Bob Duff <duff@adacore.com>
* exp_ch7.adb, exp_ch7.ads, exp_intr.adb, exp_util.adb,
exp_util.ads: Update comments.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223050 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* sem_ch3.adb (Add_Internal_Interface_Entities): Do no generate
freeze nodes for these in ASIS mode, because they lead to
elaoration order issues in gigi.
2015-05-12 Hristian Kirtchev <kirtchev@adacore.com>
* sem_ch6.adb (Analyze_Expression_Function): Code
cleanup. Use Copy_Subprogram_Spec to create a proper spec.
(Analyze_Subprogram_Body_Helper): Code cleanup. Do not
prepare a stand alone body for inlining in GNATprove mode
when inside a generic. (Body_Has_Contract): Reimplemented.
(Build_Subprogram_Declaration): New routine.
* sem_ch10.adb (Analyze_Compilation_Unit): Capture global
references within generic bodies by loading them.
* sem_util.adb (Copy_Parameter_List): Code cleanup.
(Copy_Subprogram_Spec): New routine.
(Is_Contract_Annotation): New routine.
* sem_util.ads (Copy_Subprogram_Spec): New routine.
(Is_Contract_Annotation): New routine.
2015-05-12 Hristian Kirtchev <kirtchev@adacore.com>
* sem_attr.adb (Resolve_Attribute): Do not analyze the generated
body of an expression function when the prefix of attribute
'Access is the body.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223048 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* sem_ch3.adb: Minor reformatting.
2015-05-12 Vincent Celier <celier@adacore.com>
* gnatcmd.adb: If we want to invoke gnatmake (gnatclean) with
-P, then check if gprbuild (gprclean) is available; if it is,
use gprbuild (gprclean) instead of gnatmake (gnatclean).
2015-05-12 Robert Dewar <dewar@adacore.com>
* debug.adb: Add flag -gnatd.3 to output diagnostic info from
Exp_Unst.
* einfo.ad, einfo.adb: Reorganize (and remove most of) flags used by
Exp_Unst.
* exp_ch6.adb (Unest_Bodies): Table for delayed calls to
Unnest_Subprogram (Expand_N_Subprogram_Body): Add entry to table
for later call instead of calling Unnest_Subprogram directly
(Initialize): New procedure (Unnest_Subprograms): New procedure
* exp_ch6.ads (Add_Extra_Actual_To_Call): Move into proper
alpha order.
(Initialize): New procedure.
(Unnest_Subprograms): New procedure.
* exp_unst.adb (Unnest_Subprogram): Major rewrite, moving
all processing to this routine which is now called late
after instantiating bodies. Fully handles the case of generic
instantiations now.
* exp_unst.ads: Major rewrite, moving all processing to
Unnest_Subprogram.
* frontend.adb (Frontend): Add call to Exp_Ch6.Initialize.
(Frontend): Add call to Unnest_Subprograms.
* sem_ch8.adb (Find_Direct_Name): Back to old calling sequence
for Check_Nested_Access.
* sem_util.adb (Build_Default_Subtype): Minor reformatting
(Check_Nested_Access): Back to original VM-only form (we
now do all the processing for Unnest_Subprogram at the time
it is called.
(Denotes_Same_Object): Minor reformatting
(Note_Possible_Modification): Old calling sequence for
Check_Nested_Access.
* sem_util.ads (Check_Nested_Access): Back to original VM-only
form (we now do all the processing for Unnest_Subprogram at the
time it is called.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223043 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* sem_type.adb, sem_ch10.adb, freeze.adb, sem_ch6.adb, exp_disp.adb:
Minor reformatting.
2015-05-12 Bob Duff <duff@adacore.com>
* exp_attr.adb (Size): Remove unnecessary check for types with
unknown discriminants. That was causing the compiler to build
a function call _size(T), where T is a type, not an object.
2015-05-12 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Extended_Primitive_Ops): Exclude overriding
primitive operations of a type extension declared in the package
body, to prevent duplicates in extended list.
2015-05-12 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Analyze_Component_Declaration): If the component is
an unconstrained synchronized type with discriminants, create a
constrained default subtype for it, so that the enclosing record
can be given the proper size.
* sem_util.adb (Build_Default_Subtype): If the subtype is created
for a record discriminant, do not analyze the declarztion at
once because it is added to the freezing actions of the enclosing
record type.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223039 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* exp_prag.adb (Expand_N_Pragma): Rewrite ignored pragma as
Null statements.
* namet.ads (Boolean3): Document this flag used for Ignore_Pragma.
* par-prag.adb (Prag): Implement Ignore_Pragma.
* sem_prag.adb: Implement Ignore_Pragma.
* snames.ads-tmpl: Add entries for pragma Ignore_Pragma.
2015-05-12 Javier Miranda <miranda@adacore.com>
* sem_ch10.adb (Build_Shadow_Entity): Link the class-wide shadow
entity with its corresponding real entity.
(Decorate_Type): Unconditionally build the class-wide shadow entity of
tagged types.
* einfo.ads, einfo.adb (Has_Non_Limited_View): New synthesized
attribute.
(Non_Limited_View): Moved from field 17 to field 19 be available
in class-wide entities.
* exp_attr.adb (Access_Cases): Code cleanup.
* exp_disp.adb (Expand_Interface_Actuals): Ditto.
* exp_util.adb (Non_Limited_Designated_Type): Ditto.
* freeze.adb (Build_Renamed_Bdody): Ditto.
* sem_aux.adb (Available_View): Ditto.
* sem_ch4.adb (Analyze_Selected_Component): Ditto.
(Try_One_Prefix_Interpretation): Ditto.
* sem_ch5.adb (Analyze_Assignment): Ditto.
* sem_ch6.adb (Detect_And_Exchange): Ditto.
* sem_ch8.adb (Find_Expanded_Name): Ditto.
* sem_disp.adb (Check_Controlling_Type): Ditto.
* sem_res.adb (Resolve_Type_Conversion): Ditto.
(Full_Designated_Type): Ditto.
* sem_type.adb (Covers): Ditto.
* sem_util.adb: Fix typo in comment.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223038 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* sem_util.adb (Is_Variable): Allow X'Deref(Y) as a variable.
2015-05-12 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb (Find_Expanded_Name): Handle properly a fully
qualified name for an instance of a generic grand-child unit in
the body its parent.
2015-05-12 Robert Dewar <dewar@adacore.com>
* exp_unst.adb (Upref_Name): New subprogram.
(Unnest_Subprogram): Use Upref_Name.
(Unnest_Subprogram): Use new Deref attribute.
* exp_unst.ads: Doc updates.
2015-05-12 Thomas Quinot <quinot@adacore.com>
* adaint.c: Enable Large File Support in adaint so that __gnat_readdir
can access files on filesystems mounted from servers that use large
NFS file handles.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223035 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* exp_unst.adb (Note_Uplevel_Reference): Eliminate duplicate
references.
(Actual_Ref): New function.
(AREC_String): Minor reformatting.
(Unnest_Subprogram): Use Actual_Ref.
* frontend.adb (Frontend): Turn off Unnest_Subprogram_Mode
before call to Instantiate_Bodies.
2015-03-13 Ed Schonberg <schonberg@adacore.com>
* freeze.adb (Freeze_Profile): If the return type of a function
being frozen is an untagged limited view and the function is
abstract, mark the type as frozen because there is no later
point at which the profile of the subprogram will be elaborated.
2015-03-13 Robert Dewar <dewar@adacore.com>
* einfo.adb, einfo.ads, atree.adb, atree.ads, atree.h: Add seventh
component to entities. Add new fields Field36-41 and Node36-41.
2015-03-13 Claire Dross <dross@adacore.com>
* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Rewrite after review.
2015-03-13 Robert Dewar <dewar@adacore.com>
* exp_util.adb (Is_Volatile_Reference): Compile time known
value is never considered to be a volatile reference.
2015-03-13 Robert Dewar <dewar@adacore.com>
* sem_ch3.adb (Analyze_Object_Contract): Suppress "constant
cannot be volatile" for internally generated object (such as
FIRST and LAST constants).
2015-03-13 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Validate_Access_Subprogram_Instance): If a
convention is specified for the formal parameter, verify that
the actual has the same convention.
* sem_prag.adb (Set_Convention_From_Pragma): Allow convention
pragma to be set on a generic formal type.
* sem_util.adb (Set_Convention): Ignore within an instance,
as it has already been verified in the generic unit.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221422 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* atree.h: Add entries for Flag287-Flag309.
* einfo.adb: Add (unused) flags Flag287-Flag309.
2015-03-04 Ed Schonberg <schonberg@adacore.com>
* sem_util.adb (Collect_Interfaces, Collect): When gathering
interfaces of ancestors, handle properly a subtype of a private
extension.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221183 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* back_end.adb (Call_Back_End): Remove previous patch,
the back end now gets to see the result of -gnatd.1
(Unnest_Subprogram_Mode) processing.
* elists.ads, elists.adb (List_Length): New function.
* exp_unst.ads, exp_unst.adb: Major changes, first complete version.
* sem_util.adb (Check_Nested_Access): Handle formals in
Unnest_Subprogram_Mode.
(Adjust_Named_Associations): Minor reformatting.
* sprint.adb (Sprint_Node_Actual): Fix failure to print aliased
for parameters.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221115 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* debug.adb: Document new debug flag -gnatd.1.
* einfo.ads, einfo.adb (Has_Nested_Subprogram): New flag.
(Has_Uplevel_Reference): New flag (Is_Static_Type): New flag.
(Uplevel_Reference_Noted):New flag (Uplevel_References): New field.
* elists.ads elists.adb (List_Length): New function.
* exp_ch6.adb (Expand_N_Subprogram_Body): Call Unnest_Subprogram
when appropriate (Process_Preconditions): Minor code
reorganization and reformatting
* exp_unst.ads, exp_unst.adb: New files.
* gnat1drv.adb (Adjust_Global_Switches): Set
Unnest_Subprogram_Mode if -gnatd.1
* namet.ads, namet.adb (Name_Find_Str): New version of Name_Find with
string argument.
* opt.ads (Unnest_Subprogram_Mode): New flag.
* par-ch3.adb (P_Identifier_Declarations): Fixes to -gnatd.2 handling.
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Set
Has_Nested_Subprogram flag.
* sem_ch8.adb (Find_Direct_Name): New calling sequence for
Check_Nested_Access.
(Find_Selected_Component): Minor comment addition.
* sem_util.adb (Check_Nested_Access): New version for use with Exp_Unst.
(Note_Possible_Modification): New calling sequence for
Check_Nested_Access.
* sem_util.ads (Check_Nested_Access): New version for use with Exp_Unst.
* gcc-interface/Make-lang.in (GNAT1_OBJS): Add exp_unst.o
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221109 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
| |
* exp_util.adb (Possible_Bit_Aligned_Component): Do not process
an unanalyzed node.
* sem_util.adb (Kill_Current_Values): Do not invalidate and
de-null a constant.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221107 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* sem_ch3.adb, exp_attr.adb, checks.adb, exp_aggr.adb: Minor
reformatting.
2015-03-02 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb: extend use of Available_Subtype.
2015-03-02 Hristian Kirtchev <kirtchev@adacore.com>
* sem_prag.adb (Duplication_Error): Remove the special handling
of 'Class or _Class in the context of pre/postconditions.
(Process_Class_Wide_Condition): Remove the special handling of
'Class or _Class in the context of pre/postconditions.
* sem_util.adb (Original_Aspect_Pragma_Name): Names Pre_Class
and Post_Class no longer need to be converted to _Pre and _Post.
* sem_util.ads (Original_Aspect_Pragma_Name): Update the comment
on usage.
2015-03-02 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch6.adb (Process_Preconditions): Modify the
mechanism that find the first source declaration to correct exit
the loop once it has been found.
2015-03-02 Gary Dismukes <dismukes@adacore.com>
* a-strsea.adb: Minor typo fix.
2015-03-02 Bob Duff <duff@adacore.com>
* einfo.ads: Minor comment fixes.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221103 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* exp_attr.adb (Expand_N_Attribute_Reference, case Input): When
expanding a 'Input attribute reference for a class-wide type,
do not generate a separate object declaration for the controlling
tag dummy object; instead, generate the expression inline in the
dispatching call. Otherwise, the declaration (which involves a
call to String'Input, returning a dynamically sized value on the
secondary stack) will be expanded outside of proper secondary
stack mark/release operations, and will thus cause a secondary
stack leak.
2015-03-02 Hristian Kirtchev <kirtchev@adacore.com>
* checks.adb (Add_Validity_Check): Change the names of all
formal parameters to better illustrate their purpose. Update
the subprogram documentation. Update all occurrences of the
formal parameters. Generate a pre/postcondition pragma by
calling Build_Pre_Post_Condition.
(Build_PPC_Pragma): Removed.
(Build_Pre_Post_Condition): New routine.
* einfo.adb Node8 is no longer used as Postcondition_Proc. Node14
is now used as Postconditions_Proc. Flag240 is now renamed to
Has_Expanded_Contract. (First_Formal): The routine can now
operate on generic subprograms.
(First_Formal_With_Extras): The routine can now operate on generic
subprograms.
(Has_Expanded_Contract): New routine.
(Has_Postconditions): Removed.
(Postcondition_Proc): Removed.
(Postconditions_Proc): New routine.
(Set_Has_Expanded_Contract): New routine.
(Set_Has_Postconditions): Removed.
(Set_Postcondition_Proc): Removed.
(Set_Postconditions_Proc): New routine.
(Write_Entity_Flags): Remove the output of Has_Postconditions. Add
the output of Has_Expanded_Contract.
(Write_Field8_Name): Remove the output of Postcondition_Proc.
(Write_Field14_Name): Add the output of Postconditions_Proc.
* einfo.ads New attributes Has_Expanded_Contract and
Postconditions_Proc along with occurrences in entities.
Remove attributes Has_Postconditions and Postcondition_Proc
along with occurrences in entities.
(Has_Expanded_Contract): New routine along with pragma Inline.
(Has_Postconditions): Removed along with pragma Inline.
(Postcondition_Proc): Removed along with pragma Inline.
(Postconditions_Proc): New routine along with pragma Inline.
(Set_Has_Expanded_Contract): New routine along with pragma Inline.
(Set_Has_Postconditions): Removed along with pragma Inline.
(Set_Postcondition_Proc): Removed along with pragma Inline.
(Set_Postconditions_Proc): New routine along with pragma Inline.
* exp_ch6.adb (Add_Return): Code cleanup. Update the
generation of the call to the _Postconditions routine of
the procedure. (Expand_Non_Function_Return): Reformat the
comment on usage. Code cleanup. Update the generation of
the call to the _Postconditions routine of the procedure or
entry [family].
(Expand_Simple_Function_Return): Update the
generation of the _Postconditions routine of the function.
(Expand_Subprogram_Contract): Reimplemented.
* exp_ch6.ads (Expand_Subprogram_Contract): Update the parameter
profile along the comment on usage.
* exp_ch9.adb (Build_PPC_Wrapper): Code cleanup.
(Expand_N_Task_Type_Declaration): Generate pre/postconditions
wrapper when the entry [family] has a contract with
pre/postconditions.
* exp_prag.adb (Expand_Attributes_In_Consequence): New routine.
(Expand_Contract_Cases): This routine and its subsidiaries now
analyze all generated code.
(Expand_Old_In_Consequence): Removed.
* sem_attr.adb Add with and use clause for Sem_Prag.
(Analyze_Attribute): Reimplment the analysis of attribute 'Result.
(Check_Use_In_Test_Case): Use routine Test_Case_Arg to obtain
"Ensures".
* sem_ch3.adb (Analyze_Declarations): Analyze the contract of
a generic subprogram.
(Analyze_Object_Declaration): Do not create a contract node.
(Derive_Subprogram): Do not create a contract node.
* sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Do
not create a contract node.
(Analyze_Completion_Contract): New routine.
(Analyze_Function_Return): Alphabetize.
(Analyze_Generic_Subprogram_Body): Alphabetize. Do not create a
contract node. Do not copy pre/postconditions to the original
generic template.
(Analyze_Null_Procedure): Do not create a contract node.
(Analyze_Subprogram_Body_Contract): Reimplemented.
(Analyze_Subprogram_Body_Helper): Do not mark the enclosing scope
as having postconditions. Do not create a contract node. Analyze
the subprogram body contract of a body that acts as a compilation
unit. Expand the subprogram contract after the declarations have
been analyzed.
(Analyze_Subprogram_Contract): Reimplemented.
(Analyze_Subprogram_Specification): Do not create a contract node.
(List_Inherited_Pre_Post_Aspects): Code cleanup.
* sem_ch6.adb (Analyze_Subprogram_Body_Contract): Update the
comment on usage.
(Analyze_Subprogram_Contract): Update the
parameter profile and the comment on usage.
* sem_ch7.adb (Analyze_Package_Body_Helper): Do not create a
contract node.
(Analyze_Package_Declaration): Do not create a
contract node.
(Is_Subp_Or_Const_Ref): Ensure that the prefix has an entity.
* sem_ch8.adb (Analyze_Subprogram_Renaming): Do not create a
contract node.
* sem_ch9.adb (Analyze_Entry_Declaration): Do not create a
contract node.
* sem_ch10.adb (Analyze_Compilation_Unit): Move local variables to
their proper section and alphabetize them. Analyze the contract of
a [generic] subprogram after all Pragmas_After have been analyzed.
(Analyze_Subprogram_Body_Stub_Contract): Alphabetize.
* sem_ch12.adb (Analyze_Generic_Package_Declaration): Do not
create a contract node.
(Analyze_Generic_Subprogram_Declaration):
Alphabetize local variables. Do not create a contract
node. Do not generate aspects out of pragmas for ASIS.
(Analyze_Subprogram_Instantiation): Instantiate
the contract of the subprogram. Do not create a
contract node. (Instantiate_Contract): New routine.
(Instantiate_Subprogram_Body): Alphabetize local variables.
(Save_Global_References_In_Aspects): New routine.
(Save_References): Do not save the global references found within
the aspects of a generic subprogram.
* sem_ch12.ads (Save_Global_References_In_Aspects): New routine.
* sem_ch13.adb (Analyze_Aspect_Specifications): Do not use
Original_Node for establishing linkages.
(Insert_Pragma): Insertion in a subprogram body takes precedence over
the case where the subprogram body is also a compilation unit.
* sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): Use
Get_Argument to obtain the proper expression. Install the generic
formals when the related context is a generic subprogram.
(Analyze_Depends_In_Decl_Part): Use Get_Argument to obtain
the proper expression. Use Corresponding_Spec_Of to obtain
the spec. Install the generic formal when the related context
is a generic subprogram.
(Analyze_Global_In_Decl_Part): Use Get_Argument to obtain the proper
expression. Use Corresponding_Spec_Of to obtain the spec. Install the
generic formal when the related context is a generic subprogram.
(Analyze_Initial_Condition_In_Decl_Part): Use Get_Argument
to obtain the proper expression. Remove the call to
Check_SPARK_Aspect_For_ASIS as the analysis is now done
automatically.
(Analyze_Pragma): Update all occurrences
to Original_Aspect_Name. Pragmas Contract_Cases, Depends,
Extensions_Visible, Global, Postcondition, Precondition and
Test_Case now carry generic templates when the related context
is a generic subprogram. The same pragmas are no longer
forcefully fully analyzed when the context is a subprogram
that acts as a compilation unit. Pragmas Abstract_State,
Initial_Condition, Initializes and Refined_State have been clean
up. Pragmas Post, Post_Class, Postcondition, Pre, Pre_Class
and Precondition now use the same routine for analysis. Pragma
Refined_Post does not need to check the use of 'Result or
the lack of a post-state in its expression. Reimplement the
analysis of pragma Test_Case.
(Analyze_Pre_Post_Condition): New routine.
(Analyze_Pre_Post_Condition_In_Decl_Part):
Reimplemented.
(Analyze_Refined_Depends_In_Decl_Part): Use Get_Argument to obtain the
proper expression.
(Analyze_Refined_Global_In_Decl_Part): Use Get_Argument to obtain
the proper expression.
(Analyze_Test_Case_In_Decl_Part): Reimplemented.
(Check_Pre_Post): Removed.
(Check_Precondition_Postcondition): Removed.
(Check_SPARK_Aspect_For_ASIS): Removed.
(Check_Test_Case): Removed.
(Collect_Subprogram_Inputs_Outputs): Use Get_Argument
to obtain the proper expression. Use Corresponding_Spec_Of to
find the proper spec.
(Create_Generic_Template): New routine.
(Duplication_Error): New routine.
(Expression_Function_Error): New routine.
(Find_Related_Subprogram_Or_Body): Moved to the spec
of Sem_Prag. Emit precise error messages. Account for cases of
rewritten expression functions, generic instantiations, handled
sequence of statements and pragmas from aspects.
(Get_Argument): New routine.
(Make_Aspect_For_PPC_In_Gen_Sub_Decl): Removed.
(Preanalyze_CTC_Args): Removed.
(Process_Class_Wide_Condition): New routine.
* sem_prag.ads (Analyze_Test_Case_In_Decl_Part): Update
the parameter profile along with the comment on usage.
(Find_Related_Subprogram_Or_Body): Moved from the body of Sem_Prag.
(Make_Aspect_For_PPC_In_Gen_Sub_Decl): Removed.
(Test_Case_Arg): New routine.
* sem_util.adb Add with and use clauses for Sem_Ch6.
(Add_Contract_Item): This routine now creates a contract
node the first time an item is added. Remove the duplicate
aspect/pragma checks.
(Check_Result_And_Post_State): Reimplemented.
(Corresponding_Spec_Of): New routine.
(Get_Ensures_From_CTC_Pragma): Removed.
(Get_Requires_From_CTC_Pragma): Removed.
(Has_Significant_Contract): New routine.
(Inherit_Subprogram_Contract): Inherit only if the source
has a contract.
(Install_Generic_Formals): New routine.
(Original_Aspect_Name): Removed.
(Original_Aspect_Pragma_Name): New routine.
* sem_util.ads (Check_Result_And_Post_State): Reimplemented.
(Corresponding_Spec_Of): New routine.
(Get_Ensures_From_CTC_Pragma): Removed.
(Get_Requires_From_CTC_Pragma): Removed.
(Has_Significant_Contract): New routine.
(Install_Generic_Formals): New routine.
(Original_Aspect_Name): Removed.
(Original_Aspect_Pragma_Name): New routine.
* sem_warn.adb Add with and use clauses for Sem_Prag.
(Within_Postcondition): Use Test_Case_Arg to extract "Ensures".
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221101 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* sem_attr.adb (Declared_Within_Generic_Unit):
New function to test whether an entity is declared within the
declarative region of a given generic unit.
(Resolve_Attribute): For checking legality of subprogram'Access within
a generic unit, call new Boolean function Declared_Within_Generic_Unit
instead of simply comparing the results of Enclosing_Generic_Unit on
the prefix and access type. Correct minor comment typos.
2015-01-30 Robert Dewar <dewar@adacore.com>
* freeze.adb, exp_util.ads: Update comment.
* exp_util.adb, exp_ch3.adb: Minor code reorganization and reformatting.
* sem_util.adb: Minor: fix typo.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@220283 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* sem_warn.adb (Check_One_Unit): Don't give unused entities
warning for a package which is used as a generic parameter.
2015-01-07 Bob Duff <duff@adacore.com>
* usage.adb (Usage): Correct documentation of
-gnatw.f switches.
2015-01-07 Robert Dewar <dewar@adacore.com>
* s-fileio.adb: Minor reformatting.
2015-01-07 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Instantiate_Object): If formal is an anonymous
access to subprogram, replace its formals with new entities when
building the object declaration, both if actual is present and
when it is defaulted.
2015-01-07 Ed Schonberg <schonberg@adacore.com>
* sem_ch5.adb (Analyze_Assignment): If left-hand side is a view
conversion and type of expression has invariant, apply invariant
check on expression.
2015-01-07 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Create_Constrained_Components): A call to
Gather_Components may detect an error if an inherited discriminant
that controls a variant is non-static.
* sem_aggr.adb (Resolve_Record_Aggregate, Step 5): The call to
Gather_Components may report an error if an inherited discriminant
in a variant in non-static.
* sem_util.adb (Gather_Components): If a non-static discriminant
is inherited do not report error here, but let caller handle it.
(Find_Actual): Small optimization.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@219297 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* alloc.ads Alphabetize several declarations. Add constants
Ignored_Ghost_Units_Initial and Ignored_Ghost_Units_Increment.
* atree.adb Add with and use clauses for Opt.
(Allocate_Initialize_Node): Mark a node as ignored Ghost
if it is created in an ignored Ghost region.
(Ekind_In): New variant.
(Is_Ignored_Ghost_Node): New routine.
(Set_Is_Ignored_Ghost_Node): New routine.
* atree.adb Aplhabetize several subprograms declarations. Flag
Spare0 is now known as Is_Ignored_Ghost_Node.
(Ekind_In): New variant.
(Is_Ignored_Ghost_Node): New routine.
(Set_Is_Ignored_Ghost_Node): New routine.
* einfo.adb: Flag 279 is now known as Contains_Ignored_Ghost_Code.
(Contains_Ignored_Ghost_Code): New routine.
(Set_Contains_Ignored_Ghost_Code): New routine.
(Set_Is_Checked_Ghost_Entity, Set_Is_Ignored_Ghost_Entity):
It is now possible to set this property on an unanalyzed entity.
(Write_Entity_Flags): Output the status of flag
Contains_Ignored_Ghost_Code.
* einfo.ads New attribute Contains_Ignored_Ghost_Code along with
usage in nodes.
(Contains_Ignored_Ghost_Code): New routine
along with pragma Inline.
(Set_Contains_Ignored_Ghost_Code): New routine along with pragma Inline.
* exp_ch3.adb Add with and use clauses for Ghost.
(Freeze_Type): Capture/restore the value of Ghost_Mode on entry/exit.
Set the Ghost_Mode in effect.
(Restore_Globals): New routine.
* exp_ch7.adb (Process_Declarations): Do not process a context
that invoves an ignored Ghost entity.
* exp_dbug.adb (Qualify_All_Entity_Names): Skip an ignored Ghost
construct that has been rewritten as a null statement.
* exp_disp.adb Add with and use clauses for Ghost.
(Make_DT): Capture/restore the value of Ghost_Mode on entry/exit. Set
the Ghost_Mode in effect.
(Restore_Globals): New routine.
* exp_util.adb (Requires_Cleanup_Actions): An ignored Ghost entity
does not require any clean up. Add two missing cases that deal
with block statements.
* freeze.adb Add with and use clauses for Ghost.
(Freeze_Entity): Capture/restore the value of Ghost_Mode on entry/exit.
Set the Ghost_Mode in effect.
(Restore_Globals): New routine.
* frontend.adb Add with and use clauses for Ghost. Remove any
ignored Ghost code from all units that qualify.
* ghost.adb New unit.
* ghost.ads New unit.
* gnat1drv.adb Add with clause for Ghost. Initialize and lock
the table in package Ghost.
* lib.ads: Alphabetize several subprogram declarations.
* lib-xref.adb (Output_References): Do not generate reference
information for ignored Ghost entities.
* opt.ads Add new type Ghost_Mode_Type and new global variable
Ghost_Mode.
* rtsfind.adb (Load_RTU): Provide a clean environment when
loading a runtime unit.
* sem.adb (Analyze): Capture/restore the value of Ghost_Mode on
entry/exit as the node may set a different mode.
(Do_Analyze):
Capture/restore the value of Ghost_Mode on entry/exit as the
unit may be withed from a unit with a different Ghost mode.
* sem_ch3.adb Add with and use clauses for Ghost.
(Analyze_Full_Type_Declaration, Analyze_Incomplete_Type_Decl,
Analyze_Number_Declaration, Analyze_Private_Extension_Declaration,
Analyze_Subtype_Declaration): Set the Ghost_Mode in effect. Mark
the entity as Ghost when there is a Ghost_Mode in effect.
(Array_Type_Declaration): The implicit base type inherits the
"ghostness" from the array type.
(Derive_Subprogram): The
alias inherits the "ghostness" from the parent subprogram.
(Make_Implicit_Base): The implicit base type inherits the
"ghostness" from the parent type.
* sem_ch5.adb Add with and use clauses for Ghost.
(Analyze_Assignment): Set the Ghost_Mode in effect.
* sem_ch6.adb Add with and use clauses for Ghost.
(Analyze_Abstract_Subprogram_Declaration, Analyze_Procedure_Call,
Analyze_Subprogram_Body_Helper, Analyze_Subprogram_Declaration):
Set the Ghost_Mode in effect. Mark the entity as Ghost when
there is a Ghost_Mode in effect.
* sem_ch7.adb Add with and use clauses for Ghost.
(Analyze_Package_Body_Helper, Analyze_Package_Declaration,
Analyze_Private_Type_Declaration): Set the Ghost_Mode in
effect. Mark the entity as Ghost when there is a Ghost_Mode
in effect.
* sem_ch8.adb Add with and use clauses for Ghost.
(Analyze_Exception_Renaming, Analyze_Generic_Renaming,
Analyze_Object_Renaming, Analyze_Package_Renaming,
Analyze_Subprogram_Renaming): Set the Ghost_Mode in effect. Mark
the entity as Ghost when there is a Ghost_Mode in effect.
(Find_Type): Check the Ghost context of a type.
* sem_ch11.adb Add with and use clauses for Ghost.
(Analyze_Exception_Declaration): Set the Ghost_Mode in
effect. Mark the entity as Ghost when there is a Ghost_Mode
in effect.
* sem_ch12.adb Add with and use clauses for Ghost.
(Analyze_Generic_Package_Declaration,
Analyze_Generic_Subprogram_Declaration): Set the Ghost_Mode in effect.
Mark the entity as Ghost when there is a Ghost_Mode in effect.
* sem_prag.adb Add with and use clauses for Ghost.
(Analyze_Pragma): Ghost-related checks are triggered when there
is a Ghost mode in effect.
(Create_Abstract_State): Mark the
entity as Ghost when there is a Ghost_Mode in effect.
* sem_res.adb Add with and use clauses for Ghost.
(Check_Ghost_Context): Removed.
* sem_util.adb (Check_Ghost_Completion): Removed.
(Check_Ghost_Derivation): Removed.
(Incomplete_Or_Partial_View):
Add a guard in case the entity has not been analyzed yet
and does carry a scope.
(Is_Declaration): New routine.
(Is_Ghost_Entity): Removed.
(Is_Ghost_Statement_Or_Pragma):
Removed.
(Is_Subject_To_Ghost): Removed.
(Set_Is_Ghost_Entity):
Removed.
(Within_Ghost_Scope): Removed.
* sem_util.adb (Check_Ghost_Completion): Removed.
(Check_Ghost_Derivation): Removed.
(Is_Declaration): New routine.
(Is_Ghost_Entity): Removed.
(Is_Ghost_Statement_Or_Pragma): Removed.
(Is_Subject_To_Ghost): Removed.
(Set_Is_Ghost_Entity): Removed.
(Within_Ghost_Scope): Removed.
* sinfo.ads Add a section on Ghost mode.
* treepr.adb (Print_Header_Flag): New routine.
(Print_Node_Header): Factor out code. Output flag
Is_Ignored_Ghost_Node.
* gcc-interface/Make-lang.in: Add dependency for unit Ghost.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@219280 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* bindgen.adb: Minor style fix.
2015-01-06 Robert Dewar <dewar@adacore.com>
* sem_util.ads, sem_util.adb: Minor reformatting.
2015-01-06 Vincent Celier <celier@adacore.com>
* prj-conf.adb (Parse_Project_And_Apply_Config): Reset incomplete
with flags before parsing the projects.
* prj-err.adb (Error_Msg): Do nothing if there are incomplete withs.
* prj-part.adb (Post_Parse_Context_Clause): Set Incomplete_Withs
to True in the flags, when Ignore_Missing_With is True and an
imported project cannot be found.
* prj-proc.adb (Expression): When there are incomplete withs and
a variable or attribute is not found, set the variable/attribute
to unknown.
* prj.ads (Processing_Flags): New flag Incomplete_Withs,
defaulted to False.
2015-01-06 Vasiliy Fofanov <fofanov@adacore.com>
* prj-proc.adb, prj-part.adb, prj.adb, prj.ads, prj-conf.adb,
prj-err.adb: Add new switch --no-command-line.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@219252 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@219237 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* exp_util.adb: Change name Name_Table_Boolean to
Name_Table_Boolean1.
* namet.adb: Change name Name_Table_Boolean to Name_Table_Boolean1
Introduce Name_Table_Boolean2/3.
* namet.ads: Change name Name_Table_Boolean to Name_Table_Boolean1
Introduce Name_Table_Boolean2/3.
* par-ch13.adb: Change name Name_Table_Boolean to
Name_Table_Boolean1.
2015-01-06 Bob Duff <duff@adacore.com>
* gnat_rm.texi: Improve documentation regarding No_Task_Termination.
2015-01-06 Ed Schonberg <schonberg@adacore.com>
* sem_aggr.adb (Resolve_Record_Aggregte, Get_Value): For an
others choice that covers multiple components, analyze each
copy with the type of the component even in compile-only mode,
to detect potential accessibility errors.
2015-01-06 Hristian Kirtchev <kirtchev@adacore.com>
* sem_res.adb (Is_Assignment_Or_Object_Expression): New routine.
(Resolve_Actuals): An effectively volatile out
parameter cannot act as an in or in out actual in a call.
(Resolve_Entity_Name): An effectively volatile out parameter
cannot be read.
2015-01-06 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): If the body is
the expansion of an expression function it may be pre-analyzed
if a 'access attribute is applied to the function, in which case
last_entity may have been assigned already.
2015-01-06 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Analyze_One_Call): If formal has an incomplete
type and actual has the corresponding full view, there is no
error, but a case of use of incomplete type in a predicate or
invariant expression.
2015-01-06 Vincent Celier <celier@adacore.com>
* makeutl.adb (Insert_No_Roots): Make sure that the same source
in two different project tree is checked in both trees, if they
are sources of two different projects, extended or not.
2015-01-06 Arnaud Charlet <charlet@adacore.com>
* gnat1drv.adb: Minor code clean up.
(Adjust_Global_Switches): Ignore gnatprove_mode in codepeer_mode.
2015-01-06 Bob Duff <duff@adacore.com>
* osint.adb (Read_Source_File): Don't print out
file name unless T = Source.
2015-01-06 Ed Schonberg <schonberg@adacore.com>
* sem_util.adb (Is_Variable, Is_OK_Variable_For_Out_Formal):
recognize improper uses of constant_reference types as actuals
for in-out parameters.
(Check_Function_Call): Do not collect identifiers if function
name is missing because of previous error.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@219231 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* ali-util.adb, sem_prag.adb, rtsfind.adb, sem_util.adb, sem_res.adb,
ali.adb, binde.adb, namet.adb, namet.ads, gnatls.adb, bcheck.adb:
Minor change of name Name_Table_Info => Name_Table_Int.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@219230 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* sem_ch13.adb, freeze.adb: Minor reformatting.
* gnat_rm.texi: Minor editing.
2014-11-20 Robert Dewar <dewar@adacore.com>
* sem_prag.adb (Analyze_Pragma): Minor reformatting.
(Process_Suppress_Unsuppress): Ignore suppress Elaboration_Check
in SPARK.
2014-11-20 Bob Duff <duff@adacore.com>
* gnat_rm.texi: Correction to documentation of
'Unrestricted_Access in case of access to unconstrained array.
* a-cofove.adb (Capacity): Fix bug -- was always
returning Capacity_Range'Last.
(Is_Sorted): Fix bug -- was always returning True, because
Container.Last = Last. That test isn't even needed, because the
loop will go around zero times in that case, so deleted that
test rather than fixing it.
(Reverse_Elements): Make sure to use the correct array bounds.
2014-11-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Analyze_Associations): In GNATProve mode, build
wrappers for functions and operators that are actuals only if
expander is enabled. Wrappers play no role within a generic unit.
2014-11-20 Hristian Kirtchev <kirtchev@adacore.com>
* sem_util.adb (Policy_In_Effect): Use the
configuration level assertion flag.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217880 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* exp_ch3.adb (Build_Initialization_Call): Reimplement the
circuitry which extraacts the [underlying] full view of a
private type to handle a case where the private type acts as a
generic actual.
* exp_ch5.adb (Expand_Iterator_Loop_Over_Array): Inherit the
loop label form the original loop regardless of whether it came
from source.
* sem_attr.adb (Analyze_Attribute): When taking 'Access of an
expression function with a generated body that has not been
analyzed yet, analyze the body to freeze the expression.
* sem_util.adb (Set_Public_Status_Of): New routine.
(Transfer_Entities): Handle the case where a private type with
an internally generated full view is being transfered and update
its full view.
2014-11-20 Vincent Celier <celier@adacore.com>
* prj-nmsc.adb (Check_Object): If a unit is in a multi-source
file, its object file is never the same as any other unit.
2014-11-20 Bob Duff <duff@adacore.com>
* s-taskin.adb (Initialize_ATCB): Take into
account the fact that the domain of the activator can be null
if we're initializing a foreign task.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217877 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* gnatcmd.adb, sem_ch6.adb, exp_dist.adb: Minor reformatting.
* sem_util.adb (Bad_Unordered_Enumeration_Reference): Suppress
warning (return False) for generic type.
2014-11-20 Hristian Kirtchev <kirtchev@adacore.com>
* sem_res.adb (Appears_In_Check): Removed.
(Is_OK_Volatile_Context): Rewrite the checks which verify that
an effectively volatile object subject to enabled properties
Async_Writers or Effective_Reads appears in a suitable context to
properly recognize a procedure call.
(Within_Check): New routine.
(Within_Procedure_Call): New routine.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217848 138bc75d-0d04-0410-961f-82ee72b054a4
|