Age | Commit message (Collapse) | Author | Files | Lines |
|
2013-07-05 Hristian Kirtchev <kirtchev@adacore.com>
* aspects.adb: Add an entry for SPARK_Mode in table Canonical_Aspect.
* aspects.ads: Add an entry for SPARK_Mode in tables Aspect_Id,
Aspect_Argument, Aspect_Names.
* atree.adb (Node32): New routine.
(Set_Node32): New routine.
* atree.ads (Node32): New routine.
(Set_Node32): New routine.
* einfo.adb: Node32 is now used as SPARK_Mode_Pragmas.
(Set_SPARK_Mode_Pragmas): New routine.
(SPARK_Mode_Pragmas): New routine.
(Write_Field32_Name): Add and entry for SPARK_Modes.
* einfo.ads: Add attribute SPARK_Mode_Pragmas along with usage
in various entities.
(Set_SPARK_Mode_Pragmas): New routine and
pragma Inline.
(SPARK_Mode_Pragmas): New routine and pragma Inline.
* gnat_rm.texi: Add sections explaining the syntax and semantics
of aspect/pragma SPARK_Mode.
* gnat_ugn.texi: Add pragma SPARK_Mode to the list of
configuration pragmas.
* lib.adb (Set_SPARK_Mode_Pragma): New routine.
(SPARK_Mode_Pragma): New routine.
* lib.ads: Alphabetize the comments on fields of record
Unit_Record. Add new field SPARK_Mode_Pragma along with
comment on its usage. Update the layout of record Unit_Record.
(Set_SPARK_Mode_Pragma): New routine and pragma Inline.
(SPARK_Mode_Pragma): New routine and pragma Inline.
* lib-load.adb (Create_Dummy_Package_Unit): Initialize
field SPARK_Mode_Pragma.
(Load_Main_Source): Initialize field SPARK_Mode_Pragma.
(Load_Unit): Initialize field SPARK_Mode_Pragma.
* lib-writ.adb (Add_Preprocessing_Dependency): Initialize field
SPARK_Mode_Pragma.
(Ensure_System_Dependency): Initialize field SPARK_Mode_Pragma.
* opt.ads: Alphabetize verification flags. Store the
compilation-wide SPARK mode in variable Global_SPARK_Mode.
* par-prag.adb: Pragma SPARK_Mode does not need special processing
by the parser.
* sem_ch13.adb (Analyze_Aspect_Specifications): Convert aspect
SPARK_Mode into a pragma.
(Check_Aspect_At_Freeze_Point): Aspect SPARK_Mode does not need
delayed processing.
* sem_prag.adb: Add an entry for SPARK_Mode in table Sig_Flags.
(Analyze_Pragma): Add processing for pragma SPARK_Mode.
(Get_SPARK_Mode_Id): New routine.
(Is_Elaboration_SPARK_Mode): New routine.
(Is_Private_SPARK_Mode): New routine.
* sem_prag.ads (Get_SPARK_Mode_Id): New routine.
(Is_Elaboration_SPARK_Mode): New routine.
(Is_Private_SPARK_Mode): New routine.
* sinfo.ads: Update the comment on the usage of field Next_Pragma.
* snames.ads-tmpl: Add new predefined name for SPARK_Mode and
Auto. Add new pragma Id for SPARK_Mode.
* types.ads: Add new type SPARK_Mode_Id.
From-SVN: r200711
|
|
2013-04-11 Robert Dewar <dewar@adacore.com>
* exp_attr.adb, sem_res.adb, sem_attr.adb: Minor reformatting.
2013-04-11 Robert Dewar <dewar@adacore.com>
* atree.adb, atree.ads (Node31): New function.
(Set_Node31): New procedure.
2013-04-11 Robert Dewar <dewar@adacore.com>
* errout.ads: Minor typo correction.
2013-04-11 Javier Miranda <miranda@adacore.com>
* einfo.ad[sb] (Thunk_Entity/Set_Thunk_Entity): New attribute.
From-SVN: r197792
|
|
2013-01-29 Robert Dewar <dewar@adacore.com>
* atree.ads, atree.adb (Node30): New function.
(Set_Node30): New procedure.
(Num_Extension_Nodes): Change to 5 (activate new fields/flags).
* atree.h: Add macros for Field30 and Node30.
* einfo.ads, einfo.adb: Move some fields to avoid duplexing.
* treepr.adb (Print_Entity_Information): Print fields 30-35.
2013-01-29 Robert Dewar <dewar@adacore.com>
* sem_prag.adb (Analyze_Pragma, case Interface): Consider to
be a violation of No_Obsolescent_Features even in Ada 95. Also
generates a warning in -gnatwj mode.
(Analyze_Pragma, case Interface_Name): Generates a warning in -gnatwj
mode.
* gnat_ugn.texi: Additional documentation on -gnatwj and pragma
Interface[_Name].
2013-01-29 Vincent Celier <celier@adacore.com>
* snames.ads-tmpl: Add new standard name Trailing_Switches.
2013-01-29 Ed Schonberg <schonberg@adacore.com>
* sem_disp.adb (Check_Controlling_Type): If a designated type T
of an anonymous access type is a limited view of a tagged type,
it can be a controlling type only if the subprogram is in the
same scope as T.
2013-01-29 Vincent Celier <celier@adacore.com>
* gnatcmd.adb: Use the project where the config pragmas file is
declared to get its path.
2013-01-29 Vincent Celier <celier@adacore.com>
* prj-attr.adb: New attribute Linker'Trailing_Switches.
From-SVN: r195535
|
|
2013-01-04 Robert Dewar <dewar@adacore.com>
* warnsw.adb: Minor fixes to -gnatw.d handling.
2013-01-04 Robert Dewar <dewar@adacore.com>
* einfo.adb, atree.adb: Enlarge entities to make 63 more flags, 6 more
fields.
2013-01-04 Joel Brobecker <brobecker@adacore.com brobecker>
* gnat_ugn.texi: Fix typo.
2013-01-04 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi: Document alignment choice for subtypes.
2013-01-04 Robert Dewar <dewar@adacore.com>
* validsw.ads: Minor fix to comment.
2013-01-04 Doug Rupp <rupp@adacore.com>
* Makefile.rtl (GNATRTL_NONTASKING_OBJS,
GNATRTL_ALTIVEC_OBJS): Factor g-al* objects.
* gcc-interface/Makefile.in (ADA_EXCLUDE_SRCS): Add g-al* sources.
(GNATRTL_ALTIVEC_OBJS): Override to null for VMS.
Rename leon vxworks toolchain as leon-wrs-vxworks.
* gcc-interface/Make-lang.in: Update dependencies
2013-01-04 Pascal Obry <obry@adacore.com>
* prj.ads (For_Each_Source): Add Locally_Removed parameter.
(Source_Iterator): Add Locally_Removed field.
* prj.adb (For_Each_Source): Ignore Locally_Removed files if needed.
(Next): Likewise.
2013-01-04 Robert Dewar <dewar@adacore.com>
* exp_attr.adb: Minor reformatting.
2013-01-04 Robert Dewar <dewar@adacore.com>
* checks.adb (Insert_Valid_Check): Fix handling of renamed
packed array element.
* exp_ch4.adb (Expand_Concatenate): Fix some missing parent
fields in generated code.
* exp_util.adb (Side_Effect_Free): Improve detection of cases
needing renaming.
2013-01-04 Robert Dewar <dewar@adacore.com>
* sinfo.ads: Clean up order of N_xxx subtypes
2013-01-04 Vincent Celier <celier@adacore.com>
* prj-conf.adb (Check_Target): Allow --autoconf= with no target.
From-SVN: r194896
|
|
2012-12-05 Thomas Quinot <quinot@adacore.com>
* exp_dist.adb: Minor reformatting.
2012-12-05 Tristan Gingold <gingold@adacore.com>
* Make-generated.in: Remove the VMS host specific part, as VMS
compilers aren't built anymore on VMS.
2012-12-05 Thomas Quinot <quinot@adacore.com>
* sem.adb, errout.ads, atree.adb, atree.ads (Check_Error_Detected):
Only return quietly if a serious error of configurable run time
violation has been found.
2012-12-05 Yannick Moy <moy@adacore.com>
* sem_res.adb (Resolve_Type_Conversion): In Alfa_Mode, do not apply
conversion checks.
From-SVN: r194205
|
|
2012-12-05 Robert Dewar <dewar@adacore.com>
* gnatchop.adb, sem_attr.ads, sem_ch4.adb, sem_ch6.adb, exp_disp.adb,
atree.adb, sem_eval.adb: Minor reformatting.
2012-12-05 Yannick Moy <moy@adacore.com>
* uintp.adb (UI_Div_Rem): Correct algorithm D to remove potential
overflow.
2012-12-05 Robert Dewar <dewar@adacore.com>
* exp_ch4.adb (Expand_N_Op_Mod): Minor comment additions.
(Expand_N_Op_Rem): Ditto.
2012-12-05 Robert Dewar <dewar@adacore.com>
* sem_attr.adb: Minor reformatting.
2012-12-05 Robert Dewar <dewar@adacore.com>
* usage.adb: Update lines for -gnato? switch.
From-SVN: r194202
|
|
2012-11-06 Tristan Gingold <gingold@adacore.com>
* sem_ch9.adb (Analyze_Protected_Type_Declaration): Fix thinko
in previous commit.
2012-11-06 Jose Ruiz <ruiz@adacore.com>
* ali.adb (Scan_ALI): Fix parsing mechanism for -fstack-check.
2012-11-06 Thomas Quinot <quinot@adacore.com>
* atree.adb, atree.ads, einfo.adb, errout.adb, errout.ads, erroutc.adb,
erroutc.ads, errutil.adb, errutil.ads, err_vars.ads, expander.adb,
exp_ch13.adb, exp_ch2.adb, exp_ch6.adb, exp_dist.adb, fe.h,
fmap.adb, fmap.ads, gprep.adb, makeutl.adb, osint.adb, osint.ads,
par_sco.adb, prepcomp.adb, prj-part.adb, prj-proc.adb, scng.adb,
sdefault.ads, sem_ch10.adb, sem_ch13.adb, sem_ch2.adb, sem_ch3.adb,
sem_ch4.adb, sem_ch5.adb, sem_dim.adb, sem_elab.adb, sem_eval.adb,
sem_intr.adb, sem_prag.adb, sem_type.adb, sem_warn.adb, stylesw.adb,
stylesw.ads, targparm.adb, targparm.ads (Cascaded_Error): Rename to
more descriptive name 'Check_Error_Detected'. Add calls to
Check_Error_Detected at places where semantic analysis is abandoned
assuming a previously detected error.
From-SVN: r193235
|
|
2012-03-19 Yannick Moy <moy@adacore.com>
* sem_ch6.adb: Minor code clean up.
2012-03-19 Vincent Celier <celier@adacore.com>
* make.adb (Scan_Make_Arg): Make sure all significant -m switches
on the command line are counted.
2012-03-19 Robert Dewar <dewar@adacore.com>
* sem_elab.adb (Generate_Elab_Warnings): Fix spec, fix attribute
reference case
2012-03-19 Robert Dewar <dewar@adacore.com>
* par-ch4.adb (Check_Bad_Exp): New procedure
2012-03-19 Robert Dewar <dewar@adacore.com>
* exp_attr.adb, sem_attr.adb, sem_attr.ads, snames.ads-tmpl: Add
initial framework for Valid_Scalars attribute.
2012-03-19 Robert Dewar <dewar@adacore.com>
* scng.adb (Scan): Recognize incorrect preprocessor directive
2012-03-19 Robert Dewar <dewar@adacore.com>
* atree.adb (Allocate_Initialize_Node): Use Num_Extension_Nodes
* atree.ads (Num_Extension_Nodes): New variable
* debug.adb: New debug flag -gnatd.N
* gnat1drv.adb (Adjust_Global_Switches): Adjust
Num_Extension_Nodes if -gnatd.N set
2012-03-19 Eric Botcazou <ebotcazou@adacore.com>
* einfo.ads: Minor update to First_Rep_Item and Has_Gigi_Rep_Item
descriptions.
2012-03-19 Robert Dewar <dewar@adacore.com>
* opt.ads: Remove HLO_Active flag.
* sem.adb: Remove call of high level optimizer.
* sem.ads (New_Nodes_OK): Removed.
* sem_ch10.adb: Remove references to New_Nodes_OK.
* switch-c.adb: Remove handling of -gnatH switch.
From-SVN: r185528
|
|
2011-11-04 Yannick Moy <moy@adacore.com>
* atree.adb, atree.ads (Set_Original_Node): New set procedure.
* sem_ch13.adb (Analyze_Aspect_Specifications/Pre_Post_Aspects):
In ASIS mode, no splitting of aspects between conjuncts.
(Analyze_Aspect_Specifications/Aspect_Test_Case): Make pragma
expressions refer to the original aspect expressions through
the Original_Node link. This is used in semantic analysis for
ASIS mode, so that the original expression also gets analyzed.
* sem_prag.adb (Preanalyze_TC_Args,
Check_Precondition_Postcondition,
Analyze_Pragma/Pragma_Test_Case): In ASIS mode, for a pragma
generated from a source aspect, also analyze the original aspect
expression.
(Check_Expr_Is_Static_Expression): New procedure
similar to existing procedure Check_Arg_Is_Static_Expression,
except called on expression inside pragma.
2011-11-04 Tristan Gingold <gingold@adacore.com>
* prj-env.adb, prj-env.ads (Find_Name_In_Path): New function, from
Find_Project.Try_Path_Name.
(Find_Project): Use Find_Name_In_Path to implement Try_Path_Name.
2011-11-04 Eric Botcazou <ebotcazou@adacore.com>
* s-atocou.ads (Atomic_Counter): Remove redundant pragma Volatile.
2011-11-04 Pascal Obry <obry@adacore.com>
* projects.texi: Add short description for qualifiers aggregate
and aggregate library.
2011-11-04 Matthew Heaney <heaney@adacore.com>
* Makefile.rtl, impunit.adb: Added a-cogeso.ad[sb]
* a-cgaaso.adb: Replaced implementation with instantiation
of Generic_Sort.
* a-cogeso.ad[sb] This is the new Ada 2012 unit
Ada.Containers.Generic_Sort
From-SVN: r180948
|
|
Copy_Separate_Tree to a list of nodes.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* atree.ads, atree.adb (Copy_Separate_List): New function that applies
Copy_Separate_Tree to a list of nodes. Used to create disjoint copies
of statement lists that may contain local declarations.
(Expand_N_Timed_Entry_Call): Use Copy_Separate_List to duplicate the
triggering statements needed for the expansion of this construct, when
the trigger is a dispatching call to a synchronized primitive.
From-SVN: r178169
|
|
the message strings when...
2011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
* a-except.adb, a-except-2005.adb (Raise_From_Controlled_Operation):
Rewritten to create the message strings when the exception is not
raised by an abort during finalization.
* a-except.ads, a-except-2005.ads: Add pragma Export for procedure
Raise_From_Controlled_Operation and update its associated comment.
* a-fihema.ads, a-fihema.adb: New GNAT unit.
Ada.Finalization.Heap_Management provides key functionality
associated with controlled objects on the heap, their creation,
finalization and reclamation. Type Finalization_Collection is
effectively a wrapper which sits ontop of a storage pool and performs
all necessary bookkeeping for all the objects it contains. Each
access-to-controlled or access-to-class-wide type receives a collection
as part of its expansion. The compiler generates buffer code and
invokes Allocate / Deallocate to create and destroy allocated
controlled objects.
* a-finali.adb ("="): Removed.
* a-finali.ads ("="): Removed. Controlled types no longer carry hidden
fields Prev and Next.
* ali.adb (Scan_ALI): Add parsing code to process PF / Has_Finalizer.
A library unit with at least one controlled object on the library level
has a special finalizer which is invoked by the binder. To signal this,
ali files carry field PF.
* ali.ads: New field in type Unit_Record called Has_Finalizer. Add
associated comment on field usage.
* a-tags.adb (Get_RC_Offset): Removed.
(Needs_Finalization): New routine.
* a-tags.ads: Update the structure of the GNAT dispatch tables.
Dispatch tables now carry field Needs_Finalization which provides
runtime indication whether a type is controlled or has controlled
components or both. Remove field RC_Offset.
(Get_RC_Offset): Removed along with its associated pragma Export.
Since tagged types with controlled components no longer carry hidden
field _controller, the special mechanism to retrieve its location is no
longer needed.
(Needs_Finalization): New routine.
* atree.ads, atree.adb (Elist24): New routine.
(Set_Elist24): New routine.
* atree.h: Add a define clause for Elist24.
* bindgen.adb New library-level variable Lib_Final_Built.
(Gen_Adafinal_Ada): Reimplemented. Depending on the restrictions or the
presence of a VM target, the routine generates calls to the proper
library finalization routine.
(Gen_Adainit_Ada): Import Finalize_Library_Objects only on non-VM
targets. Set the correct library finalization routine depending on
whether the library has controlled objects or this is a VM compilation.
(Gen_Finalize_Library_Ada): New routine. This procedure generates calls
to library-level finalizers of compiled units in reverse order of
elaboration. It also produces exception management code and reraises a
potential exception after all units have been finalized.
(Gen_Finalize_Library_C): New routine. This procedure generates calls to
library-level finalizers of compiled units in reverse order of
elaboration.
(Gen_Finalize_Library_Defs_C): New routine. This procedure generates the
definitions of all library-level finalizers available to the compilation
(Gen_Main_Ada): Directly call Adafinal which now contails all target
dependent code.
(Gen_Main_C): Add new local constant Needs_Library_Finalization. Call
System.Standard_Library.Adafinal directly. If the library needs
finalization actions, create the sequence of finalization calls.
(Gen_Output_File_Ada): Alphabetize local variables and constants.
Generate a with clause for System.Soft_Links when compiling for a VM.
Remove the code which imports System.Standard_Library.Adafinal as
Do_Finalize. Generate the library finalization routine.
(Gen_Output_File_C): Add new local constant Needs_Library_Finalization.
If the library needs finalization actions, create all the definitions
of library- level finalizers.
(Has_Finalizer): New routine. Determines whether at least one compiled
unit has a library-level finalizer.
Add type Qualification_Mode.
(Set_Unit_Name): Add a formal which controls the replacement of a dot.
* einfo.adb: New usage of field 15 as Return_Flag.
Remove Finalization_Chain_Entity from the usages of field 19.
Remove Associated_Final_Chain from the usages of field 23.
New usage of field 23 as Associated_Collection.
New usage of field 24 as Finalizer.
New usage of flag 252 as Is_Processed_Transient.
(Associated_Final_Chain): Removed.
(Associated_Collection): New routine.
(Finalization_Chain_Entity): Removed.
(Finalizer): New routine.
(Is_Finalizer): New routine.
(Is_Processed_Transient): New routine.
(Return_Flag): New routine.
(Set_Associated_Final_Chain): Removed.
(Set_Associated_Collection): New routine.
(Set_Finalization_Chain_Entity): Removed.
(Set_Finalizer): New routine.
(Set_Is_Processed_Transient): New routine.
(Set_Return_Flag): New routine.
(Write_Entity_Flags): Include Is_Processed_Transient to the list of
displayed flags.
(Write_Field8_Name): Alphabetize the output.
(Write_Field11_Name): Alphabetize the output.
(Write_Field12_Name): Alphabetize the output.
(Write_Field13_Name): Alphabetize the output.
(Write_Field14_Name): Alphabetize the output.
(Write_Field15_Name): Alphabetize the output.
(Write_Field16_Name): Alphabetize the output.
(Write_Field17_Name): Alphabetize the output.
(Write_Field18_Name): Alphabetize the output.
(Write_Field19_Name): Alphabetize the output. Remove the output of
Finalization_Chain_Entity.
(Write_Field20_Name): Alphabetize the output.
(Write_Field21_Name): Alphabetize the output.
(Write_Field22_Name): Alphabetize the output.
(Write_Field23_Name): Alphabetize the output. Remove the output of
Associated_Final_Chain. Add output for Associated_Collection.
(Write_Field24_Name): Alphabetize the output.
(Write_Field25_Name): Add output for Finalizer.
(Write_Field26_Name): Alphabetize the output.
(Write_Field27_Name): Alphabetize the output.
(Write_Field28_Name): Alphabetize the output.
* einfo.ads: Add new field description for Associated_Collection and
its uses in nodes.
Remove Associated_Final_Chain and its uses in nodes.
Remove Finalization_Chain_Entity and its uses in nodes.
Add new field description for Finalizer and its uses in nodes.
Add new synthesized attribute Is_Finalizer.
Add new flag description for Is_Processed_Transient and its uses in
nodes.
Add new field description for Return_Flag and its uses in nodes.
(Associated_Final_Chain): Removed along with its pragma Inline.
(Associated_Collection): New routine and pragma Inline.
(Finalization_Chain_Entity): Removed along with its pragma Inline.
(Finalizer): New routine and pragma Inline.
(Is_Finalizer): New routine and pragma Inline.
(Is_Processed_Transient): New routine and pragma Inline.
(Return_Flag): New routine and pragma Inline.
(Set_Associated_Final_Chain): Removed along with its pragma Inline.
(Set_Associated_Collection): New routine and pragma Inline.
(Set_Finalization_Chain_Entity): Removed along with its pragma Inline.
(Set_Finalizer): New routine and pragma Inline.
(Set_Is_Processed_Transient): New routine and pragma Inline.
(Set_Return_Flag): New routine and pragma Inline.
* exp_aggr.adb: Alphabetize subprograms.
(Build_Array_Aggr_Code): Remove formal Flist and its associated comment.
(Build_Record_Aggr_Code): Remove formals Flist and Obj along with their
associated comments. Remove local variables External_Final_List and
Attach.
Rename Ctrl_Stuff_Done to Finalization_Done. Rename local variable A to
Ancestor. Remove the retrieval of finalization lists. Update the call to
Make_Adjust_Call.
(Convert_Aggr_In_Allocator): Remove the retrieval of finalization
lists. Update the call to Late_Expansion.
(Convert_Aggr_In_Assignment): Update the call to Late_Expansion.
(Convert_Aggr_In_Object_Decl): Update the call to Late_Expansion.
(Gen_Assign): Remove the retrieval of the finalization list used to
build the assignment. Update the calls to Make_Init_Call and
Make_Adjust_Call.
(Gen_Ctrl_Actions_For_Aggr): Renamed to Generate_Finalization_Actions.
Remove the mechanism to determine attachment levels and finalization
list retrieval. Remove the processing for coextensions.
(Init_Controller): Removed. Controllers no longer exist.
(Late_Expansion): Remove formals Flist and Obj along with their
associated comments. Update the calls to Build_Record_Aggr_Code and
Build_Array_Aggr_Code.
* exp_ch13.adb (Expand_N_Free_Statement): New routine.
(Expand_N_Freeze_Entity): Add special processing for finalizers which
appear in entry bodies, protected subprograms and task bodies.
* exp_ch13.ads (Expand_N_Free_Statement): New routine.
* exp_ch3.adb (Add_Final_Chain): Removed.
(Build_Array_Init_Proc): Alphabetize local variables.
(Build_Assignment): Alphabetize local variables. Update the call to
Maked_Adjust_Call.
(Build_Class_Wide_Master): Rename local variables to better reflect
their role.
(Build_Discriminant_Assignments): Code reformatting.
(Build_Init_Call_Thru): Code reformatting.
(Build_Init_Procedure): Code reformatting. Generate a special version
of Deep_Finalize which is capable of finalizing all initialized
components and ignore the rest.
(Build_Init_Statements): Rename local variables to better reflect their
role.
Reimplement the mechanism to include the creation and update of an index
variable called a "counter". It is used as a bookmark for tracing
initialized and non-initialized components.
(Build_Initialization_Call): Remove local variable Controller_Typ.
Alphabetize all local variables. Remove the initialization of the
record controller and update the call to Make_Init_Call.
(Build_Record_Init_Proc): Rename formal Pe to Rec_Ent.
New local variable Counter.
(Constrain_Array): Alphabetize.
(Expand_Freeze_Array_Type): Create a collection instead of a
finalization list.
(Expand_Freeze_Class_Wide_Type): New routine. Creates TSS primitive
Finalize_Address which is used in conjunction with allocated controlled
objects.
(Expand_N_Object_Declaration): Remove the creation of a finalization
list for anonymous access types. Update the calls to Make_Init_Call and
Make_Adjust_Call.
(Expand_Freeze_Record_Type): Remove local variable Flist. Remove the
retrieval of finalization lists. Remove the expansion of the record
controller. Create TSS primitive Finalize_Address used in conjunction
with controlled objects on the heap. Create finalization collections
for access-to-controlled record components.
(Expand_Record_Controller): Removed.
(Freeze_Type): Remove the freezing of record controllers. Freezing of
class-wide types now requires additional processing. Create
finalization collections for access-to-controlled types.
(Increment_Counter): New routine.
(Make_Counter): New routine.
(Make_Eq_If): Remove the mention of Name_uController.
(Make_Predefined_Primitive_Specs): There is no longer need to skip
types coming from System.Finalization_Root.
(Predef_Deep_Spec): Reimplemented to reflect the new parameter profiles.
(Predefined_Primitive_Bodies): There is no longer need to skip types
coming from System.Finalization_Root.
(Stream_Operation_OK): Do not generate stream routines for
type Ada.Finalization.Heap_Management.Finalization_Collection.
* exp_ch3.ads: Alphabetize subprograms.
* exp_ch4.adb: Remove with and use clause for Sem_Ch8.
Add with and use clause for Lib.
(Complete_Coextension_Finalization): Removed.
(Complete_Controlled_Allocation): New routine. Create a finalization
collection for anonymous access-to-controlled types. Create a custom
Allocate which interfaces with the back end and the machinery in
Heap_Management.
(Expand_Allocator_Expression): Add necessary calls to
Complete_Controlled_Allocation. Remove the retrieval of finalization
lists. Update the calls to Make_Adjust_Call. Generate a call to
Ada.Finalization.Heap_Management.Set_Finalize_Address_Ptr to decorate
the associated collection.
(Expand_N_Allocator): Remove the processing for dynamic coextensions.
Code clean up. Remove the retrieval of finalization lists and
attachment levels.
Update the call to Make_Init_Call. Generate a call to
Ada.Finalization.Heap_Management.Set_Finalize_Address_Ptr to decorate
the associated collection.
(Get_Allocator_Final_List): Removed. Finalization lists are not
available.
(Suitable_Element): Remove the mention of Name_uController.
* exp_ch5.adb: Remove with and use clauses for Ttypes and Uintp.
(Make_Tag_Ctrl_Assignment): Rewritten to simply do a finalization of
the left hand side, carry out the assignment and adjust the left hand
side.
* exp_ch6.adb (Add_Final_List_Actual_To_Build_In_Place_Call): Removed.
(Add_Collection_Actual_To_Build_In_Place_Call): New routine.
(BIP_Formal_Suffix): Rename BIP_Final_List and BIPfinallist to
BIP_Collection and BIPcollection.
(Build_Heap_Allocator): New routine used to allocate the return object
of a build-in-place function onto a collection.
(Expand_Ctrl_Function_Call): Moved from Exp_Ch7.
(Expand_Call): Do not replace direct calls to Deep routines with their
aliases.
(Expand_N_Extended_Return_Statement): Give all variables shorter names
and update their occurrences. Add a special return flag to monitor the
[ab]normal execution of the function. The flag is set right before the
return statement.
Rewrite the mechanism used to allocate a build-in-place return object
on the heap or on a storage pool.
(Is_Direct_Deep_Call): New routine.
(Make_Build_In_Place_Call_In_Allocator): Add a collection to a
build-in-place function call instead of a final list. Build a call to
Set_Finalize_Address_Ptr to decorate the associated collection.
(Make_Build_In_Place_Call_In_Anonymous_Context): Create a temporary in
order to name the build-in-place function call's result for later
finalization. Add a collection to a build-in-place function call
instead of a final list.
(Make_Build_In_Place_Call_In_Assignment): Add a collection to a
build-in-place function call instead of a final list. Remove the code
which moves one final list and transforms it into the actual in a
nested build-in-place call.
(Make_Build_In_Place_Call_In_Object_Declaration): Add a collection to a
build-in-place function call instead of a final list.
(Move_Final_List): Removed.
(Needs_BIP_Collection): New routine.
(Needs_BIP_Final_List): Removed.
* exp_ch6.ads: Replace BIP_Final_List with BIP_Collection in
enumeration type BIP_Formal_Kind.
Update the related comment.
(Needs_BIP_Collection): New routine.
(Needs_BIP_Final_List): Removed.
* exp_ch7.adb: Add with and use clauses for Elists, Exp_Ch6, Stringt
and Ttypes. Remove with and use clauses for Sem_Type. Alphabetize the
majority of subprograms in this unit. Add Name_Finalize_Address to
array Name_Of and TSS_Finalize_Address to array Deep_Name_Of.
(Build_Adjust_Or_Finalize_Statements): Create the adjust or finalization
statements for an array type.
(Build_Adjust_Statements): Create the adjust statements for a record
type.
(Build_Cleanup_Statements): New routine. A procedure which given any
construct containing asynchronous calls, references to _master, or is a
task body, a task allocation or a protected body produces the necessary
runtime calls to clean up these constructs.
(Build_Exception_Handler): New routine.
(Build_Final_List): Removed.
(Build_Finalization_Collection): New routine. A core procedure which
creates a collection to service heap allocated controlled objects
associated with an access-to-controlled type.
(Build_Finalize_Statements): Create the finalization statements for a
record types.
(Build_Finalizer): New routine. A core procedure which given any
construct with declarations and/or statements detects all objects which
need any type of clean up (controlled objects, protected objects) and
generates all necessary code to clean up the said objects in the proper
order.
(Build_Finalizer_Call): New routine.
(Build_Initialize_Statements): Create the initialization statements for
an array type. The generated routine contains code to finalize partially
initialized arrays.
(Build_Object_Declarations): New routine.
(Build_Raise_Statement): New routine.
(Clean_Simple_Protected_Objects): Removed.
(Controller_Component): Removed.
(Enclosing_Function): New routine.
(Expand_Cleanup_Actions): Create a finalizer for a construct which has
either declarations or statements or both.
(Expand_N_Package_Body): Create a finalizer for a non-generic package.
(Expand_N_Package_Declaration): Create a finalizer for a non-generic
package.
(Find_Final_List): Removed.
(Global_Flist_Ref): Removed.
(In_Finalization_Root): Removed.
(Insert_Actions_In_Scope_Around): Determine the range of the transient
scope in terms of tree nodes. Process all transient variables within
that range.
(Make_Adjust_Call): Rewritten. There is no longer an attach call
generated after the adjust.
(Make_Attach_Call): Removed.
(Make_Call): New routine.
(Make_Clean): Removed.
(Make_Deep_Array_Body): Rewritten to simply invoke the appropriate
build routines.
(Make_Deep_Proc): Rewritten to generate the new profile signature used
in Deep routines.
(Make_Deep_Record_Body): Rewritten to simply invoke the appropriate
build routines.
(Make_Final_Call): Modified to simply create a call to either
Deep_Finalize or Finalize.
(Make_Finalize_Address_Body): New routine.
(Make_Finalize_Address_Stmts): New routine. A function which produces
TSS primitive Finalize_Address used in conjunction with heap allocated
controlled objects.
(Make_Handler_For_Ctrl_Operation): Add specialized code for .NET/JVM.
(Make_Init_Call): Rewritten. There is no longer an attach call
generated after initialization.
(Make_Local_Deep_Finalize): New routine.
(Make_Set_Finalize_Address_Ptr_Call): New routine.
(Make_Transient_Block): Remove the finalization list retrieval and
manipulation.
(Needs_Finalization): Moved to Exp_Util.
(Parent_Field_Type): New routine.
(Preprocess_Components): New routine.
(Process_Transient_Objects): New routine.
(Wrap_HSS_In_Block): New routine.
(Wrap_Transient_Declaration): Remove finalization list management and
controller insertion.
(Wrap_Transient_Expression): Code reformatting.
(Wrap_Transient_Statement): Code reformatting.
* exp_ch7.ads (Build_Final_List): Removed.
(Build_Finalization_Collection): New routine.
(Build_Raise_Statement): New routine.
(Controller_Component): Removed.
(Expand_Ctrl_Function_Call): Moved to Exp_Ch6.
(Find_Final_List): Removed.
(In_Finalization_Root): Removed.
(Is_Simple_Protected_Type): Update related comment.
(Make_Adjust_Call): New parameter profile and associated comments.
(Make_Attach_Call): Removed.
(Make_Final_Call): New parameter profile and associated comments.
(Make_Finalize_Address_Body): New routine.
(Make_Init_Call): New parameter profile and associated comments.
(Make_Local_Deep_Finalize): New routine.
(Make_Set_Finalize_Address_Ptr_Call): New routine.
(Needs_Finalization): Moved to Exp_Util.
* exp_ch9.adb (Add_Object_Pointer): Code reformatting.
(Expand_N_Protected_Body): Remove the handling of finalization lists.
(Find_Protection_Type): Moved to Exp_Util.
* exp_disp.adb: Remove with and use clauses for Exp_Ch7.
(Make_DT): Update sequence of dispatch table initialization. Remove the
initialization of field RC_Offset. Add initialization of field Needs_
Finalization.
* exp_intr.adb (Expand_Unc_Deallocation): Code reformatting.
Reimplement how an object is first finalized, then deallocated.
* exp_strm.adb (Build_Record_Or_Elementary_Input_Function):
Code reformatting.
* exp_tss.ads: Add special suffix for TSS primitive Finalize_Address.
Register TSS_Finalize_Address with type TSS_Names.
* exp_util.adb (Build_Allocate_Deallocate_Proc): New routine. This core
procedure provides the interface between an allocation / deallocation
and the support machinery in Ada.Finalization.Heap_Management.
(Find_Init_Call): Code reformatting.
(Find_Init_Call_In_List): Code reformatting.
(Find_Protection_Type): Moved from Exp_Ch9.
(Find_Prim_Op): Reimplement to add preference of recovered primitive.
(Has_Controlled_Coextensions): Removed.
(Has_Controlled_Objects): New routine.
(In_Library_Level_Package_Body): New routine.
(Insert_Action_After): New routine.
(Is_Finalizable_Transient): New routine. This predicate determines
whether an object declaration is one of the many variants of controlled
transients.
(Is_Null_Access_BIP_Func_Call): New routine.
(Is_Non_BIP_Func_Call): New routine.
(Is_Related_To_Func_Return): New routine.
(Needs_Finalization): Moved from Exp_Ch7.
* exp_util.ads (Build_Allocate_Deallocate_Proc): New routine.
(Find_Protection_Type): Moved from Exp_Ch9.
(Has_Controlled_Coextensions): Removed.
(Has_Controlled_Objects): New routine.
(In_Library_Level_Package_Body): New routine.
(Insert_Action_After): New routine.
(Is_Finalizable_Transient): New routine.
(Is_Null_Access_BIP_Func_Call): New routine.
(Is_Non_BIP_Func_Call): New routine.
(Is_Related_To_Func_Return): New routine.
(Needs_Finalization): Moved from Exp_ch7.
* expander.adb (Expand): Add a case for N_Free_Statement.
* freeze.adb (Freeze_All): Replace the generation of a finalization
list with a collection for access-to-controlled types.
(Freeze_Entity): Code reformatting.
(Freeze_Record_Type): Remove the freezing of a record controller
component.
(Freeze_Subprogram): Code reformatting.
* inline.adb (Cleanup_Scopes): Remove the reset of the scope
finalization list.
* lib-writ.adb (Write_Unit_Information): Output "PF" when a package
has a library-level finalizer.
* lib-writ.ads: Add "PF" to the sequence of unit attributes.
* a-filico.ads, a-filico.adb, s-finimp.ads, s-finimp.adb: Removed.
* Makefile.rtl: Remove a-filico and s-finimp from the list of object
files. Add a-fihema to the list of object files.
* par-ch4.adb:
Alphabetize the associations in type Is_Parameterless_Attribute.
* rtsfind.ads: Ada.Finalization_List.Controller and
System.Finalization_Implementation are no longer a GNAT unit.
Update the range of type Ada_Finalization_Child. Remove the following
recoverable entities:
RE_Attach_To_Final_List
RE_Deep_Tag_Attach
RE_Finalize_List
RE_Finalize_One
RE_Finalizable_Ptr_Ptr
RE_Global_Final_List
RE_Limited_Record_Controller
RE_List_Controller
RE_Move_Final_List
RE_Record_Controller
RE_Simple_List_Controller
Add the following recoverable entities:
RE_Add_Offset_To_Address
RE_Allocate
RE_Base_Pool
RE_Deallocate
RE_Exception_Identity
RE_Finalization_Collection
RE_Finalization_Collection_Ptr
RE_Needs_Finalization
RE_Save_Library_Occurrence
RE_Set_Finalize_Address_Ptr
RE_Set_Storage_Pool_Ptr
RE_Storage_Count
* sem_aggr.adb (Resolve_Record_Aggregate): Remove mention of
Name_uController.
* sem_aux.adb (First_Discriminant): Remove mention of Name_uController.
(First_Stored_Discriminant): Remove the mention of Name_uController.
* sem_aux.ads: Comment reformatting.
* sem_ch10.adb (Build_Chain): Signal the class-wide creation machinery
to redecorate an already existing class-wide type.
(Decorate_Tagged_Type): New parameter profile and associated comment.
Create a "shadow class-wide type" for a shadow entity.
* sem_ch11.adb (Analyze_Exception_Handlers): Remove the dubious setting
of the final chain along with the associated comment.
* sem_ch3.adb (Access_Type_Declaration): Add new local variable
Full_Desig and set it to the full view of the designated type.
Initialize the finalization collection to empty.
(Build_Derived_Record_Type): Alphabetize local variables. Code
reformatting.
(Collect_Fixed_Components): Remove the mention of Name_uController.
(Create_Constrained_Components): Remove the mention of Name_uController.
(Make_Class_Wide_Type): Add specialized code to redecorate an existing
class-wide type of a shadow entity.
(Process_Full_View): Update the machinery which marks type
Limited_Controlled's entity as limited.
* sem_ch4.adb (Analyze_One_Call): Code reformatting.
* sem_ch6.adb (Create_Extra_Formals): Do not generate a finalization
list, instead make a collection build-in-place formal.
* sem_ch8.adb (Analyze_Object_Renaming): Look at the available view of
a designated type in order to establish a match between the renaming
and the renamed entity.
(Find_Selected_Component): Add guard to prevent spurious exceptions
from being raised on .NET/JVM.
* sem_disp.adb (Check_Dispatching_Operation): Include Finalize_Address
to the list of primitive that need special processing. Update arrays
C_Names and D_Names.
(Replace_Types): Handle class-wide types.
* sem_elab.adb (Check_A_Call): Since Deep_Initialize now has a
different parameter profile, look at the first formal.
* sem_prag.adb: Remove with and use clauses for Exp_Ch7. Add with and
use clauses for Exp_Util.
* sem_res.adb: Remove with and use clauses for Elists.
(Propagate_Coextensions): Removed.
(Resolve_Allocator): Do not propagate the list of coextensions from one
allocator to another.
* sem_util.adb (Build_Actual_Subtype_Of_Component): Rename variable
Deaccessed_T to Desig_Typ.
(Enter_Name): Remove the mention of Name_uController.
(Gather_Components): Remove the mention of Name_uController.
(Incomplete_Or_Private_View): New routine.
(Is_Coextension_Root): Removed.
(Is_Fully_Initialized_Type): Remove the mention of Name_uController.
* sem_util.ads (Incomplete_Or_Private_View): New routine.
(Is_Coextension_Root): Removed.
* s-finroo.ads: Remove with clause for Ada.Unchecked_Conversion.
Controlled types are now derived from a null tagged record. Remove
types Finalizable_Ptr, Finalizable and Empty_Root_Controlled.
* sinfo.adb (Coextensions): Removed.
(Set_Coextensions): Removed.
* sinfo.ads: Remove Coextensions from the explanation of node fields
and its uses in nodes.
Update the field usage of N_Allocator.
(Coextensions): Removed along with its pragma Inline.
(Set_Coextensions): Removed along with its pragma Inline.
* snames.ads-tmpl: Remove names
Name_uClean
Name_uController
Name_uFinal_List
Name_uLocal_Final_List
Name_Finalization_Root
Name_Next
Name_Prev
Add names
Name_uFinalizer
Name_Finalize_Address
* s-pooglo.adb (Allocate): Add overriding indicator.
(Deallocate): Add overriding indicator.
(Storage_Size): Add overriding indicator.
* s-soflin.adb (Adafinal_NT): Invoke Finalize_Library_Objects rather
than Finalize_Global_List.
(Null_Finalize_Global_List): Removed.
(Save_Library_Occurrence): New routine.
* s-soflin.ads: Remove variable Finalize_Global_List along with its
initialization. Add variable Finalize_Library_Objects along with its
pragma Export. Add variables Library_Exception and
Library_Exception_Set along with their pragma Export.
(Null_Finalize_Global_List): Removed.
(Save_Library_Occurrence): New routine.
* s-tassta.adb (Finalize_Global_Tasks): Call Finalize_Library_Objects
rather than Finalize_Global_List.
* tbuild.adb (Unchecked_Convert_To): Capture and set the parent field
of the constructed node.
From-SVN: r177275
|
|
2011-08-02 Ed Schonberg <schonberg@adacore.com>
* exp_ch5.adb (Expand_N_Assignment_Statement): under restriction
No_Dispatching_Calls, do not look for the Assign primitive, because
predefined primitives are not created in this case.
2011-08-02 Bob Duff <duff@adacore.com>
* stylesw.ads: Minor comment fixes.
2011-08-02 Robert Dewar <dewar@adacore.com>
* freeze.adb (Add_To_Result): New procedure.
2011-08-02 Jose Ruiz <ruiz@adacore.com>
* exp_attr.adb (Find_Stream_Subprogram): When using a configurable run
time, if the specific run-time routines for handling streams of strings
are not available, use the default mechanism.
2011-08-02 Arnaud Charlet <charlet@adacore.com>
* s-regpat.ads: Fix typo.
2011-08-02 Vincent Celier <celier@adacore.com>
* prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config is
not null, call it to create the in memory config project file without
parsing an existing default config project file.
2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
* atree.adb (Allocate_Initialize_Node): Remove useless temporaries.
2011-08-02 Ed Schonberg <schonberg@adacore.com>
* sem_elim.adb: an abstract subprogram does not need an eliminate
pragma for its descendant to be eliminable.
2011-08-02 Ed Falis <falis@adacore.com>
* init.c: revert to handling before previous checkin for VxWorks
* s-intman-vxworks.adb: delete unnecessary declarations related to
using Ada interrupt facilities for handling signals.
Delete Initialize_Interrupts. Use __gnat_install_handler instead.
* s-intman-vxworks.ads: Import __gnat_install_handler as
Initialize_Interrupts.
* s-taprop-vxworks.adb: Delete Signal_Mask.
(Abort_Handler): change construction of mask to unblock exception
signals.
From-SVN: r177130
|
|
2011-08-02 Ed Schonberg <schonberg@adacore.com>
* atree.h, atree.ads, atree.adb: New subprograms to manipulate Elist5.
* par_ch8.adb (P_Use_Type): initialize Used_Operations for node.
* sinfo.ads, sinfo.adb (Used_Operations): new attribute of
use_type_clauses, to handle more efficiently use_type and use_all_type
constructs.
* sem_ch8.adb: Rewrite Use_One_Type and End_Use_Type to handle the
Ada2012 Use_All_Type clause.
(Use_Class_Wide_Operations): new procedure.
From-SVN: r177090
|
|
2011-08-01 Yannick Moy <moy@adacore.com>
* sem_util.ads, sem_util.adb, par.adb, par_util.adb
(Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
procedures out of these packages.
* errout.ads, errout.adb
(Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
procedures in of this package
(Formal_Error_Msg_NE): new procedure for wrapper on Error_Msg_NE
* par-ch5.adb (Parse_Decls_Begin_End): issue syntax error in SPARK mode
on misplaced later vs initial declarations, like in Ada 83
* sem_attr.adb (Processing for Analyze_Attribute): issue error in
formal mode on attribute of private type whose full type declaration
is not visible
* sem_ch3.adb (Analyze_Declarations): issue error in formal mode on a
package declaration inside a package specification
(Analyze_Full_Type_Declaration): issue error in formal mode on
controlled type or discriminant type
* sem_ch6.adb (Analyze_Subprogram_Specification): only issue error on
user-defined operator means that it should come from the source
(New_Overloaded_Entity): issue error in formal mode on overloaded
entity.
* sem_ch6.ads, sem_ch13.ads: typos in comments.
2011-08-01 Thomas Quinot <quinot@adacore.com>
* atree.adb: Minor reformatting.
* checks.adb: Minor reformatting.
From-SVN: r177052
|
|
2011-08-01 Vincent Celier <celier@adacore.com>
* s-parame-vms-ia64.ads: Fix typo in comment
Minor reformatting
* s-parame-vms-restrict.ads: Removed, unused.
2011-08-01 Javier Miranda <miranda@adacore.com>
* exp_ch3.adb
(Is_Variable_Size_Array): Remove local subprogram Is_Constant_Bound.
* sem_ch3.adb
(Constrain_Index): Remove side effects in the evaluation of the bounds.
* sem_ch3.ads, sem_ch3.adb
(Is_Constant_Bound): New extended version of the subprogram that was
previously located inside function Exp_Ch3.Is_Variable_Size_Array.
Moved here since it is shared by routines of sem_ch3 and exp_ch3.
* sem_aux.ads (Constant_Value): Fix typo in comment.
* checks.adb (Generate_Index_Checks): New implementation which, for
array objects with constant bounds, generates the runtime check
referencing the bounds of the array type. For other cases this routine
provides its previous behavior obtaining such values from the array
object.
* sem_res.adb (Set_Slice_Subtype): Link a copied range subtree with its
parent type.
* atree.adb (New_Copy): Reset flag Is_Overloaded in the new copy since
we cannot have semantic interpretations of the new node.
From-SVN: r177051
|
|
2010-10-22 Robert Dewar <dewar@adacore.com>
* a-except-2005.adb (Rmsg_18): New message text.
* a-except.adb (Rmsg_18): New message text.
* atree.adb (List25): New function
(Set_List25): New procedure
* atree.ads (List25): New function
(Set_List25): New procedure
* einfo.adb (Static_Predicate): Is now a list
(OK_To_Reference): Present in all entities
* einfo.ads (Static_Predicate): Is now a list
(OK_To_Reference): Applies to all entities
* exp_ch13.adb (Build_Predicate_Function): Moved to Sem_Ch13
* sem_attr.adb (Bad_Attribute_For_Predicate): Call
Bad_Predicated_Subtype_Use.
* sem_case.ads, sem_case.adb: Major surgery to deal with predicated
subtype case.
* sem_ch13.adb (Build_Predicate_Function): Moved from Exp_Ch13 to
Sem_Ch13.
(Build_Static_Predicate): New procedure handles static predicates.
* sem_ch3.adb (Analyze_Subtype_Declaration): Delay freeze on subtype
with no constraint if ancestor subtype has predicates.
(Analyze_Variant_Part): New calling sequence for Analyze_Choices
* sem_ch4.adb (Junk_Operand): Don't complain about OK_To_Reference
entity.
(Analyze_Case_Expression): New calling sequence for Analyze_Choices
* sem_ch5.adb (Analyze_Case_Statement): New calling sequence for
Analyze_Choices.
* sem_util.ads, sem_util.adb (Bad_Predicated_Subtype_Use): New procedure
* types.ads (PE_Bad_Predicated_Generic_Type): Replaces
PE_Bad_Attribute_For_Predicate.
* atree.h: Add definition of List25.
From-SVN: r165828
|
|
2010-10-19 Tristan Gingold <gingold@adacore.com>
* init.c: On Alpha/VMS, only adjust PC for HPARITH.
2010-10-19 Tristan Gingold <gingold@adacore.com>
* sem_attr.adb (Eval_Attribute): Handle Attribute_Ref, which can be
evaluated on VMS.
2010-10-19 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Check_Generic_Child_Unit): Handle properly the case of
an instantiation of a renaming of the implicit generic child that
appears within an instance of its parent.
2010-10-19 Thomas Quinot <quinot@adacore.com>
* exp_ch9.adb: Minor reformatting.
* einfo.adb, einfo.ads, atree.adb, atree.ads, exp_dist.adb, atree.h:
(Referenced_Object): Remove unused entity attribute.
(Direct_Primitive_Operations): Move to Elist10, this is set for all
tagged types, including synchronous ones, so can't use field15 which is
used as Storage_Size_Variable for task types and Entry_Bodies_Array for
protected types.
(Add_RACW_Primitive_Declarations_And_Bodies): Remove bogus guard
against Concurrent_Types (we must handle the case of a RACW designating
a class-wide private synchronous type).
Use Direct_Primitive_Operations, not Primitive_Operations, since we
really want the former.
2010-10-19 Bob Duff <duff@adacore.com>
* sem_ch8.adb (Pop_Scope): Change "return;" to "raise Program_Error;".
2010-10-19 Javier Miranda <miranda@adacore.com>
* exp_ch4.adb (Expand_Set_Membership.Make_Cond): Add missing support
for N_Range nodes.
From-SVN: r165689
|
|
2010-10-12 Robert Dewar <dewar@adacore.com>
* aspects.ads, aspects.adb (Move_Aspects): New procedure.
* atree.ads, atree.adb: (New_Copy): Does not copy aspect specifications
* sinfo.ads, par-ch3.adb, par-ch6.adb, par-ch7.adb, par-ch9.adb,
par-endh.adb, par-ch13.adb, par-ch12.adb: Modify grammar to include
aspect specifications.
Recognize aspect specifications for all cases
* par.adb: Recognize aspect specifications for all cases
* sem_ch12.ads, sem_ch12.adb (Copy_Generic_Node): Copies aspect
specifications.
* sem_ch3.adb (Analyze_Subtype_Declaration): Improve patch to freeze
generic actual types (was missing some guards before).
* sem_ch9.adb (Analyze_Single_Protected_Declaration): Copy aspects to
generated object
(Analyze_Single_Task_Declaration): Copy aspects to generated object
2010-10-12 Eric Botcazou <ebotcazou@adacore.com>
* usage.adb (usage): Adjust line for -gnatn switch.
2010-10-12 Robert Dewar <dewar@adacore.com>
* sem_attr.adb (Eval_Attribute): Only leave change active for aspect
spec case.
2010-10-12 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Analyze_Subprogram_Declaration): If this is a
declaration of a null procedure resolve the types of the profile of the
generated null body now.
From-SVN: r165353
|
|
2010-10-11 Robert Dewar <dewar@adacore.com>
* g-htable.ads (Get_First): New procedural version for Simple_HTable
(Get_Next): New procedural version for Simple_HTable
* s-htable.adb (Get_First): New procedural version for Simple_HTable
(Get_Next): New procedural version for Simple_HTable
* s-htable.ads (Get_First): New procedural version for Simple_HTable
(Get_Next): New procedural version for Simple_HTable
2010-10-11 Ed Schonberg <schonberg@adacore.com>
* sem_aggr.adb (Propagate_Discriminants): To gather the components of a
variant part, use the association list of the subaggregate, which
already includes the values of the needed discriminants.
2010-10-11 Robert Dewar <dewar@adacore.com>
* aspects.ads, aspects.adb: Changes to accomodate aspect delay
(Tree_Write): New procedure.
* atree.ads, atree.adb: Flag3 is now Has_Aspects and applies to all
nodes.
* atree.h: Flag3 is now Has_Aspects and applies to all nodes
* debug.adb: Add debug flag gnatd.A
* einfo.adb (Has_Delayed_Aspects): New flag
(Get_Rep_Item_For_Entity): New function
* einfo.ads (Has_Delayed_Aspects): New flag
(Get_Rep_Item_For_Entity): New function
* exp_ch13.adb (Expand_N_Freeze_Entity): Insert delayed aspects into
tree.
* exp_ch3.adb, exp_ch6.adb, exp_ch9.adb, exp_disp.adb: New calling
sequence for Freeze_Entity.
* freeze.ads, freeze.adb (Freeze_Entity): Takes node rather than source
ptr. All calls are changed to this new interface.
(Freeze_And_Append): Same change
(Freeze_Entity): Evaluate deferred aspects
* sem_attr.adb: New calling sequence for Freeze_Entity
(Eval_Attribute): Don't try to evaluate attributes of unfrozen types
when we are in spec expression preanalysis mode.
* sem_ch10.adb: New calling sequence for Freeze_Entity
* sem_ch11.adb: Simplify analysis of aspect specifications now that the
flag Has_Aspects applies to all nodes (no need to save aspects).
* sem_ch12.adb: Simplify analysis of aspect specifications now that the
flag Has_Aspects applies to all nodes (no need to save aspects).
* sem_ch13.adb (Analyze_Aspect_Specifications): Major rewrite to
accomodate delaying aspect evaluation to the freeze point.
(Duplicate_Clause): Simplify using Get_Rep_Item_For_Entity, and also
accomodate delayed aspects.
(Rep_Item_Too_Late): Deal with delayed aspects case
* sem_ch13.ads (Rep_Item_Too_Late): Document handling of delayed aspects
* sem_ch3.adb (Analyze_Subtype_Declaration): Make sure that generic
actual types are properly frozen (this is needed because of the new
check in Eval_Attribute that declines to evaluate attributes
for unfrozen types).
Simplify analysis of aspect specifications now that the flag
Has_Aspects applies to all nodes (no need to save aspects).
* sem_ch3.ads (Preanalyze_Spec_Expression): Note use for delayed aspects
* sem_ch5.adb: Simplify analysis of aspect specifications now that the
flag Has_Aspects applies to all nodes (no need to save aspects).
New calling sequence for Freeze_Entity.
* sem_ch9.adb, sem_ch7.adb, sem_ch6.adb: Simplify analysis of aspect
specifications now that the flag Has_Aspects applies to all nodes
(no need to save aspects).
New calling sequence for Freeze_Entity
* sem_prag.adb (Check_Duplicate_Pragma): Simplify using
Get_Rep_Item_For_Entity
(Get_Pragma_Arg): Moved to Sinfo
* sinfo.ads, sinfo.adb (Aspect_Rep_Item_: New field
(Is_Delayed_Aspect): New flag
(Next_Rep_Item): Document use for aspects
(Get_Pragma_Arg): Moved here from Sem_Prag
* sprint.adb (Sprint_Aspect_Specifications): Now called after semicolon
is output and removes semicolon (simplifies interface).
(Sprint_Node_Actual): Simplify handling of aspects now that Has_Aspects
applies to any node.
* tree_gen.adb: Write contents of Aspect_Specifications hash table
* tree_in.adb: Read and initialize Aspect_Specifications hash table
* treepr.adb (Print_Node): Print Has_Aspects flag
(Print_Node): Print Aspect_Specifications in Has_Aspects set
* xtreeprs.adb: Remove obsolete references to Flag1,2,3
From-SVN: r165300
|
|
2010-10-11 Arnaud Charlet <charlet@adacore.com>
* sem_prag.adb (Check_Interrupt_Or_Attach_Handler): Do not emit error
for AI05-0033 in CodePeer mode.
2010-10-11 Robert Dewar <dewar@adacore.com>
* atree.h, atree.ads, atree.adb (Flag3): New flag (replaces Unused_1)
* csinfo.adb: Aspect_Specifications is a new special field
* einfo.adb (Flag3): New unused flag
* exp_util.adb (Insert_Actions): Add processing for
N_Aspect_Specification.
* sem.adb: Add entry for N_Aspect_Specification.
* sinfo.ads, sinfo.adb (N_Aspect_Specification): New node
(Has_Aspect_Specifications): New flag
(Permits_Aspect_Specifications): New function
(Aspect_Specifications): New function
(Set_Aspect_Specifications): New procedure
* sprint.adb (Sprint_Node): Put N_At_Clause in proper alpha order
(Sprint_Node): Add dummy entry for N_Aspect_Specification
* treepr.adb (Flag3): New flag to be listed
2010-10-11 Vincent Celier <celier@adacore.com>
* adaint.c: Minor reformatting.
From-SVN: r165279
|
|
2010-10-11 Robert Dewar <dewar@adacore.com>
* sem_ch3.adb, sem_aux.adb, sem_ch6.adb: Minor reformatting
2010-10-11 Robert Dewar <dewar@adacore.com>
* einfo.adb, atree.h, atree.ads, atree.adb: Define seven new flags
Flag248-Flag254. Define new field Field29.
From-SVN: r165271
|
|
2010-09-10 Jose Ruiz <ruiz@adacore.com>
* exp_cg.adb (Is_Predefined_Dispatching_Operation): Add the "__" scope
separator when trying the pattern matching to detect predefined
primitive operations.
2010-09-10 Robert Dewar <dewar@adacore.com>
* bindgen.adb, atree.adb: Minor reformatting.
2010-09-10 Ben Brosgol <brosgol@adacore.com>
* ug_words, gnat_ugn.texi: Revised "Transitioning to 64-Bit GNAT for
OpenVMS" section.
From-SVN: r164175
|
|
2010-06-23 Javier Miranda <miranda@adacore.com>
* atree.ads (Set_Reporting_Proc): New subprogram.
* atree.adb: Remove dependency on packages Opt and SCIL_LL.
(Allocate_Initialize_Node, Replace, Rewrite): Replace direct calls
to routines of package Scil_ll by indirect call to the registered
subprogram.
(Set_Reporting_Proc): New subprogram. Used to register a subprogram
that is invoked when a node is allocated, replaced or rewritten.
* scil_ll.adb (Copy_SCIL_Node): New routine that takes care of copying
the SCIL node. Used as argument for Set_Reporting_Proc.
(Initialize): Register Copy_SCIL_Node as the reporting routine that
is invoked by atree.
2010-06-23 Thomas Quinot <quinot@adacore.com>
* sem_ch3.ads: Minor reformatting.
2010-06-23 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Analyze_Package_Instantiation): In CodePeer mode,
always analyze the generic body and instance, because it may be needed
downstream.
(Mark_Context): Prepend the with clauses for needed generic units, so
they appear in a better order for CodePeer.
* sem_util.adb, sem_util.ads: Prototype code for AI05-0144.
2010-06-23 Emmanuel Briot <briot@adacore.com>
* prj.ads, prj-nmsc.adb (Error_Or_Warning): New subprogram.
From-SVN: r161252
|
|
2010-06-23 Robert Dewar <dewar@adacore.com>
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Properly handle
checking returns in generic case.
(Check_Missing_Return): New procedure.
2010-06-23 Robert Dewar <dewar@adacore.com>
* bindgen.adb, switch-b.adb: Minor reformatting.
2010-06-23 Javier Miranda <miranda@adacore.com>
* frontend.adb (Frontend): Add call to initialize the new package
SCIL_LL.
* exp_ch7.adb (Wrap_Transient_Expression): Remove call to
Adjust_SCIL_Node.
(Wrap_Transient_Statement): Remove call to Adjust_SCIL_Node.
* sem_ch5.adb (Analyze_Iteration_Scheme.Process_Bounds): Remove call to
Adjust_SCIL_Node.
* exp_util.adb (Insert_Actions): Remove code for
N_SCIL_Dispatch_Table_Object_Init and N_SCIL_Tag_Init nodes.
(Remove_Side_Effects): Remove calls to Adjust_SCIL_Node.
* sinfo.adb (SCIL_Entity, SCIL_Tag_Value): Remove checks on
N_SCIL_Tag_Init and N_SCIL_Dispatch_Table_Object_Init in the assertion.
(SCIL_Related_Node, Set_SCIL_Related_Node): Removed.
* sinfo.ads (SCIL_Related_Node): Field removed.
(N_SCIL_Dispatch_Table_Object_Init): Node removed.
(N_SCIL_Tag_Init): Node removed.
* sem_scil.ads, sem_scil.adb (Adjust_SCIL_Node): Removed.
(Check_SCIL_Node): New implementation.
(Find_SCIL_Node): Removed.
* sem.adb (Analyze): Remove management of
N_SCIL_Dispatch_Table_Object_Init and N_SCIL_Tag_Init nodes.
* sem_util.adb (Insert_Explicit_Dereference): Remove call to
Adjust_SCIL_Node.
* exp_ch4.adb (Expand_N_In): Code cleanup: remove call to
Set_SCIL_Related_Node and avoid adding the SCIL node before the
referenced node using Insert_Action because this is not longer required.
(Expand_Short_Circuit_Operator): Remove call to SCIL node.
* exp_ch6.adb (Expand_Call): Remove call to Adjust_SCIL_Node.
* sem_ch4.adb (Analyze_Type_Conversion): Remove call to Adjust_SCIL_Node
* exp_disp.adb (Expand_Dispatching_Call): Minor code reorganization
because we no longer require to generate the SCIL node before the call.
(Make_DT): Remove generation of SCI_Dispatch_Table_Object_Init node.
Remove calls to Set_SCIL_Related_Node and avoid adding the SCIL
nodes before the referenced node using Insert_Action because this
is not longer required.
* atree.adb (Allocate_Initialize_Node, Replace, Rewrite): Add call to
update the SCIL_Node field.
* sprint.adb (Sprint_Node_Actual): Remove code for
N_SCIL_Dispatch_Table_Object_Init and N_SCIL_Tag_Init nodes.
* treepr.adb (Print_Node): Print the SCIL node field (if available).
* exp_ch3.adb (Build_Init_Procedure): Remove generation of
SCIL_Tag_Init nodes.
* scil_ll.ads, scil_ll.adb: New files.
From-SVN: r161244
|
|
2010-06-22 Vincent Celier <celier@adacore.com>
* prj-nmsc.adb (Find_Sources): When a source from a multi-unit file is
found, check if it's path has aready been found, whatever its index.
2010-06-22 Robert Dewar <dewar@adacore.com>
* atree.adb, gnatbind.adb: Minor reformatting.
Minor code reorganization.
From-SVN: r161131
|
|
2010-06-21 Robert Dewar <dewar@adacore.com>
* exp_ch4.adb (Expand_N_Conditional_Expression): Fold if condition
known at compile time.
2010-06-21 Gary Dismukes <dismukes@adacore.com>
* atree.adb: Fix comment typo.
2010-06-21 Ed Schonberg <schonberg@adacore.com>
* sem_eval.adb (Test_Ambiguous_Operator): New procedure to check
whether a universal arithmetic expression in a conversion, which is
rewritten from a function call with an expanded name, is ambiguous.
2010-06-21 Vincent Celier <celier@adacore.com>
* prj-nmsc.adb (Name_Location): New Boolean component Listed, to record
source files in specified list of sources.
(Check_Package_Naming): Remove out parameters Bodies and Specs, as they
are never used.
(Add_Source): Set the Location of the new source
(Process_Exceptions_File_Based): Call Add_Source with the Location
(Get_Sources_From_File): If an exception is found, set its Listed to
True
(Find_Sources): When Source_Files is specified, if an exception is
found, set its Listed to True. Remove any exception that is not in a
specified list of sources.
* prj.ads (Source_Data): New component Location
2010-06-21 Vincent Celier <celier@adacore.com>
* gnatbind.adb (Closure_Sources): Global table, moved from block.
From-SVN: r161088
|
|
2010-06-21 Thomas Quinot <quinot@adacore.com>
* sem_res.adb: Minor reformatting.
* atree.adb: New debugging hook "rr" for node rewrites.
From-SVN: r161087
|
|
2010-06-17 Robert Dewar <dewar@adacore.com>
* switch-c.ads, switch-c.adb, sem_ch13.adb: Minor reformatting.
* sem_ch12.adb: Add pragmas Assert and Check to previous change.
2010-06-17 Gary Dismukes <dismukes@adacore.com>
* layout.adb (Layout_Type): Broaden test for setting an array type's
Component_Size to include all scalar types, not just discrete types
(components of real types were missed).
* sem_ch3.adb (Constrain_Index): Add missing setting of First_Literal
on the itype created for an index (consistent with Make_Index and
avoids possible Assert_Failures).
2010-06-17 Robert Dewar <dewar@adacore.com>
* atree.ads, atree.adb: Add 6-parameter version of Ekind_In
* einfo.adb: Minor code reformatting (use Ekind_In)
From-SVN: r160887
|
|
2010-06-14 Robert Dewar <dewar@adacore.com>
* opt.ads (Check_Policy_List): Add some clarifying comments
* sem_prag.adb (Analyze_Pragma, case Check): Set Pragma_Enabled flag
on rewritten Assert pragma.
2010-06-14 Gary Dismukes <dismukes@adacore.com>
* sem_ch6.adb (Check_Overriding_Indicator): Add a special check for
controlled operations, so that they will be treated as overriding even
if the overridden subprogram is marked Is_Hidden, as long as the
overridden subprogram's parent subprogram is not hidden.
2010-06-14 Robert Dewar <dewar@adacore.com>
* debug.adb: Entry for gnatw.d no longer specific for while loops
* einfo.adb (First_Exit_Statement): New attribute for E_Loop
* einfo.ads (First_Exit_Statement): New attribute for E_Loop
* sem_ch5.adb (Analyze_Loop_Statement): Check_Infinite_Loop_Warning has
new calling sequence to include test for EXIT WHEN.
(Analyze_Exit_Statement): Chain EXIT statement into exit statement chain
* sem_warn.ads, sem_warn.adb (Check_Infinite_Loop_Warning): Now handles
EXIT WHEN case.
* sinfo.adb (Next_Exit_Statement): New attribute of N_Exit_Statement
node.
* sinfo.ads (N_Pragma): Correct comment on Sloc field (points to
PRAGMA, not to pragma identifier).
(Next_Exit_Statement): New attribute of N_Exit_Statement node
2010-06-14 Robert Dewar <dewar@adacore.com>
* sem_res.adb (Resolve_Short_Circuit): Fix sloc of "assertion/check
would fail" msg.
2010-06-14 Robert Dewar <dewar@adacore.com>
* par-ch2.adb (Scan_Pragma_Argument_Association): Clarify message for
missing pragma argument identifier.
2010-06-14 Robert Dewar <dewar@adacore.com>
* atree.ads, atree.adb (Ekind_In): New functions
2010-06-14 Robert Dewar <dewar@adacore.com>
* exp_ch4.adb (Expand_N_Op_Expon): Optimize 2**N in stand alone context
2010-06-14 Robert Dewar <dewar@adacore.com>
* usage.adb (Usage): Redo documentation of -gnatwa.
From-SVN: r160743
|
|
2009-07-13 Thomas Quinot <quinot@adacore.com>
* s-oscons-tmplt.c: Add comment.
2009-07-13 Robert Dewar <dewar@adacore.com>
* sinfo.adb, sinfo.ads, sem_util.adb, atree.adb, atree.ads: Minor
reformatting. Minor code reorganization (add 9 argument version of
Nkind_In).
* impunit.adb: Remove s-os_lib from list of system extensions.
* sem_util.ads: Minor reformatting
* output.adb: Add warnings off/on around System.OS_Lib.
From-SVN: r149583
|
|
2009-04-17 Eric Botcazou <ebotcazou@adacore.com>
* exp_ch4.adb (Expand_Concatenation): Do not use calls at -Os.
2009-04-17 Pascal Obry <obry@adacore.com>
* mingw32.h: Add S2WSC and WS2SC macros to convert to/from
CurrentCodePage.
* adaint.h: Encoding_Unspecified is now defined. Corresponds to the
value when no encoding form paramter is set on Text_IO services.
* adaint.c: CurrentCodePage new variable on Windows.
Use new macros S2WSC and WS2SC instead of the UTF-8 oriented
ones.
* mkdir.c: Use new macros S2WSC and WS2SC instead of the UTF-8 oriented
ones.
* initialize.c: Initialize CurrentCodePage depending on GNAT_CODE_PAGE
environment variable value. Default is UTF-8.
* s-crtl.ads: Filename_Encoding add Unspecified in the enumeration type.
fopen and freopen encoding parameter is now set to Unspecified.
The default value is in this case UTF-8 (as it was before) but
use the new macros that convert to/from the code page set
at runtime (CurrentCodePage).
* s-fileio.adb: When no encoding specified use Unspecified value.
2009-04-17 Ed Schonberg <schonberg@adacore.com>
* atree.adb, atree.ads: Remove dead code.
From-SVN: r146235
|
|
2009-04-17 Ed Schonberg <schonberg@adacore.com>
* atree.ads, atree.adb: Move New_Copy_Tree.to sem_util.
* nlists.ads, nlists.adb: Move New_Copy_List to sem_util.
* lib-load.adb: Use Copy_Separate_Tree rather than New_Copy_Tree
* sem_util.ads, sem_util.adb: New_Copy_Tree and New_Copy_List belong in
semantic units, because the handling of itypes in the copied tree
requires semantic information that does not belong in atree.
2009-04-17 Robert Dewar <dewar@adacore.com>
* par-ch6.adb: Minor reformatting
* prj.adb: Minor reformatting
From-SVN: r146230
|
|
From-SVN: r145841
|
|
2009-04-09 Javier Miranda <miranda@adacore.com>
* exp_disp.adb (Export_DT): Addition of a new argument (Index); used to
retrieve from the Dispatch_Table_Wrappers list the external name.
Addition of documentation.
(Make_Secondary_DT): Addition of a new argument (Suffix_Index) that is
used to export secondary dispatch tables (in the previous version of
the frontend only primary dispatch tables were exported). Addition of
documentation.
(Import_DT): New subprogram (internal of Make_Tags). Used to import a
dispatch table of a given tagged type.
(Make_Tags): Modified to import secondary dispatch tables.
* sem_ch3.adb (Analyze_Object_Declaration): Code cleanup.
(Constant_Redeclaration): Code cleanup.
* einfo.ads (Dispatch_Table_Wrapper): Renamed to
Dispatch_Table_Wrappers. Update documentation.
* einfo.adb (Dispatch_Table_Wrapper, Set_Dispatch_Table_Wrapper):
Renamed to Dispatch_Table_Wrappers.
* sem_util.adb (Collect_Interface_Components): Improve handling of
private types.
* atree.ads (Elist26, Set_Elist26): New subprograms
* atree.adb (Elist26, Set_Elist26): New subprograms
From-SVN: r145811
|
|
2008-04-08 Robert Dewar <dewar@adacore.com>
Bob Duff <duff@adacore.com>
* impunit.adb: Add Interfaces.Java.JNI, System.Strings.Stream_Ops,
Ada.Calendar.Conversions, Ada.Dispatching.EDF, GNAT.Time_Stamp
* s-intman-mingw.adb: Minor comment fix -- spell 'explicitly' correctly
* g-trasym.adb: Minor comment fix -- spell 'explicitly' correctly
* g-trasym.ads: Minor comment improvements
* s-stalib.adb: Minor comment fix -- spell 'explicitly' correctly
* a-sequio.ads, a-direio.ads: improve message for tagged type
* a-strunb.ads: Minor reformatting
* a-tifiio.adb: Minor reformatting
* atree.adb (Fix_Parents): Use clearer names for formals
Cleanup and simplify code
Use named notation in calls
* exp_fixd.adb (Do_Multiply_Fixed_Universal): Use named notation in
confusing calls
* uintp.adb: Used named notation for some confusing calls
* bindusg.adb: Minor change in one line of output
* cstand.adb: Minor reformatting of src representation of Standard
* a-assert.ads: Add comment.
* g-decstr.adb: Fix bad indentation
* expander.ads, expander.adb: Code clean up.
* sem_dist.ads, sem_type.adb, g-dirope.ads, g-exctra.ads, s-valwch.adb,
s-wchstw.adb, targparm.ads, widechar.adb: Minor reformatting
* i-cstrin.adb: Fix casing error in formal parameter name in call
From-SVN: r134063
|
|
2008-03-26 Robert Dewar <dewar@adacore.com>
* a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
s-tasloc.adb: Minor reformatting.
Update comments.
Remove "used for" sections from comments.
From-SVN: r133546
|
|
resulting tail recursion by hand.
2007-12-19 Bob Duff <duff@adacore.com>
* atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
the resulting tail recursion by hand. This prevents running out of
memory on deeply nested concatenations, since Field2 is where the left
operand of concatenations is stored.
Fix bug (was returning OK_Orig in some cases). Fix return subtype to
clarify that it can only return OK or Abandon.
* sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
operand by iteration, in order to avoid running out of memory on
deeply-nested concatenations. Use the Parent pointer to get back up the
tree.
(Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
Resolve_Op_Concat_Rest): New procedures split out of
Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
clearer.
* checks.adb (Remove_Checks): Use Traverse_Proc instead of
Traverse_Func, because the former already takes care of discarding the
result.
* errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
because the former already takes care of discarding the result.
(Remove_Warning_Messages): Use appropriate subtype for Status and
Discard
From-SVN: r131070
|
|
2007-12-06 Robert Dewar <dewar@adacore.com>
* atree.adb (Flag231..Flag247): New functions
(Set_Flag231..Set_Flag247): New procedures
(Basic_Set_Convention): Rename Set_Convention to be
Basic_Set_Convention
(Nkind_In): New functions
Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
* exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
instead
of obsolete function Is_Always_Inlined
(Register_Predefined_DT_Entry): Initialize slots of the second
secondary dispatch table.
Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
(Expand_N_Function_Call): Remove special provision for stack checking.
* exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
Include _Disp_Requeue in the list of predefined operations.
(Find_Interface_ADT): Modified to fulfill the new specification.
Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
* par-ch4.adb, nlists.ads, nlists.adb:
Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
* sinfo.ads, sinfo.adb: (Nkind_In): New functions
Fix location of flag for unrecognized pragma message
* sem_ch7.adb: Use Nkind_In
From-SVN: r130820
|
|
2007-10-15 Thomas Quinot <quinot@adacore.com>
* g-soccon-vms.ads: Fix value of MSG_WAITALL.
* gen-soccon.c:
Update documentation to note that OpenVMS 8.3 or later must be used
to generate g-soccon-vms.ads.
* atree.adb: Add ??? comment
* exp_util.adb: Minor reformatting.
Add ??? comment in Kill_Dead_Code.
From-SVN: r129342
|
|
is visited...
2007-08-14 Ed Schonberg <schonberg@adacore.com>
Robert Dewar <dewar@adacore.com>
* atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
itype is visited, make an entry into table to link associated node and
new itype.
Add comments and correct harmless error in Build_NCT_Hash_Tables
(Array_Aggr_Subtype): Associate each itype created for an index type to
the corresponding range construct, and not to the aggregate itself. to
maintain a one-to-one correspondence between itype and its associated
node, to prevent errors when complex expression is copied.
Fix mishandling of multiple levels of parens
* sem_aggr.adb: Create a limited view of an incomplete type, to make
treatment of limited views uniform for all visible declarations in a
limited_withed package.
(New_Copy_Tree): If hash table is being used and itype is visited,
make an entry into table to link associated node and new itype.
(Resolve_Record_Aggregate): Do not add an others box association for a
discriminated record component that has only discriminants, when there
is a box association for the component itself.
* par-ch4.adb: Fix mishandling of multiple levels of parens
From-SVN: r127412
|
|
package Types to package Namet.
2007-04-20 Vincent Celier <celier@adacore.com>
Robert Dewar <dewar@adacore.com>
* bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb,
butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads,
fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads,
makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb,
par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb,
prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads,
prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb,
sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb,
uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
ali.ads, ali.adb:
Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
package Namet. Make File_Name_Type and Unit_Name_Type types derived from
Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
Use variables of types File_Name_Type and Unit_Name_Type in error
messages.
(Get_Name): Add parameter Ignore_Special, and set it reading file name
(New_Copy): When debugging the compiler, call New_Node_Debugging_Output
here.
Define flags Flag217-Flag230 with associated subprograms
(Flag_Word5): New record type.
(Flag_Word5_Ptr): New access type.
(To_Flag_Word5): New unchecked conversion.
(To_Flag_Word5_Ptr): Likewise.
(Flag216): New function.
(Set_Flag216): New procedure.
From-SVN: r125377
|
|
in a call...
2007-04-06 Ed Schonberg <schonberg@adacore.com>
Bob Duff <duff@adacore.com>
* atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
copying a parameter list in a call, set properly the First_Named_Formal
and Next_Named_Formal fields in the new list and in the enclosing call.
(Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
names, to ease typing in the debugger. Improve comments.
(Watch_Node): New variable, intended to be set in the debugger.
(New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
called when the watched node is created.
(New_Node_Debugging_Output): Combined version of local procedures
New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
with a parameter so that conditional breakpoints like "if Node = 12345"
work.
(New_Node, New_Entity): Call the global New_Node_Debugging_Output.
Add Elist1 function
From-SVN: r123553
|
|
2006-10-31 Robert Dewar <dewar@adacore.com>
Thomas Quinot <quinot@adacore.com>
Arnaud Charlet <charlet@adacore.com>
* fmap.adb: Put routines in alpha order
* g-boumai.ads: Remove redundant 'in' keywords
* g-cgi.adb: Minor reformatting
* g-cgi.ads: Remove redundant 'in' keywords
* get_targ.adb: Put routines in alpha order
* prj-attr.ads: Minor reformatting
* s-atacco.ads: Minor reformatting
* scn.adb: Put routines in alpha order
* sinput-l.adb: Minor comment fix
* sinput-p.adb: Minor comment fix
* s-maccod.ads: Minor reformatting
* s-memory.adb: Minor reformatting
* s-htable.adb: Fix typo in comment.
* s-secsta.adb: Minor comment update.
* s-soflin.adb: Minor reformatting
* s-stoele.ads:
Add comment about odd qualification in Storage_Offset declaration
* s-strxdr.adb:
Remove unnecessary 'in' keywords for formal parameters.
* treeprs.adt: Minor reformatting
* urealp.adb: Put routines in alpha order
* s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
taking string.
* s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
* g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
* env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
workaround as on other platforms.
* g-eacodu-vms.adb: Remove redundant 'in' keywords
* g-expect-vms.adb: Remove redundant 'in' keywords
* gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
clear error message if the list-of-files file cannot be opened.
* g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
equality operator is always visible.
* lang.opt: Woverlength-strings: New option.
* nmake.adt:
Update copyright, since nmake.ads and nmake.adb have changed.
* osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
(Binder_Output_Time_Stamps_Set): removed.
(Old_Binder_Output_Time_Stamp): idem.
(New_Binder_Output_Time_Stamp): idem.
(Recording_Time_From_Last_Bind): idem.
(Recording_Time_From_Last_Bind): Make constant.
* output.ads, output.adb (Write_Str): Allow LF characters
(Write_Spaces): New procedure
* prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
* inline.adb: Minor reformatting
* s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
* s-mastop-vms.adb: Remove redundant 'in' keywords
* s-osprim-vms.adb: Remove redundant 'in' keywords
* s-trafor-default.adb: Remove redundant 'in' keywords
* 9drpc.adb: Remove redundant 'in' keywords
* s-osinte-mingw.ads: Minor reformatting
* s-inmaop-posix.adb: Minor reformatting
* a-direio.ads: Remove quotes from Compile_Time_Warning message
* a-exexda.adb: Minor code reorganization
* a-filico.adb: Minor reformatting
* a-finali.adb: Minor reformatting
* a-nudira.ads: Remove quote from Compile_Time_Warning message
* a-numeri.ads: Minor reformatting
* a-sequio.ads: Remove quotes from Compile_Time_Warning message
* exp_pakd.ads: Fix obsolete comment
* a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
Probably not a bug, but certainly neater and more efficient.
* a-tienio.adb: Minor reformatting
* comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
Avoid assuming low bound of string is 1.
* gnatbind.adb: Change Bindusg to package and rename procedure as
Display, which now ensures that it only outputs usage information once.
(Scan_Bind_Arg): Avoid assuming low bound of string is 1.
* g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
Table'First.
* g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
warning.
(Match): Add pragma Assert to ensure that Matches'First is zero
* g-regpat.ads (Match): Document that Matches lower bound must be zero
* makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
documented preconditions (also kills warnings about bad indexes).
* mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
is 1.
(Build_Import_Library): Ditto;
* mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
* rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
* sem_case.adb (Analyze_Choices): Add pragma Assert to check that
lower bound of choice table is 1.
* sem_case.ads (Analyze_Choices): Document that lower bound of
Choice_Table is 1.
* s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
string is 1.
* uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
and add appropriate Assert pragma to suppress warnings.
* atree.h, atree.ads, atree.adb
Change Elist24 to Elist25
Add definitions of Field28 and Node28
(Traverse_Field): Use new syntactic parent table in sinfo.
* cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
* itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
* exp_tss.adb: Put routines in alpha order
* fe.h: Remove redundant declarations.
From-SVN: r118330
|
|
2005-11-14 Robert Dewar <dewar@adacore.com>
* a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
system-interix.ads, system-solaris-sparc.ads,
system-solaris-sparcv9.ads, s-inmaop-vms.adb,
s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
a-numaux-darwin.ads, a-numaux-darwin.adb,
a-swuwha.ads, a-stunha.ads: Minor reformatting
From-SVN: r107016
|
|
From-SVN: r101492
|
|
2005-06-14 Robert Dewar <dewar@adacore.com>
* atree.adb: (Elist*): Protect against uninitialized field
From-SVN: r101026
|
|
2005-03-08 Javier Miranda <miranda@adacore.com>
Robert Dewar <dewar@adacore.com>
Thomas Quinot <quinot@adacore.com>
Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* atree.ads, atree.adb: Add support for Elist24 field
* atree.h: Fix wrong definition of Field27
Add support for Elist16 field
Add support for Elist24 field
* einfo.ads, einfo.adb (Abstract_Interfaces,
Set_Abstract_Interfaces): New subprograms.
(Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
subprograms.
(Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
entities rather than a single node.
(Is_Interface, Set_Is_Interface): New subprogram
(First_Tag_Component): New syntesized attribute
(Next_Tag_Component): New synthesized attribute
(Write_Entity_Flags): Upgraded to write Is_Interface
(Write_Field24_Name): Upgraded to write Abstract_Interfaces
(Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
(Task_Body_Procedure): New subprogram to read this attribute.
(Set_Task_Body_Procedure): New subprogram to set this attribute.
(Has_Controlled_Component): Now applies to all entities.
This is only a documentation change, since it always worked to apply
this to other than composite types (yielding false), but now this is
official.
Update documentation on Must_Be_Byte_Aligned for new spec
* tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
uses of the Access_Disp_Table attribute to reference the first dispatch
table associated with a tagged type. As
part of the implementation of abstract interface types,
Access_Disp_Table has been redefined to contain a list of dispatch
tables (rather than a single dispatch table).
Similarly, upgrade all the references to Tag_Component by the
new attribute First_Tag_Component.
(Find_Inherited_TSS): Moved to exp_tss.
Clean up test in Expand_N_Object_Declaration for cases
where we need to do a separate assignment of the initial value.
(Expand_N_Object_Declaration): If the expression in the
declaration of a tagged type is an aggregate, no need to generate an
additional tag assignment.
(Freeze_Type): Now a function that returns True if the N_Freeze_Entity
is to be deleted.
Bit packed array ops are only called if operands are known to be
aligned.
(Component_Equality): When returning an N_Raise_Program_Error statement,
ensure that its Etype is set to Empty to avoid confusing GIGI (which
expects that only expressions have a bona fide type).
(Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
determine the amount of data to be copied.
* par.adb (P_Interface_Type_Definition): New subprogram that parses the
new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
INTERFACE_TYPE_DEFINITION ::=
[limited | task | protected | synchronized] interface
[AND interface_list]
* par-ch3.adb (P_Type_Declaration): Modified to give support to
interfaces.
(P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
interfaces.
(P_Interface_Type_Definition): New subprogram that parses the new
syntax rule of Ada 2005 interfaces
(P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
messages by the correct RENAMES (quotes removed).
* sem_prag.adb: Upgrade all the references to Tag_Component by the new
attribute First_Tag_Component.
* sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
(Interface_List, Set_Interface_List): New subprograms.
(Interface_Present, Set_Interface_Present): New subprograms.
(Limited_Present, Set_Limited_Present): Available also in derived
type definition nodes.
(Protected_Present, Set_Protected_Present): Available also in
record type definition and
derived type definition nodes.
(Synchronized_Present, Set_Synchronized_Present): New subprograms.
(Task_Present, Set_Task_Present): New subprogram.
(Task_Body_Procedure): Removed.
(Set_Task_Body_Procedure): Removed.
These subprogram have been removed because the attribute
Task_Body_Procedure has been moved to the corresponding task type
or task subtype entity to leave a field free to store the list
of interfaces implemented by a task (for AI-345)
Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
(Null_Exclusion_Present): Change to Flag11, to avoid conflict with
expression flag Do_Range_Check
(Exception_Junk): Change to Flag7 to accomodate above change
(Box_Present, Default_Name, Specification, Set_Box_Present,
Set_Default_Name, Set_Specification): Expand the expression
"X in N_Formal_Subprogram_Declaration" into the corresponding
two comparisons. Required to use the csinfo tool.
* exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
"with string" given.
* sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
expression given.
* par-ch11.adb (P_Raise_Statement): Recognize with string expression
in 2005 mode
* exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
attribute Task_Body_Procedure rather than the old semantic field that
was available in the task_type_declaration node.
* par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
interface type definitions.
(P_Formal_Derived_Type_Definition): Modified to handle the list of
interfaces.
* par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
task type declaration.
(P_Protected): Modified to handle the list of interfaces in a
protected type declaration.
From-SVN: r96489
|
|
2005-02-09 Robert Dewar <dewar@adacore.com>
Thomas Quinot <quinot@adacore.com>
Javier Miranda <miranda@adacore.com>
Pascal Obry <obry@adacore.com>
Ed Schonberg <schonberg@adacore.com>
Doug Rupp <rupp@adacore.com>
Gary Dismukes <dismukes@adacore.com>
Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* g-zstspl.ads: New file.
* a-chahan.ads, a-chahan.adb: Add declarations from AI-285
* a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
Ada 95 mode
Add definition of Wide_Wide_Space for AI-285
* impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
interface (to support Ada 95 and Ada 2005 units).
Add Unbounded_IO files
Add entries for Wide_Wide packages for AI-285
Add list of containers packages to Ada 2005 unit list
* a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
support new Unbounded_IO package cleanly.
* g-utf_32.ads, g-utf_32.adb: New files.
* Makefile.rtl: Add entry for g-utf_32
Add new files for Unbounded_IO
Adjust make file for new AI-285 wide wide packages
Add AI-302 containers to the run time.
* a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
subprograms for AI-301.
* a-stwiun.adb, a-stwiun.ads: Minor reformatting.
* a-stunau.ads: Minor comment correction
* rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
etc.
Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
(Check_RPC): Update to match changes in expanded code.
Clean up unused entity.
* exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
was not taken into account.
This includes proper initialization with Normalize_Scalars.
(Get_Simple_Init_Val): Major rewrite for initialize scalars and
normalize scalars cases (particularly the latter) to do a better job
of finding invalid representations.
* s-scaval.ads, s-scaval.adb: Add values for zero invalid values
* s-strops.ads, s-strops.adb: Remove string normalize routines, never
used
* exp_dist.adb: Add support for wide wide character type
(Expand_Receiving_Stubs_Bodies): For a package declaration that has a
private part, generate stub bodies at the end of the private part,
not the visible part.
(Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
PolyORB support.
(Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
generic wrapper to execute final processing after completing the
expansion of the RPC receiver for an RACW.
* snames.h, snames.ads, snames.adb: Add definitions for wide_wide
packages and attributes.
(Preset_Names): Addition of the new reserved words of Ada 2005,
that is interface, overriding and synchronized.
(Get_Pragma_Id): Give support to the use of the new reserved word
"interface" as a pragma name.
(Is_Pragma_Name): Give support to the use of the new reserved word
"interface" as a pragma name.
(Preset_Names): Add stream_size string for the Stream_Size Ada2005
attribute implementation.
* exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
checks to entities that are output parameters of Asm operations.
Handle the Stream_Size attribute.
Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
* exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
* sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
for second parameter being 0.0.
Add support for wide wide character type.
(Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
* s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
for wide wide character cases.
* cstand.adb: Create entities for Wide_Wide_Character and
Wide_Wide_String.
* i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
accordance with AI-258.
Add new declarations for 16/32 bit C character types (Part of AI285)
* einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
(Obsolescent_Warning): New field
(Rep_Clause): New local subprogram used to share code. Returns the rep
clause for which the name is given in parameter.
(Has_Stream_Size_Clause): New routine.
(Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
(Address_Clause): Implementation is now using Rep_Clause.
(Alignment_Clause): Idem.
(Size_Clause): Idem.
* lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
entity in non-Ada 2005 mode and generate warning.
* par-prag.adb: Add handling of one argument form for pragma Ada_05.
(Prag): Code cleanup. Remove old gnat pragma "overriding"
* sem_prag.adb: Add handling of one argument form for pragma Ada_05
(Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
on the named unit if the pragma is not in the current compilation unit,
so that elaboration calls in the current unit can set up an elaboration
dependency on the named unit, as needed.
(Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
subprogram as well as for subprograms declared within a package.
(Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
pragma overriding.
* krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
to z) to avoid some instances of duplication for Wide_Wide packages.
* namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
characters.
* scn.adb: Char_Literal_Value field is now a Uint
* scng.adb: Significant rewrite to handle new Ada 2005 features
allowing wide and wide wide characters in program text, e.g. for
identifiers, as described in AI-285.
(Set_Reserved): New procedure, makes setting up keywords cleaner.
(Initialize_Scanner): Register the new reserved words of Ada 2005.
(Scan): Give support to the new reserved words.
* par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
warning notifying that interface, overriding, and synchronized are
new reserved words.
(P_Pragma): Allow the use of the new reserved word "interface" as
a pragma name.
* gnatls.adb, gnatbind.adb,
ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
identifiers named "interface" to "SAL_Interface".
* bindgen.adb (Gen_Main_Ada): Add support for the new SEH
(Structured Exception handling).
(Gen_Main_C): Idem.
* bindgen.adb:
(Gen_Main_Ada): Set the default exit code if specified.
(Gen_Main_C): Likewise.
Part of *DC20-006.
(Gen_Output_File_C): Remove redundant output of gnat_exit_status.
Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
* switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
new -Xnnn switch.
* mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
has a collision with the new Ada 2005 "interface" reserved word.
* par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
generate a warning notifying that interface, overriding, and
synchronized are new reserved words.
* scans.ads (Token_Type): Addition of the tokens corresponding to the
new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
and Tok_Synchronized.
* sem_res.adb (Resolve_Actuals): Change error messages to refer to
"dispatching" rather than "primitive" operations, since dispatching
calls are now allowed to abstract formal subprograms (which are not
primitive).
Char_Literal_Value field is now a Uint
(Resolve_Slice): If the prefix is an access to an unconstrained array,
compute the actual subtype of the designated object to impose the proper
index constraints.
(Resolve_Selected_Component): Do not insert an access check if the
prefix is an access type: such a node is expanded into an explicit
dereference, on which the access check is performed anyway. Removes
expensive duplicate checks.
(Resolve_Call): Use new flag Is_Obsolescent and field
Obsolescent_Warning so that pragma Obsolescent works on library
subprograms.
Add support for wide wide character type
(Resolve_Allocator): Replace the error message on wrong null-exclusion
value by a warning message.
(Resolve_Type_Conversion): If the mixed-mode expression is interpreted
as fixed-point, and one of the operands is non-static and universal, it
can only be an illegal exponentiation operation, in which case there is
no real value to retrieve.
* exp_strm.adb: Add support for wide wide character type
(Build_Elementary_Input_Call): Compute the size of the stream element by
querying the rep chain to find the Stream_Attribute attribute value.
(Build_Elementary_Write_Call): Ditto.
* sem_aggr.adb: Char_Literal_Value field is now a Uint
Add support for wide wide character type
Replace the error messages on wrong null-exclusion value by warnings
as described in Ada 2005.
(Resolve_Extension_Aggregate): Document the fact that the error
message on class-wide expressions in extensions aggregates.
* sem_case.adb: Add support for wide wide character type
* sem_ch13.adb: Add support for wide wide character type
(Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
* sem_ch3.adb: Add support for wide wide character type
(Process_Subtype): If constraint is illegal for the type, set Ekind of
now-useless Itype, to prevent cascaded errors on a compiler built
without -gnatp.
* sem_ch8.adb: Add with and use of Sem_Disp.
(Analyze_Subprogram_Renaming): Replace unclean uses of
Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
of Corresponding_Spec to Empty).
(Attribute_Renaming): Replace use of Corresponding_Spec with
Corresponding_ Formal_Spec and simplify condition.
(Use_One_Package): Check that scope of homonym of identifier is defined,
before checking whether it is a wrapper package.
Add support for wide wide character type
* sem_eval.adb: Add support for wide wide character type.
(Eval_Arithmetic_Op): Check for compile time known signed integer
overflow in the non-static case.
(Subtypes_Statically_Match): A formal scalar type and its base type do
not statically match.
* sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
"not in" for test of N_Formal_Subprogram_Declaration (which is now a
subtype).
(Unit_Declaration_Node): Ditto.
(Is_Variable_Prefix): For the case of an indexed component whose prefix
has a packed array type, the prefix has been rewritten into a type
conversion. Determine variable-ness from the converted expression.
Handle wide wide character cases.
* stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
* stringt.ads, stringt.adb: Handle full UTF-32 range.
Remove ["0A"] from comment, since it can look like a line terminator.
Currently we don't permit this, but this is under discussion by the
ARG, and it is easy enough to use a different example.
* s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
handling UTF-32 encoding for wide wide character.
Implement new brackets coding ["hhhhhhhh"]
Add UTF-8 encodings for full UTF-32 range
* ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
* types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
bit range Add full UTF-32 support.
(RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
notify that constraint error will be raised at run-time
because a null value is assigned to a null-excluding object.
Remove some obsolete declarations and make Char_Code
unsigned.
* a-except.adb (Rcheck_30): New subprogram. Addition of the message
corresponding to CE_Null_Not_Allowed, and adjust the output of all the
Rcheck subprograms.
* checks.adb (Check_Null_Not_Allowed): Replace the error message on
wrong null-exclusion value by a warning message.
(Enable_Range_Check): Do range check if the prefix is an
explicit dereference whose designated object is an unconstrained array.
Current algorithm for removing duplicate checks is over-eager in this
case.
* sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
null-exclusion value by a warning message
* atree.h, atree.ads, atree.adb: Remove Char_Code field support
completely. Add support for Uint2 field
sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
exp_prag.adb: Char_Literal_Value field is now a Uint.
* exp_util.adb (Insert_Actions): Replace
N_Formal_Subprogram_Declaration by
N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
Char_Literal_Value field is now a Uint.
* sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
defined for subprogram renaming declarations. When set, the field
indicates the defining entity of a corresponding formal subprogram
when the renaming corresponds to a formal subprogram association in an
instantiation.
(Set_Corresponding_Formal_Spec): New procedure to return
Corresponding_Formal_Spec field.
Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
(which is now a subtype).
Char_Literal_Value field is now a Uint
* exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
pointer to the base of the dispatch table.
Minor changes to comments.
(Controlling_Type): New function for determining the tagged type
associated with a tagged primitive subprogram.
(Expand_Dispatching_Call): Add support for a controlling actual that is
directly a value of type Ada.Tag rather than a tagged object.
* i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
describing the new layout.
(Dispatch_Table): The expander computes the actual array size, allocates
the Dispatch_Table record accordingly, and generates code that displaces
the base of the record after the Typeinfo_Ptr component. The access to
these components is done by means of local functions.
(Offset_To_Top): New function.
(Typeinfo_Ptr): New function.
(Get_TSD): Modified to access the new position of the TSD.
(Set_TSD): Modified to save the TSD in its new position.
* par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
case of formal abstract subprograms. Add check and message for -gnat05.
Update comments.
* sem_ch12.adb: Add with and use for Sem_Disp.
(Analyze_Associations): Minor change from "=" to "in" for use of
N_Formal_Subtype_Declaration (which is now a subtype).
(Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
N_Formal_Subtype_Declaration (which is now a subtype).
(Analyze_Formal_Subprogram): Add handling for
N_Formal_Abstract_Subprogram, marking the formal as abstract and
dispatching, setting the controlling status of the formal parameters
and result, and issuing an error if there is no controlling type for
the formal subprogram.
(Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
which is an unclean use of that field, we set the new field
Corresponding_Formal_Spec to make the formal subprogram available to
processing in Analyze_Subprogram_Declaration.
(Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
Constrained, so that it is is does not statically match its anonymous
base type.
* sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
abstract formal subprograms in error check for functions returning
abstract types. Set scope of new designator for
a parameterless subprogram, so that it is available when checking the
body for nested subprograms, before full analysis of said body.
(Analyze_Subprogram_Body): Warn on inlining bodies with nested
subprogram only if inner one comes from source.
(Analyze_Function_Call): If the call is given in object notation, the
analysis of the name rewrites the node and analyzes it with the proper
argument list. After analyzing the name, if the call has been rewritten
and the result type is set, no further analysis is needed.
(Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
mark in function specification, in a context where the formals are
visible and hide outer homographs.
* sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
as the tagged type for the cases of abstract formal subprograms and
renamings of those. Clean up spec comments.
(Check_Dispatching_Context): Add error message to indicate "abstract
procedure", covering the case of a call to a formal abstract procedure
that has statically tagged operands.
(Check_Dispatching_Call): Check for the case of an actual given by
a tag-indeterminate function call whose type is an ancestor of the
containing call's associated tagged type. This situation can occur
for inherited primitives with function defaults. In this case we
use the tagged type's tag directly as the controlling argument for
the calls.
(Expand_Call): Name change on call to Expand_Dispatch_Call.
* sprint.adb (Sprint_Node_Actual): Split
N_Formal_Subprogram_Declaration into two alternatives for the new
cases N_Formal_Abstract_Subprogram_Declaration and
N_Formal_Concrete_Subprogram_Declaration.
Char_Literal_Value field is now a Uint.
* trans.c: Get rid of junk Uint2 reference.
Char_Literal_Value field is now a Uint.
(gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
(gigi): Correct third arg to gimplify_body.
* ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
(TYPE_LANG_FLAG_0): Check for record or union.
* treepr.adb: Char_Literal_Value field is now a Uint
* uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
UI_From_CC.
* widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
Add full UTF-32 support
Char_Code is now 32 bits
* sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
wide character UTF_32 line terminators.
Initialize Main_Source_File to avoid error when no main
source is loaded.
* errout.adb (Finalize): Do not check Num_SRef_Pragmas
(Main_Source_File) when no main source has been loaded, to avoid
potential crash.
From-SVN: r94809
|
|
and four new fields
* atree.adb: Add a fifth component to entities
This allows us to add 32 flags and four new fields
* atree.ads: Add a fifth component to entities
This allows us to add 32 flags and four new fields
* einfo.ads, einfo.adb: Document new fields and new flags now available
Add routines for printing new fields
* treepr.adb: Call routines to print out additional fields if present
From-SVN: r92830
|
|
* atree.adb (Visit_Itype): Create a new name for the generated itype,
because the back-end may otherwise treat it as a redefinition of the
old symbol.
From-SVN: r91875
|