aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/ali.ads
AgeCommit message (Collapse)AuthorFilesLines
2018-01-11[Ada] Bump copyright notices to 2018Arnaud Charlet1-1/+1
2018-01-11 Arnaud Charlet <charlet@adacore.com> gcc/ada/ Bump copyright notices to 2018. From-SVN: r256519
2018-01-11[Ada] Encoding of with clauses in ALI filesHristian Kirtchev1-10/+5
This patch modifies the encodings of with clauses in ALI files to adhere to the existing API. The encodigs are as follows: * Explicit with clauses are encoded on a 'W' line (same as before). * Implicit with clauses for ancestor units are encoded on a 'W' line (same as before). * Limited_with clauses are encoded on a 'Y' line (same as before). * ABE and RTSfind-related with clauses are encoded on a 'Z' line. ------------ -- Source -- ------------ -- case_10_func.adb function Case_10_Func return Boolean is begin return True; end Case_10_Func; -- case_10_gen_func.ads generic function Case_10_Gen_Func return Boolean; -- case_10_gen_func.adb function Case_10_Gen_Func return Boolean is begin return True; end Case_10_Gen_Func; -- case_10_tasks.ads package Case_10_Tasks is task type Task_Typ is end Task_Typ; end Case_10_Tasks; -- case_10_tasks.adb package body Case_10_Tasks is task body Task_Typ is begin null; end Task_Typ; end Case_10_Tasks; -- case_10_gen.ads with Case_10_Func; with Case_10_Gen_Func; with Case_10_Tasks; generic package Case_10_Gen is Val : constant Boolean := Case_10_Func; function Inst is new Case_10_Gen_Func; Tsk : Case_10_Tasks.Task_Typ; end Case_10_Gen; -- case_10.ads with Case_10_Gen; package Case_10 is package Inst is new Case_10_Gen; end Case_10; ---------------------------- -- Compilation and output -- ---------------------------- $ gcc -c case_10.ads $ grep "W " case_10.ali | sort $ grep "Z " case_10.ali | sort W case_10_gen%s case_10_gen.ads case_10_gen.ali Z case_10_func%b case_10_func.adb case_10_func.ali Z case_10_gen_func%s case_10_gen_func.adb case_10_gen_func.ali ED Z case_10_tasks%s case_10_tasks.adb case_10_tasks.ali AD Z system.soft_links%s s-soflin.adb s-soflin.ali Z system.tasking%s s-taskin.adb s-taskin.ali Z system.tasking.stages%s s-tassta.adb s-tassta.ali 2018-01-11 Hristian Kirtchev <kirtchev@adacore.com> gcc/ada/ * ali.adb: Document the remaining letters available for ALI lines. (Scan_ALI): A with clause is internal when it is encoded on a 'Z' line. * ali.ads: Update type With_Record. Field Implicit_With_From_Instantiation is no longer in use. Add field Implicit_With. * csinfo.adb (CSinfo): Remove the setup for attribute Implicit_With_From_Instantiation. * lib-writ.adb (Collect_Withs): Correct the logic which marks a unit as either implicitly or explicitly withed. (Is_Implicit_With_Clause): New routine. (Write_ALI): Rename array Implicit_With to Has_Implicit_With to avoid confusion with the with clause attribute by the same name. (Write_With_Lines): Update the emission of 'W', 'Y', and 'Z' headers. * rtsfind.adb (Maybe_Add_With): Code cleanup. * sem_ch8.adb (Present_System_Aux): Code cleanup. * sem_ch10.adb (Expand_With_Clause): Mark the with clause as generated for a parent unit. (Implicit_With_On_Parent): Mark the with clause as generated for a parent unit. * sem_ch12.adb (Inherit_Context): With clauses inherited by an instantiation are no longer marked as Implicit_With_From_Instantiation because they are already marked as implicit. * sem_elab.adb (Ensure_Prior_Elaboration_Static): Remove the kludge which marks implicit with clauses as related to an instantiation. * sinfo.adb (Implicit_With_From_Instantiation): Removed. (Parent_With): New routine. (Set_Implicit_With_From_Instantiation): Removed. (Set_Parent_With): New routine. * sinfo.ads: Update the documentation of attribute Implicit_With. Remove attribute Implicit_With_From_Instantiation along with occurrences in nodes. Add attribute Parent_With along with occurrences in nodes. (Implicit_With_From_Instantiation): Removed along with pragma Inline. (Parent_With): New routine along with pragma Inline. (Set_Implicit_With_From_Instantiation): Removed along with pragma Inline. (Set_Parent_With): New routine along with pragma Inline. From-SVN: r256490
2017-10-14[multiple changes]Pierre-Marie de Rodat1-1/+9
2017-10-14 Bob Duff <duff@adacore.com> * exp_ch6.adb (Is_Build_In_Place_Result_Type): Include code for enabling b-i-p for nonlimited controlled types (but disabled). 2017-10-14 Justin Squirek <squirek@adacore.com> * sem_elab.adb (Is_Suitable_Variable_Assignment): Replace call to Has_Warnings_Off with Warnings_Off. 2017-10-14 Piotr Trojanek <trojanek@adacore.com> * sinfo.ads (Generic_Parent): Remove wrong (possibly obsolete) comment. 2017-10-14 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch3.adb (Analyze_Declarations): Analyze the contract of an enclosing package at the end of the visible declarations. * sem_prag.adb (Analyze_Initialization_Item): Suppress the analysis of an initialization item which is undefined due to some illegality. 2017-10-14 Patrick Bernardi <bernardi@adacore.com> * ali.adb: Add new ALI line 'T' to read the number of tasks contain within each unit that require a default-sized primary and secondary stack to be generated by the binder. (Scan_ALI): Scan new 'T' lines. * ali.ads: Add Primary_Stack_Count and Sec_Stack_Count to Unit_Record. * bindgen.adb (Gen_Output_File): Count the number of default-sized stacks within the closure that are to be created by the binder. (Gen_Adainit, Gen_Output_File_Ada): Generate default-sized secondary stacks and record these in System.Secodnary_Stack. (Resolve_Binder_Options): Check if System.Secondary_Stack is in the closure of the program being bound. * bindusg.adb (Display): Add "-Q" switch. Remove rouge "--RTS" comment. * exp_ch3.adb (Count_Default_Sized_Task_Stacks): New routine. (Expand_N_Object_Declaration): Count the number of default-sized stacks used by task objects contained within the object whose declaration is being expanded. Only performed when either the restrictions No_Implicit_Heap_Allocations or No_Implicit_Task_Allocations are in effect. * exp_ch9.adb (Create_Secondary_Stack_For_Task): New routine. (Expand_N_Task_Type_Declaration): Create a secondary stack as part of the expansion of a task type if the size of the stack is known at run-time and the restrictions No_Implicit_Heap_Allocations or No_Implicit_Task_Allocations are in effect. (Make_Task_Create_Call): If using a restricted profile provide secondary stack parameter: either the statically created stack or null. * lib-load.adb (Create_Dummy_Package_Unit, Load_Unit, Load_Main_Source): Include Primary_Stack_Count and Sec_Stack_Count in Unit_Record initialization expressions. * lib-writ.adb (Add_Preprocessing_Dependency, Ensure_System_Dependency): Include Primary_Stack_Count and Sec_Stack_Count in Unit_Record initialization expression. (Write_ALI): Write T lines. (Write_Unit_Information): Do not output 'T' lines if there are no stacks for the binder to generate. * lib-writ.ads: Updated library information documentation to include new T line entry. * lib.adb (Increment_Primary_Stack_Count): New routine. (Increment_Sec_Stack_Count): New routine. (Primary_Stack_Count): New routine. (Sec_Stack_Count): New routine. * lib.ads: Add Primary_Stack_Count and Sec_Stack_Count components to Unit_Record and updated documentation. (Increment_Primary_Stack_Count): New routine along with pragma Inline. (Increment_Sec_Stack_Count): New routine along with pragma Inline. (Primary_Stack_Count): New routine along with pragma Inline. (Sec_Stack_Count): New routine along with pragma Inline. * opt.ads: New constant No_Stack_Size. Flag Default_Stack_Size redefined. New flag Default_Sec_Stack_Size and Quantity_Of_Default_Size_Sec_Stacks. * rtfinal.c Fixed erroneous comment. * rtsfind.ads: Moved RE_Default_Secondary_Stack_Size from System.Secondary_Stack to System.Parameters. Add RE_SS_Stack. * sem_util.adb (Number_Of_Elements_In_Array): New routine. * sem_util.ads (Number_Of_Elements_In_Array): New routine. * switch-b.adb (Scan_Binder_Switches): Scan "-Q" switch. * libgnarl/s-solita.adb (Get_Sec_Stack_Addr): Removed routine. (Set_Sec_Stack_Addr): Removed routine. (Get_Sec_Stack): New routine. (Set_Sec_Stack): New routine. (Init_Tasking_Soft_Links): Update System.Soft_Links reference to reflect new procedure and global names. * libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb, libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__solaris.adb, libgnarl/s-taprop__vxworks.adb (Register_Foreign_Thread): Update parameter profile to allow the secondary stack size to be specified. * libgnarl/s-tarest.adb (Create_Restricted_Task): Update the parameter profile to include Sec_Stack_Address. Update Tasking.Initialize_ATCB call to remove Secondary_Stack_Size reference. Add secondary stack address and size to SSL.Create_TSD call. (Task_Wrapper): Remove secondary stack creation. * libgnarl/s-tarest.ads (Create_Restricted_Task, Create_Restricted_Task_Sequential): Update parameter profile to include Sec_Stack_Address and clarify the Size parameter. * libgnarl/s-taskin.adb (Initialize_ATCB): Remove Secondary_Stack_Size from profile and body. (Initialize): Remove Secondary_Stack_Size from Initialize_ATCB call. * libgnarl/s-taskin.ads: Removed component Secondary_Stack_Size from Common_ATCB. (Initialize_ATCB): Update the parameter profile to remove Secondary_Stack_Size. * libgnarl/s-tassta.adb (Create_Task): Updated parameter profile and call to Initialize_ATCB. Add secondary stack address and size to SSL.Create_TSD call, and catch any storage exception from the call. (Finalize_Global_Tasks): Update System.Soft_Links references to reflect new subprogram and component names. (Task_Wrapper): Remove secondary stack creation. (Vulnerable_Complete_Master): Update to reflect TSD changes. * libgnarl/s-tassta.ads: Reformat comments. (Create_Task): Update parameter profile. * libgnarl/s-tporft.adb (Register_Foreign_Thread): Update parameter profile to include secondary stack size. Remove secondary size parameter from Initialize_ATCB call and add it to Create_TSD call. * libgnat/s-parame.adb, libgnat/s-parame__rtems.adb, libgnat/s-parame__vxworks.adb (Default_Sec_Stack_Size): New routine. * libgnat/s-parame.ads, libgnat/s-parame__ae653.ads, libgnat/s-parame__hpux.ads, libgnat/s-parame__vxworks.ads: Remove type Percentage. Remove constants Dynamic, Sec_Stack_Percentage and Sec_Stack_Dynamic. Add constant Runtime_Default_Sec_Stack_Size and Sec_Stack_Dynamic. (Default_Sec_Stack_Size): New routine. * libgnat/s-secsta.adb, libgnat/s-secsta.ads: New implementation. Is now Preelaborate. * libgnat/s-soflin.adb: Removed unused with-clauses. With System.Soft_Links.Initialize to initialize non-tasking TSD. (Create_TSD): Update parameter profile. Initialize the TSD and unconditionally call SS_Init. (Destroy_TSD): Update SST.SS_Free call. (Get_Sec_Stack_Addr_NT, Get_Sec_Stack_Addr_Soft, Set_Sec_Stack_Addr_NT, Set_Sec_Stack_Addr_Soft): Remove routines. (Get_Sec_Stack_NT, Get_Sec_Stack_Soft, Set_Sec_Stack_NT, Set_Sec_Stack_Soft): Add routines. (NT_TSD): Move to private part of package specification. * libgnat/s-soflin.ads: New types Get_Stack_Call and Set_Stack_Call with suppressed access checks. Renamed *_Sec_Stack_Addr_* routines and objects to *_Sec_Stack_*. TSD: removed warning suppression and component intialization. Changed Sec_Stack_Addr to Sec_Stack_Ptr. (Create_TSD): Update parameter profile. (NT_TSD): Move to private section from body. * libgnat/s-soliin.adb, libgnat/s-soliin.ads: New files. * libgnat/s-thread.ads (Thread_Body_Enter): Update parameter profile. * libgnat/s-thread__ae653.adb (Get_Sec_Stack_Addr, Set_Sec_Stack_Addr): Remove routine. (Get_Sec_Stack, Set_Sec_Stack): Add routine. (Thread_Body_Enter): Update parameter profile and body to adapt to new System.Secondary_Stack. (Init_RTS): Update body for new System.Soft_Links names. * gcc-interface/Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-soliin.o. From-SVN: r253754
2017-09-06[multiple changes]Arnaud Charlet1-1/+1
2017-09-06 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch3.adb, sem_aux.adb, sem_res.adb: Minor reformatting. 2017-09-06 Yannick Moy <moy@adacore.com> * sem_ch12.adb (Analyze_Instance_And_Renamings): Refactor to set global variable Ignore_SPARK_Mode_Pragmas_In_Instance only once. 2017-09-06 Bob Duff <duff@adacore.com> * sem_ch8.adb: Change Assert to be consistent with other similar ones. 2017-09-06 Bob Duff <duff@adacore.com> * binde.adb (Find_Elab_Order): Do not run Elab_Old unless requested. Previously, the -do switch meant "run Elab_New and Elab_Old and use the order chosen by Elab_Old, possibly with debugging printouts comparing the two orders." Now it means "do not run Elab_New." This is of use if there are bugs that cause Elab_New to crash. (Elab_Position, Num_Chosen): Change type to Nat, to avoid various type conversions. * ali.ads (Elab_Position): Change type to Nat, to avoid various type conversions. 2017-09-06 Arnaud Charlet <charlet@adacore.com> * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context): Fix reference to SPARK RM. 2017-09-06 Eric Botcazou <ebotcazou@adacore.com> * layout.adb: Use SSU short hand consistently throughout the file. 2017-09-06 Eric Botcazou <ebotcazou@adacore.com> * freeze.adb (Freeze_Record_Type) <Sized_Component_Total_Round_RM_Size>: New local variable to accumulate the rounded RM_Size of components. Update it for every component whose RM_Size is statically known. Add missing guard to check that bit packing is really required before issuing the error about packing. Swap condition for clarity's sake. * sem_prag.adb (Usage_Error): fix reference to SPARK RM in comment 2017-09-06 Fedor Rybin <frybin@adacore.com> * makeutl.adb, makeutl.ads, mlib.adb, mlib.ads, mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb, mlib-tgt-specific-hpux.adb, mlib-tgt-specific-linux.adb, mlib-tgt-specific-mingw.adb, mlib-tgt-specific-solaris.adb, mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb, mlib-utl.adb, mlib-utl.ads, prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-attr-pm.adb, prj-attr-pm.ads, prj-com.ads, prj-conf.adb, prj-conf.ads, prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads, sinput-p.adb, sinput-p.ads: Remove obsolete project manager sources. 2017-09-06 Ed Schonberg <schonberg@adacore.com> * sem_ch5.adb (Analyze_Assigment): If the left-hand side is an entity of a mutable type and the right-hand side is a conditional expression, resolve the alternatives of the conditional using the base type of the target entity, because the alternatives may have distinct subtypes. This is particularly relevant if the alternatives are aggregates. From-SVN: r251797
2017-09-06[multiple changes]Arnaud Charlet1-1/+10
2017-09-06 Eric Botcazou <ebotcazou@adacore.com> * ali.ads (ALIs_Record): Add No_Component_Reordering component. (No_Component_Reordering_Specified): New switch. * ali.adb (Initialize_ALI): Set No_Component_Reordering_Specified. (Scan_ALI): Set No_Component_Reordering and deal with NC marker. * bcheck.adb (Check_Consistent_No_Component_Reordering): New check. (Check_Configuration_Consistency): Invoke it. * debug.adb (d.r): Toggle the effect of the switch. (d.v): Change to no-op. * einfo.ads (Has_Complex_Representation): Restrict to record types. (No_Reordering): New alias for Flag239. (OK_To_Reorder_Components): Delete. (No_Reordering): Declare. (Set_No_Reordering): Likewise. (OK_To_Reorder_Components): Delete. (Set_OK_To_Reorder_Components): Likewise. * einfo.adb (Has_Complex_Representation): Expect record types. (No_Reordering): New function. (OK_To_Reorder_Components): Delete. (Set_Has_Complex_Representation): Expect base record types. (Set_No_Reordering): New procedure. (Set_OK_To_Reorder_Components): Delete. (Write_Entity_Flags): Adjust to above change. * fe.h (Debug_Flag_Dot_R): New macro and declaration. * freeze.adb (Freeze_Record_Type): Remove conditional code setting OK_To_Reorder_Components on record types with convention Ada. * lib-writ.adb (Write_ALI): Deal with NC marker. * opt.ads (No_Component_Reordering): New flag. (No_Component_Reordering_Config): Likewise. (Config_Switches_Type): Add No_Component_Reordering component. * opt.adb (Register_Opt_Config_Switches): Copy No_Component_Reordering onto No_Component_Reordering_Config. (Restore_Opt_Config_Switches): Restore No_Component_Reordering. (Save_Opt_Config_Switches): Save No_Component_Reordering. (Set_Opt_Config_Switches): Set No_Component_Reordering. * par-prag.adb (Prag): Deal with Pragma_No_Component_Reordering. * sem_ch3.adb (Analyze_Private_Extension_Declaration): Also set the No_Reordering flag from the default. (Build_Derived_Private_Type): Likewise. (Build_Derived_Record_Type): Likewise. Then inherit it for untagged types and clean up handling of similar flags. (Record_Type_Declaration): Likewise. * sem_ch13.adb (Same_Representation): Deal with No_Reordering and remove redundant test on Is_Tagged_Type. * sem_prag.adb (Analyze_Pragma): Handle No_Component_Reordering. (Sig_Flags): Likewise. * snames.ads-tmpl (Name_No_Component_Reordering): New name. (Pragma_Id): Add Pragma_No_Component_Reordering value. * warnsw.adb (Set_GNAT_Mode_Warnings): Enable -gnatw.q as well. * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Copy the layout of the parent type only if the No_Reordering settings match. (components_to_record): Reorder record types with convention Ada by default unless No_Reordering is set or -gnatd.r is specified and do not warn if No_Reordering is set in GNAT mode. 2017-09-06 Ed Schonberg <schonberg@adacore.com> * sem_util.ads, sem_util.adb (Check_Previous_Null_Procedure): new predicate to reject declarations that can be completions, when there is a visible prior homograph that is a null procedure. * sem_ch6.adb (Analyze_Null_Procedure): use it. * sem_ch8.adb (Analyze_Subprogram_Renaming): ditto. 2017-09-06 Thomas Quinot <quinot@adacore.com> * s-regpat.adb (Compile.Parse_Literal): Fix handling of literal run of 253 characters or more. From-SVN: r251760
2017-01-13[multiple changes]Arnaud Charlet1-6/+1
2017-01-13 Javier Miranda <miranda@adacore.com> * einfo.ads (Component_Bit_Offset): Fix documentation. * sem_ch13.adb (Check_Record_Representation_Clause): Skip check on record holes for components with unknown compile-time offsets. 2017-01-13 Bob Duff <duff@adacore.com> * ali.ads, ali.adb (Static_Elaboration_Model_Used): Remove unused flag. * g-locfil.ads: Minor comment fix. 2017-01-13 Bob Duff <duff@adacore.com> * binde.adb (Elab_New): New elaboration order algorithm that is expected to cause fewer ABE issues. This is a work in progress. The new algorithm is currently disabled, and can be enable by the -dp switch, or by modifying the Do_Old and Do_New etc. flags and rebuilding. Experimental code is included to compare the results of the old and new algorithms. * binde.ads: Use GNAT.Dynamic_Tables instead of Table, so we can have multiple of these tables, so the old and new algorithms can coexist. * bindgen.ads (Gen_Output_File): Pass Elab_Order as an 'in' parameter of type array. This avoids the global variable, and allows bounds checking (which is normally defeated by the tables packages). It also ensures that the Elab_Order is read-only to Bindgen. * bindgen.adb: Pass Elab_Order as an 'in' parameter to all subprograms that need it, as above. * debug.adb: Document new -dp switch. Modify doc of old -do switch. * gnatbind.adb (Gnatbind): Make use of new interfaces to Binde and Bindgen. Move writing of closure (-R and -Ra switches) to Binde; that's more convenient. 2017-01-13 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Analyze_Expression_Function): If the expression function is a completion, all entities referenced in the expression are frozen. As a consequence, a reference to an uncompleted private type from an enclosing scope is illegal. From-SVN: r244419
2016-04-18[multiple changes]Arnaud Charlet1-12/+8
2016-04-18 Ed Schonberg <schonberg@adacore.com> * sem_aggr.adb (Resolve_Record_Aggregate): If Warn_On_Redundant_Constructs is enabled, report a redundant box association that does not cover any components, as it done for redundant others associations in case statements. 2016-04-18 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb (Collect_Inherited_Class_Wide_Conditions): Analyze the generated Check pragma for an inherited condition so that it does not freeze the dispatching type of the primitive operation, because it is pre-analyzed at the point of the subprogram declaration (and not in the subprogram body, as is done during regular expansion). 2016-04-18 Vincent Celier <celier@adacore.com> * ali.ads: Increase the range of all _Id types to 100 millions. 2016-04-18 Gary Dismukes <dismukes@adacore.com> * sem_warn.adb (Check_References): Change warning to suggest using pragma Export rather than saying "volatile has no effect". 2016-04-18 Bob Duff <duff@adacore.com> * g-souinf.ads (Compilation_ISO_Date): New function to return the current date in ISO form. * exp_intr.adb (Expand_Source_Info, Add_Source_Info): Expand a call to Compilation_ISO_Date into a string literal containing the current date in ISO form. * exp_intr.ads (Add_Source_Info): Improve documentation. * sem_intr.adb (Check_Intrinsic_Subprogram): Recognize Compilation_ISO_Date. * snames.ads-tmpl (Name_Compilation_ISO_Date): New Name_Id. From-SVN: r235120
2015-11-23opt.ads (Exception_Mechanism): Now three values: Front_End_SJLJ, ↵Olivier Hainque1-0/+8
Back_End_SJLJ and Back_End_ZCX. 2015-11-23 Olivier Hainque <hainque@adacore.com> Eric Botcazou <botcazou@adacore.com> * opt.ads (Exception_Mechanism): Now three values: Front_End_SJLJ, Back_End_SJLJ and Back_End_ZCX. (Back_End_Exceptions, Front_End_Exceptions, ZCX_Exceptions, SJLJ_Exceptions): New functions, reflecting properties of the current Exception_Mechanism. * opt.adb: Implement the new functions. * fe.h: Bind the new Exception_Mechanism and helper functions for gigi. * exp_ch11.adb (Expand_At_End_Handler): Replace test on mechanism by use of property helper and update comments. (Expand_Exception_Handlers): Replace tests on mechanism by use of helper. Restrict Abort_Defer to ZCX specifically. * exp_ch9.adb (Expand_N_Asynchronous_Select): Replace tests on mechanism by calls to helper functions. Abort_Undefer for ZCX only, paired with Expand_Exception_Handlers. * exp_sel.adb (Build_Abort_Block_Handler): Replace tests on mechanism by calls to helper functions. Abort_Undefer for ZCX only, paired with Expand_Exception_Handlers. * lib-writ.ads (P line documentation): Add entry for "FX", representative of unit compiled with Frontend_Exceptions True. * lib-writ.adb (Output_Main_Program_Line): Add "FX" on P line if compiled with Frontend_Exceptions True. * ali.ads (ALIs_Record): Ada a Frontend_Exceptions component, to reflect whether the ALI file contained an "FX" indication on the P line. (Frontend_Exceptions_Specified): New boolean, to keep track of whether at least an FX ALI file is in the closure. * ali.adb (Scan_ALI): Handle "FX" on the P line. (Initialize_ALI): Initialize Frontend_Exceptions_Specified to False. * targparm.ads: Update desription of exception schemes. (Frontend_Exceptions_On_Target): New flag, reflect Frontend_Exceptions set to True in system.ads, or not set at all. * targparm.adb (Targparm_Tags): Add FEX to convey Frontend_Exceptions. Rename ZCD to ZCX for consistency. (FEX_Str, Targparm_Str, Get_Target_Parameters): Adjust accordingly. * gnat1drv.adb (Adjust_Global_Switches): Adjust Exception_Mechanism setting, now from combination of Frontend_Exceptions and ZCX_By_Default. * bcheck.adb (Check_Consistent_Zero_Cost_Exception_Handling): Rename as ... (Check_Consistent_Exception_Handling): Check consistency of both ZCX_By_Default and Frontend_Exceptions. (Check_Configuration_Consistency): Check_Consistent_Exception_Handling if either flag was set at least once. * make.adb (Check): Remove processing of a possible -fsjlj coming from lang-specs.h. * gnatlink.adb (Gnatlin): Likewise. * gcc-interface/Makefile.in (gnatlib-sjlj/zcx): Now set both ZCX_By_Default and Frontend_Exceptions. * gcc-interface/decl.c (gnat_to_gnu_entity, case E_Variable): Use eh property helper to test for back-end exceptions. Adjust mechanism name when testing for front-end sjlj. (case E_Procedure): Likewise. * gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): Likewise, and rename local variables. (Exception_Handler_to_gnu_sjlj): Rename as Exception_Handler_to_gnu_fe_sjlj. (Exception_Handler_to_gnu_zcx): Rename as Exception_Handler_to_gnu_gcc and adjust tests on eh mechanisms to use property helpers or correct mechanism name. Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com> From-SVN: r230752
2015-01-30[multiple changes]Arnaud Charlet1-1/+5
2015-01-30 Yannick Moy <moy@adacore.com> * sem_attr.adb: Code clean up. 2015-01-30 Robert Dewar <dewar@adacore.com> * ali.adb (Scan_ALI): Set Serious_Errors flag in Unit record. * ali.ads (Unit_Record): Add new field Serious_Errors. * lib-writ.adb (Write_Unit_Information): Set SE (serious errors) attribute in U line. * lib-writ.ads: New attribute SE (serious erors) in unit line. 2015-01-30 Hristian Kirtchev <kirtchev@adacore.com> * einfo.adb Update the usage of attributes Entry_Bodies_Array, Lit_Indexes, Scale_Value, Storage_Size_Variable, String_Literal_Low_Bound along associated routines and Write_FieldX_Name. (Pending_Access_Types): New routine. (Set_Pending_Access_Types): New routine. (Write_Field15_Name): Add an entry for Pending_Access_Types. * einfo.ads Add new attribute Pending_Access_Types along with usage in nodes. Update the usage of attributes Entry_Bodies_Array, Lit_Indexes, Scale_Value, Storage_Size_Variable, String_Literal_Low_Bound. (Pending_Access_Types): New routine along with pragma Inline. (Set_Pending_Access_Types): New routine along with pragma Inline. * exp_ch3.adb (Expand_Freeze_Array_Type): Add new local variable Ins_Node. Determine the insertion node for anonynous access type that acts as a component type of an array. Update the call to Build_Finalization_Master. (Expand_Freeze_Record_Type): Update the calls to Build_Finalization_Master. (Freeze_Type): Remove local variable RACW_Seen. Factor out the code that deals with remote access-to-class-wide types. Create a finalization master when the designated type contains a private component. Fully initialize all pending access types. (Process_RACW_Types): New routine. (Process_Pending_Access_Types): New routine. * exp_ch4.adb (Expand_Allocator_Expression): Allocation no longer needs to set primitive Finalize_Address. (Expand_N_Allocator): Allocation no longer sets primitive Finalize_Address. * exp_ch6.adb (Add_Finalization_Master_Actual_To_Build_In_Place_Call): Update the call to Build_Finalization_Master. (Make_Build_In_Place_Call_In_Allocator): Allocation no longer needs to set primitive Finalize_Address. * exp_ch7.adb (Add_Pending_Access_Type): New routine. (Build_Finalization_Master): New parameter profile. Associate primitive Finalize_Address with the finalization master if the designated type has been frozen, otherwise treat the access type as pending. Simplify the insertion of the master and related initialization code. (Make_Finalize_Address_Body): Allow Finalize_Address for class-wide abstract types. (Make_Set_Finalize_Address_Call): Remove forlam parameter Typ. Simplify the implementation. * exp_ch7.ads (Build_Finalization_Master): New parameter profile along with comment on usage. (Make_Set_Finalize_Address_Call): Remove formal parameter Typ. Update the comment on usage. * exp_util.adb (Build_Allocate_Deallocate_Proc): Use routine Finalize_Address to retrieve the primitive. (Finalize_Address): New routine. (Find_Finalize_Address): Removed. * exp_util.ads (Finalize_Address): New routine. * freeze.adb (Freeze_All): Remove the generation of finalization masters. * sem_ch3.adb (Analyze_Full_Type_Declaration): Propagate any pending access types from the partial to the full view. From-SVN: r220279
2014-10-10[multiple changes]Arnaud Charlet1-0/+8
2014-10-10 Robert Dewar <dewar@adacore.com> * sem_ch7.adb, einfo.adb, einfo.ads, sem_prag.adb, sem_ch12.adb, freeze.adb, sem_util.adb, sem_res.adb, exp_ch6.adb, exp_ch13.adb, sem_ch6.adb, sem_cat.adb, sem_disp.adb (Is_Subprogram_Or_Generic_Subprogram): New primitive. Use this primitive throughout where appropriate. 2014-10-10 Bob Duff <duff@adacore.com> * a-coinho-shared.ads: Minor reformatting. * s-traceb.adb: Minor clean up. 2014-10-10 Robert Dewar <dewar@adacore.com> * ali.adb (Scan_ALI): Read and process new GP flag on ALI P line. * ali.ads (GNATprove_Mode): New component in ALI table. (GNATprove_Mode_Specified): New global. * gnatbind.adb (Gnatbind): Give fatal error if any file compiled in GNATProve mode. * lib-writ.ads, lib-writ.adb (GP): New flag on P line for GNATProve_Mode. 2014-10-10 Javier Miranda <miranda@adacore.com> * exp_ch3.adb (Build_Init_Procedure): Adding assertion. (Build_Init_Statement): Ensure that statements associated with the parent components are located at the beginning of the returned list of statements. 2014-10-10 Ed Schonberg <schonberg@adacore.com> * sem_ch13.adb (Inherit_Aspects_At_Freeze_Node): If the full view of a private type T that has a type invariant is a scalar or constrained array type, the base type created for the full view has the same type invariant. From-SVN: r216074
2014-08-01snames.ads-tmpl, [...]: Remove VMS-specific code.Robert Dewar1-9/+0
2014-08-01 Robert Dewar <dewar@adacore.com> * snames.ads-tmpl, s-os_lib.adb, s-os_lib.ads, s-fileio.adb: Remove VMS-specific code. * prj-conf.adb: Minor reformatting. * xr_tabls.adb (Read_File): Restore code which was enabled on non VMS platforms before. * prj-env.adb (Initialize_Default_Project_Path): Ditto. * sem_ch5.adb: Minor reformatting. * lib-writ.adb, lib-writ.ads, bindgen.adb, sem_vfpt.adb, sem_vfpt.ads, ali.adb, ali.ads, opt.ads, bcheck.adb, exp_strm.adb: Remove VMS-specific code. From-SVN: r213432
2014-07-30lib-load.ads: Minor reformatting.Thomas Quinot1-2/+2
2014-07-30 Thomas Quinot <quinot@adacore.com> * lib-load.ads: Minor reformatting. * sinfo.ads (Library_Unit): Update comment. * lib.ads (Notes): Simplify. The Unit component in Notes_Entry is redundant. Instead used the pragma Node_Id directly as the element type. 2014-07-30 Thomas Quinot <quinot@adacore.com> * lib.adb (Store_Note): Store only notes that do not come from an instance, and that are in the extended main source unit. * lib-writ (Write_Unit_Information): Annotations from subunits must be emitted along with those for the main unit, and they must carry a specific file name. * ali.ads (Notes_Record): Use a File_Name_Type instead of a Unit_Id for the source file containing the pragma, as in the case of annotations from subunits we might not have a readily available unit id. * ali.adb (Scan_ALI): Account for above change in data structure. From-SVN: r213295
2014-07-29[multiple changes]Arnaud Charlet1-0/+11
2014-07-29 Robert Dewar <dewar@adacore.com> * ali.adb (Initialize_ALI): Initialize SSO_Default_Specified (Scan_ALI): Set SSO_Default in ALIs_Record (Scan_ALI): Set SSO_Default_Specified. * ali.ads (ALIs_Record): Add field SSO_Default (SSO_Default_Specified): New global switch. * bcheck.adb (Check_Consistent_SSO_Default): New procedure (Check_Configuration_Consistency): Call this procedure * einfo.adb (SSO_Set_High_By_Default): New function (SSO_Set_Low_By_Default): New function (Set_SSO_Set_High_By_Default): New procedure (Set_SSO_Set_Low_By_Default): New procedure (Write_Entity_Flags): List new flags * einfo.ads (SSO_Set_Low_By_Default): New flag (SSO_Set_High_By_Default): New flag * freeze.adb (Set_SSO_From_Default): New procedure (Freeze_Array_Type): Call Set_SSO_From_Default (Freeze_Record_Type): Call Set_SSO_From_Default * gnat_rm.texi: Document pragma Default_Scalar_Storage_Order * lib-writ.adb (Write_ALI): Set OL/OH in P line as needed * lib-writ.ads: Add OL/OH parameters to P line * opt.adb: Set Default_SSO, Default_SSO_Config as appropriate * opt.ads (Default_SSO): New global switch (Default_SSO_Config): New global switch * repinfo.adb (List_Scalar_Storage_Order): List SSO when it is set by default using pragma Default_Scalar_Storage_Order. * sem.ads (Scope_Stack_Entry): Add component Save_Default_SSO * sem_ch13.adb (Inherit_Delayed_Rep_Aspects): Clear SSO defaults when explicit SSO is inherited. (Analyze_Attribute_Definition_Clause): Clear SSO defaults when explicit SSO is specified. (Inherit_Aspects_At_Freeze_Point): Clear SSO default when inheriting SSO. * sem_ch3.adb (Set_Default_SSO): New procedure (Analyze_Private_Extension_Declaration): Set defualt SSO (Array_Type_Declaration): ditto (Build_Derived_Array_Type): ditto (Build_Derived_Private_Type): ditto (Build_Derived_Record_Type): ditto (Build_Derived_Type): ditto (Make_Class_Wide_Type): ditto (Record_Type_Declaration): ditto * sem_ch8.adb (Pop_Scope): Restore Default_SSO (Push_Scope): Save Default_SSO * sem_prag.adb (Analyze_Pragma, case Default_Scalar_Storage_Order): Set Default_SSO 2014-07-29 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Valid_Operator_Definition): Verify that all parameter have mode IN. This check must be done here for subprogram instantiations that have operator names, because their analysis does not follow the same path as that for subprogram declarations. From-SVN: r213167
2014-07-18[multiple changes]Arnaud Charlet1-2/+1
2014-07-18 Robert Dewar <dewar@adacore.com> * lib-writ.adb, makeutl.adb, ali.ads: Minor reformatting. 2014-07-18 Vincent Celier <celier@adacore.com> * lib-writ.ads: Update documentation about the D lines. From-SVN: r212796
2014-07-18[multiple changes]Arnaud Charlet1-0/+3
2014-07-18 Ed Schonberg <schonberg@adacore.com> * sem_ch13.adb (Replace_Type_References_Generic): Use type entity as a parameter, rather than its Chars field, in order to locate freeze node of type. If the predicate or invariant has references to types other than the one to which the contract applies, these types must be frozen, and the corresponding predicate functions created, before that freeze node. 2014-07-18 Robert Dewar <dewar@adacore.com> * freeze.adb, einfo.ads, einfo.adb: Minor code reorganization. * par_sco.adb: Minor reformatting. 2014-07-18 Gary Dismukes <dismukes@adacore.com> * exp_ch4.adb (Real_Range_Check): Turn off the Do_Range_Check flag on the conversion's current Expression argument rather than on the originally captured Operand node, as Expression may reflect a rewriting (as in conversions to a fixed-point type). 2014-07-18 Vincent Celier <celier@adacore.com> * ali.adb (Scan_ALI): Set Sdep_Record.Unit_Name, when the unit is not a subunit. * ali.ads (Sdep_Record): New component Unit_Name. * lib-writ.adb (Write_ALI): Write the unit name in D lines. * makeutl.adb (Check_Source_Info_In_ALI): Return False if a dependent unit is in a project and the source file name is not one of its sources. From-SVN: r212795
2014-07-18[multiple changes]Arnaud Charlet1-4/+0
2014-07-18 Robert Dewar <dewar@adacore.com> * bcheck.adb (Check_Consistent_Restrictions): Remove obsolete code checking for violation of No_Standard_Allocators_After_Elaboration (main program) * bindgen.adb (Gen_Adainit): Handle No_Standard_Allocators_After_Elaboration (Gen_Output_File_Ada): ditto. * exp_ch4.adb (Expand_N_Allocator): Handle No_Standard_Allocators_After_Elaboration. * Makefile.rtl: Add entry for s-elaall * rtsfind.ads: Add entry for Check_Standard_Allocator. * s-elaall.ads, s-elaall.adb: New files. * sem_ch4.adb (Analyze_Allocator): Handle No_Standard_Allocators_After_Elaboration. 2014-07-18 Robert Dewar <dewar@adacore.com> * lib.adb, lib.ads, lib-writ.adb, lib-writ.ads, ali.adb, ali.ads, lib-load.adb: Remove Lib.Has_Allocator and all uses. Remove AB parameter from ali files and all uses. Remove Allocator_In_Body and all uses. 2014-07-18 Robert Dewar <dewar@adacore.com> * g-expect-vms.adb: Add comment. 2014-07-18 Thomas Quinot <quinot@adacore.com> * par_sco.adb (Is_Logical_Operation): return True for N_If_Expression. 2014-07-18 Ed Schonberg <schonberg@adacore.com> * sem_attr.adb (Resolve_Attribute, case 'Update): Do full analysis and resolution of each choice in the associations within the argument of Update, because they may be variable names. 2014-07-18 Hristian Kirtchev <kirtchev@adacore.com> * exp_attr.adb (Expand_Loop_Entry_Attribute): Insert any condition actions before the generated if statement. 2014-07-18 Hristian Kirtchev <kirtchev@adacore.com> * gnat_ugn.texi Enhance the documentation of switches -gnateA and -gnateV. 2014-07-18 Ed Schonberg <schonberg@adacore.com> * sem_util.adb (Build_Default_Subtype): Add missing condition so that code matches description: use the full view of the base only if the base is private and the subtype is not. From-SVN: r212779
2014-07-17[multiple changes]Arnaud Charlet1-2/+2
2014-07-17 Ed Schonberg <schonberg@adacore.com> * exp_ch9.adb (Buid_Protected_Subprogram_Call): Preserve type of function call for later use when shared passive objects are involved. 2014-07-17 Hristian Kirtchev <kirtchev@adacore.com> * par-ch13.adb (Get_Aspect_Specifications): Catch a case where the argument of SPARK aspect Refined_State is not properly parenthesized. 2014-07-17 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch6.adb (Expand_Ctrl_Function_Call): Do not extend the lifetime of a reference to an Ada 2012 container element. (Is_Element_Reference): New routine. 2014-07-17 Robert Dewar <dewar@adacore.com> * ali.ads: Minor comment fix. * lib-writ.adb: Minor reformatting. 2014-07-17 Ed Schonberg <schonberg@adacore.com> * sem_ch10.adb (Analyze_Proper_Body): When analyzing a subunit in ASIS mode, load another subunit only if it a subunit of the current one, not a sibling that has been reached through the analysis of an ancestor. This allows the construction of the ASIS tree for the subunit even when sibling subunits have errors. 2014-07-17 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch3.adb (Analyze_Declarations): Remove the guard which prevents the analysis of various contracts when the associated construct is erroneous. * sem_util.adb (Save_SPARK_Mode_And_Set): Do not query the SPARK_Pragma of an illegal or a partially decorated construct. From-SVN: r212734
2012-10-29[multiple changes]Arnaud Charlet1-0/+11
2012-10-29 Tristan Gingold <gingold@adacore.com> * exp_ch9.adb, s-tarest.ads, exp_ch3.adb: Update comments. 2012-10-29 Yannick Moy <moy@adacore.com> * gnat_rm.texi: Minor documentation addition. 2012-10-29 Emmanuel Briot <briot@adacore.com> * xr_tabls.adb, xr_tabls.ads (Add_Declaration, Add_Reference): No longer assume that a parameter declaration is seen after the subprogram that uses it. 2012-10-29 Tristan Gingold <gingold@adacore.com> * lib-writ.adb (Write_ALI): Emit partition elaboration policy in P line. * lib-writ.ads: Document partition elaboration policy indication. * sem_prag.adb (Check_Arg_Is_Partition_Elaboration_Policy): New procedure. (Analyze_Pragma): Handle Partition_Elaboration_Policy. (Sig_Flags): Add flag for Pragma_Partition_Elaboration_Policy * ali.adb (Initialize_ALI): Init Partition_Elaboration_Policy_Specified. (Scan_ALI): Read Ex indications. * ali.ads: ALIs_Record: Add Partition_Elaboration_Policy. * par-prag.adb (Prag): Add Partition_Elaboration_Policy. * snames.adb-tmpl (Is_Partition_Elaboration_Policy_Name): New function. * opt.ads (Partition_Elaboration_Policy): Declare. (Partition_Elaboration_Policy_Sloc): Declare. * bcheck.adb (Check_Consistent_Partition_Elaboration_Policy): New procedure. (Check_Configuration_Consistency): Check partition elaboration policy consistency. * snames.ads-tmpl (Name_Partition_Elaboration_Policy): New name. (First_Partition_Elaboration_Policy_Name, Name_Concurrent, Name_Sequential, Last_Partition_Elaboration_Policy_Name): Likewise. (Pragma_Partition_Elaboration_Policy): New literal. (Is_Partition_Elaboration_Policy_Name): New function. 2012-10-29 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Is_Public_Subprogram_For): Handle properly expression functions, which are rewritten as subprogram declarations, when generating invariants for its return value and in-out parameters. From-SVN: r192928
2012-04-02[multiple changes]Arnaud Charlet1-1/+4
2012-04-02 Robert Dewar <dewar@adacore.com> * s-atopri.ads: Minor reformatting. 2012-04-02 Thomas Quinot <quinot@adacore.com> * sem_util.adb: Minor reformatting, minor code cleanup. 2012-04-02 Ed Schonberg <schonberg@adacore.com> * lib-xref.adb (Generate_Reference): For a reference to an operator symbol, set the sloc to point to the first character of the operator name, and not to the initial quaote. (Output_References): Ditto for the definition of an operator symbol. 2012-04-02 Vincent Celier <celier@adacore.com> * ali.adb (Scan_Ali): Recognize Z lines. Set Implicit_With_From_Instantiation to True in the With_Record for Z lines. * ali.ads (With_Record): New Boolean component Implicit_With_From_Instantiation, defaulted to False. * csinfo.adb: Indicate that Implicit_With_From_Instantiation is special * lib-writ.adb (Write_ALI): New array Implicit_With. (Collect_Withs): Set Implicit_With for the unit is it is not Yes. (Write_With_Lines): Write a Z line instead of a W line if Implicit_With is Yes for the unit. * sem_ch12.adb (Inherit_Context): Only add a unit in the context if it is not there yet. * sinfo.ads: New flag Implicit_With_From_Instantiation (Flag12) added. From-SVN: r186079
2011-09-06[multiple changes]Arnaud Charlet1-0/+4
2011-09-06 Robert Dewar <dewar@adacore.com> * g-socket.adb: Minor reformatting 2011-09-06 Javier Miranda <miranda@adacore.com> * ali.adb (Scan_ALI): Add missing support to load references of entities imported from other languages. * ali.ads (Xref_Record): Adding new fields to store the language and name of an imported entity. * lib-xref.adb (Output_Import_Export_Info): Fix typo in comment. 2011-09-06 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb (Analyze_Pragma, case Type_Invariant): A type invariant is allowed on a full type declaration if it is the completion of a private declarations. * sem_ch13.adb (Analyze_Aspect_Specifications): An invariant aspect is allowed on a full type declaration in the private part of a package. From-SVN: r178577
2011-08-03a-except.adb, [...] (Raise_From_Controlled_Operation): Rewritten to create ↵Hristian Kirtchev1-3/+6
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
2010-12-20Fix typos in gcc/ada.Ralf Wildenhues1-1/+1
gcc/ada/: * projects.texi: Fix typos. * gnat_rm.texi: Likewise. * gnat_ugn.texi: Likewise. * sem_util.adb: Fix typo in variable, typos in comments. * a-btgbso.adb: Fix typos in comments. * a-cbdlli.adb, a-cbhase.ads, a-cdlili.adb, a-cobove.adb, a-coinve.adb, a-convec.adb, a-direct.ads, a-strunb-shared.adb, a-strunb-shared.ads, a-stuten.ads, a-stwiun-shared.adb, a-stwiun-shared.ads, a-stzunb-shared.adb, a-stzunb-shared.ads, a-suenco.adb, a-suenst.adb, a-suewst.adb, a-suezst.adb, ali.ads, aspects.ads, atree.ads, binde.adb, bindgen.adb, checks.adb, checks.ads, einfo.ads, err_vars.ads, errout.adb, errout.ads, exp_aggr.adb, exp_attr.adb, exp_cg.adb, exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_dbug.ads, exp_disp.adb, exp_fixd.ads, freeze.adb, g-altive.ads, g-comlin.ads, g-excact.ads, g-mbdira.adb, g-sechas.ads, g-sehash.ads, g-sha1.ads, g-sha224.ads, g-sha256.ads, g-sha384.ads, g-sha512.ads, g-shsh32.ads, g-shsh64.ads, g-socket.adb, g-socket.ads, g-sothco.ads, gcc-interface/decl.c, gcc-interface/trans.c, gcc-interface/utils2.c, gnat1drv.adb, init.c, inline.adb, link.c, locales.c, make.adb, mingw32.h, namet.ads, osint.adb, par-ch12.adb, par-ch13.adb, par-ch3.adb, par-ch4.adb, par-prag.adb, par.adb, par_sco.adb, prepcomp.adb, prj-conf.ads, prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-tree.ads, prj-util.ads, prj.adb, prj.ads, s-auxdec-vms-alpha.adb, s-auxdec-vms_64.ads, s-oscons-tmplt.c, s-osinte-vxworks.ads, s-osprim-mingw.adb, s-regexp.adb, s-stusta.adb, s-taprop-mingw.adb, s-taprop-solaris.adb, scn.adb, scos.ads, sem.adb, sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_aux.ads, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb, sem_ch13.ads, sem_ch3.adb, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_disp.adb, sem_disp.ads, sem_eval.adb, sem_intr.adb, sem_prag.adb, sem_res.adb, sem_scil.adb, sem_util.ads, sem_warn.adb, sem_warn.ads, sinfo.ads, socket.c, styleg.adb, switch.ads, sysdep.c, tb-alvxw.c, xoscons.adb: Likewise. From-SVN: r168082
2010-10-18[multiple changes]Arnaud Charlet1-0/+9
2010-10-18 Jose Ruiz <ruiz@adacore.com> * exp_ch9.adb (Expand_N_Task_Type_Declaration): Add field corresponding to the affinity when expanding the task declaration. (Make_Task_Create_Call): Add the affinity parameter to the call to create task. * sem_prag.adb (Analyze_Pragma): Add the analysis for pragma CPU, taking into account the case when it applies to a subprogram (only for main and with static expression) or to a task. * par_prag.adb:(Prag): Make pragma CPU a valid one. * snames.ads-tmpl (Name_uCPU, Name_CPU): Add these new name identifiers used by the expander for handling the affinity parameter when creating a task. (Pragma_Id): Add Pragma_CPU as a valid one. * rtsfind.ads (RTU_Id): Make System_Multiprocessors accesible. (RE_Id, RE_Unit_Table): Make the entities RE_CPU_Range and RE_Unspecified_CPU visible. * sinfo.ads, sinfo.adb (Has_Pragma_CPU, Set_Has_Pragma_CPU): Add these two subprograms to set/get the flag indicating whether there is a pragma CPU which applies to the entity. * lib.ads, lib.adb (Unit_Record, Default_Main_CPU, Main_CPU, Set_Main_CPU): Add the field Main_CPU to Unit_Record to store the value of the affinity associated to the main subprogram (if any). Default_Main_CPU is used when no affinity is set. Subprograms Set_Main_CPU and Main_CPU are added to set/get the affinity of the main subprogram. * ali.ads, ali.adb (ALIs_Record): Add field Main_CPU to contain the value of the affinity of the main subprogram. (Scan_ALI): Get the affinity of the main subprogram (encoded as C=XX in the M line). * lib-writ.ads, lib-writ.adb (M_Parameters): Encode the affinity of the main subprogram in the M (main) line using C=XX. * lib-load.adb (Create_Dummy_Package_Unit, Load_Main_Source, Load_Unit): Add new field Main_CPU. * bindgen.adb (Gen_Adainit_Ada, Gen_Adainit_C): Add the code to pass the affinity of the main subprogram to the run time. * s-taskin.ads (Common_ATCB): Add the field Base_CPU to store the affinity. (Unspecified_CPU): Add this constant to identify the case when no affinity is set for tasks. * s-taskin.adb (Initialize_ATCB): Store the value coming from pragma CPU in the common part of the ATCB. (Initialize): Store the value coming from pragma CPU (for the environment task) in the common part of the ATCB. * s-tassta.ads, s-tassta.adb (Create_Task): Add the affinity specified by pragma CPU to the ATCB. * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add the affinity specified by pragma CPU to the ATCB. * s-tporft.adb (Register_Foreign_Thread): Add the new affinity parameter to the call to Initialize_ATCB. * s-taprop-linux.adb (Create_Task): Change the attributes of the thread to include the task affinity before creation. Additionally, the affinity selected with Task_Info is also enforced changing the attributes at task creation time, instead of changing it after creation. (Initialize): Change the affinity of the environment task if required by a pragma CPU. * s-osinte-linux.ads (pthread_setaffinity_np): Instead of using a wrapper to check whether the function is available or not, use a weak symbol. (pthread_attr_setaffinity_np): Add the import of this function which is used to change the affinity in the attributes used to create a thread. * adaint.c (__gnat_pthread_attr_setaffinity_np): Remove this wrapper. It was used to check whether the pthread function was available or not, but the use of a weak symbol handles this situation in a cleaner way. * s-taprop-mingw.adb (Create_Task, Initialize): Change the affinity of tasks (including the environment task) if required by a pragma CPU. * s-taprop-solaris.adb (Enter_Task): Change the affinity of tasks (including the environment task) if required by a pragma CPU. * s-taprop-vxworks.adb (Create_Task, Initialize): Change the affinity of tasks (including the environment task) if required by a pragma CPU. * init.c (__gl_main_cpu): Make this value visible to the run time. It will pass the affinity of the environment task. 2010-10-18 Javier Miranda <miranda@adacore.com> * einfo.adb (Direct_Primitive_Operations): Complete assertion. From-SVN: r165625
2010-10-08ali.adb: Set Allocator_In_Body if AB parameter present on M lineRobert Dewar1-1/+5
2010-10-08 Robert Dewar <dewar@adacore.com> * ali.adb: Set Allocator_In_Body if AB parameter present on M line * ali.ads (Allocator_In_Body): New flag * bcheck.adb (Check_Consistent_Restrictions): Handle case of main program violating No_Allocators_After_Elaboration restriction. * gnatbind.adb (No_Restriction_List): Add entries for No_Anonymous_Allocators, and No_Allocators_After_Elaboration. * lib-load.adb: Initialize Has_Allocator flag * lib-writ.adb: Initialize Has_Allocator flag (M_Parameters): Set AB switch if Has_Allocator flag set * lib-writ.ads: Document AB flag on M line * lib.adb (Has_Allocator): New function (Set_Has_Allocator): New procedure * lib.ads (Has_Allocator): New function (Set_Has_Allocator): New procedure (Has_Allocator): New flag in Unit_Record * sem_ch4.adb (Analyze_Allocator): Add processing for No_Allocators_After_Elaboration. From-SVN: r165171
2010-06-14[multiple changes]Arnaud Charlet1-2/+7
2010-06-14 Sergey Rybin <rybin@adacore.com> * gnat_ugn.texi: Add description of '-cargs gcc_switches' to gnatstub and gnatppa. 2010-06-14 Thomas Quinot <quinot@adacore.com> * exp_ch4.adb (Expand_Short_Circuit_Operator): New subprogram, factoring duplicated code between... (Expand_N_And_Than, Expand_N_Or_Else): Remove duplicated code. * a-envvar.ads: Minor reformatting 2010-06-14 Arnaud Charlet <charlet@adacore.com> * ali.adb, ali.ads, lib-xref.ads: Document new '+' letter for C/C++ static entities. (Scan_ALI): Take into account new Visibility field. (Visibility_Kind): New type. (Xref_Entity_Record): Replace Lib field by Visibility. * gcc-interface/Make-lang.in: Update dependencies. 2010-06-14 Pascal Obry <obry@adacore.com> * raise.h: Remove unused defintions. 2010-06-14 Bob Duff <duff@adacore.com> * par-ch10.adb (P_Subunit): If the next token after "separate(X)" is Tok_Not or Tok_Overriding, call P_Subprogram. We had previously given the incorrect error "proper body expected". * par-ch6.adb (P_Subprogram): Suppress "overriding indicator not allowed here" error in case of subunits, which was triggered by the above change to P_Subunit. From-SVN: r160740
2010-06-14ali.adb (Scan_ALI): Implement reading and storing of N linesRobert Dewar1-2/+38
2010-06-14 Robert Dewar <dewar@adacore.com> * ali.adb (Scan_ALI): Implement reading and storing of N lines (Known_ALI_Lines): Add entry for 'N' (notes) * ali.ads (Notes): New table to store Notes information * alloc.ads: Add entries for Notes table * lib-util.adb (Write_Info_Int): New procedure (Write_Info_Slit): New procedure (Write_Info_Uint): New procedure * lib-util.ads (Write_Info_Int): New procedure (Write_Info_Slit): New procedure (Write_Info_Uint): New procedure * lib-writ.adb (Write_Unit_Information): Output N (notes) lines * lib-writ.ads: Update documentation for N (Notes) lines * lib.adb (Store_Note): New procedure * lib.ads (Notes): New table (Store_Note): New procedure * sem_prag.adb: Call Store_Note for affected pragmas From-SVN: r160736
2010-06-14gnatbind.adb: Call Scan_ALI with Directly_Scanned set to True for all the ↵Vincent Celier1-8/+18
ALI files on the... 2010-06-14 Vincent Celier <celier@adacore.com> * gnatbind.adb: Call Scan_ALI with Directly_Scanned set to True for all the ALI files on the command line. * ali.adb (Scan_ALI): Set component Directly_Scanned of the unit(s) to the same value as the parameter of the same name. * ali.ads (Scan_ALI): New Boolean parameter Directly_Scanned, defaulted to False. * bindgen.adb (Gen_Versions_Ada): Never emit version symbols for Stand-Alone Library interfaces. When binding Stand-Alone Libraries, emit version symbols only for the units of the library. (Gen_Versions_C): Ditto. From-SVN: r160715
2009-07-22[multiple changes]Arnaud Charlet1-5/+5
2009-07-22 Sergey Rybin <rybin@adacore.com> * gnat_ugn.texi: Update doc for some gnatcheck rules. 2009-07-22 Robert Dewar <dewar@adacore.com> * par_sco.adb, par_sco.ads (pscos): New debug routine to output contents of SCO tables. * put_scos.adb, put_scos.ads, get_scos.adb, get_scos.ads, scos.adb, scos.ads: New files. * gcc-interface/Make-lang.in: Update dependencies. * lib-util.ads, gnatbind.ads, ali.ads, binderr.ads: Minor comment fixes and reformatting. From-SVN: r149943
2009-06-23Minor reformatting.Robert Dewar1-10/+8
From-SVN: r148847
2008-09-14a-crbtgk.adb, [...]: Fix typos in comments.Ralf Wildenhues1-1/+1
gcc/ada/ * a-crbtgk.adb, a-direct.ads, a-tasatt.adb, ali.ads, bindgen.adb, checks.adb, einfo.ads, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb, exp_dbug.ads, exp_disp.adb, exp_dist.adb, exp_pakd.adb, exp_util.adb, g-alveop.ads, g-comlin.adb, g-comlin.ads, g-diopit.adb, g-socket.ads, gcc-interface/decl.c, gcc-interface/gigi.h, gcc-interface/trans.c, lib-load.adb, lib-xref.ads, make.adb, mlib-prj.adb, nlists.ads, opt.ads, par-ch10.adb, par-ch5.adb, par.adb, s-os_lib.ads, s-oscons-tmplt.c, s-parint.ads, s-regpat.ads, s-shasto.ads, s-stausa.ads, s-taprop-vms.adb, sem.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_elim.adb, sem_prag.adb, sem_util.adb, sem_util.ads, sem_warn.adb, sinfo.ads, styleg.adb, vms_data.ads: Fix typos in comments. * gnathtml.pl: Fix typos. From-SVN: r140356
2008-06-03Makefile.in (common_tools): Fix typos in $(exeext) extension.Ralf Wildenhues1-1/+1
gcc/ada/ * Makefile.in (common_tools): Fix typos in $(exeext) extension. * gnat_ugn.texi (Style Checking) (Adding the Results of Compiler Checks to gnatcheck Output) (Example of Binder Output File): Fix typos. * ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb, exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads, s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb, s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb, sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads, sinfo.ads, utils.c: Fix typos in comments. * sem_ch6.adb, vms_data.ads: Fix typos in strings. From-SVN: r136329
2008-04-08fe.h: Remove global Optimize_Alignment flag, no longer usedRobert Dewar1-24/+23
2008-04-08 Robert Dewar <dewar@adacore.com> Gary Dismukes <dismukes@adacore.com> Javier Miranda <miranda@adacore.com> Ed Schonberg <schonberg@adacore.com> * fe.h: Remove global Optimize_Alignment flag, no longer used * layout.adb: Test Optimize_Alignment flags rather than global switch * lib.ads, lib.adb: New OA_Setting field in library record * lib-load.adb: New OA_Setting field in library record * lib-writ.ads, lib-writ.adb (Collect_Withs, Write_With_Lines): Place units mentioned in limited_with_ clauses in the ali file, with an 'Y' marker. New Ox fields in U line * opt.adb: New flag Optimize_Alignment_Local (Check_Policy_List[_Config]): New flags * opt.ads (Invalid_Value_Used): New flag New switch Optimize_Alignment_Local (Warn_On_Parameter_Order): New flag (Check_Policy_List[_Config]): New flags * ali.ads, ali.adb: Add indicator 'Y' to mark mark the presence of limited_with clauses. New data structures for Optimize_Alignment * bcheck.adb (Check_Consistent_Restriction_No_Default_Initialization): New procedure (Check_Consistent_Optimize_Alignment): Rework for new structure (Check_Consistent_Restrictions): Fix incorrect error message sem_ch10.adb (Decorate_Tagged_Type): Set the Parent field of a newly created class-wide type (to the Parent field of the specific type). (Install_Siblings): Handle properly private_with_clauses on subprogram bodies and on generic units. (Analyze_With_Clause, Install_Limited_Withed_Unit): Guard against an illegal limited_with_clause that names a non-existent package. (Check_Body_Required): Determine whether a unit named a limited_with clause needs a body. (Analyze_Context): A limited_with_clause is illegal on a unit_renaming. Capture Optimize_Alignment settings to set new OA_Setting field in library record. (Build_Limited_Views): Include task and protected type declarations. * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Handle the case of a possible constant redeclaration where the current object is an entry index constant. (Analyze_Object_Declaration): Generate an error in case of CPP class-wide object initialization. (Analyze_Object_Declaration): Add extra information on warnings for declaration of unconstrained objects. (Access_Type_Declaration): Set Associated_Final_Chain to Empty, to avoid conflicts with the setting of Stored_Constraint in the case where the access type entity has already been created as an E_Incomplete_Type due to a limited with clause. Use new Is_Standard_Character_Type predicate (Analyze_Object_Declaration): Apply access_constant check only after expression has been resolved, given that it may be overloaded with several access types. (Constant_Redeclaration): Additional legality checks for deferred constant declarations tha involve anonymous access types and/or null exclusion indicators. (Analyze_Type_Declaration): Set Optimize_Alignment flags (Analyze_Subtype_Declaration): Ditto (Analyze_Object_Declaration): Ditto (Analyze_Object_Declaration): Don't count tasks in generics Change name In_Default_Expression => In_Spec_Expression Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve (Process_Discriminants): Additional check for illegal use of default expressions in access discriminant specifications in a type that is not explicitly limited. (Check_Abstract_Overriding): If an inherited function dispaches on an access result, it must be overridden, even if the type is a null extension. (Derive_Subprogram): The formals of the derived subprogram have the names and defaults of the parent subprogram, even if the type is obtained from the actual subprogram. (Derive_Subprogram): In the presence of interfaces, a formal of an inherited operation has the derived type not only if it descends from the type of the formal of the parent operation, but also if it implements it. This is relevant for the renamings created for the primitive operations of the actual for a formal derived type. (Is_Progenitor): New predicate, to determine whether the type of a formal in the parent operation must be replaced by the derived type. * sem_util.ads, sem_util.adb (Has_Overriding_Initialize): Make predicate recursive to handle components that have a user-defined Initialize procedure. Handle controlled derived types whose ancestor has a user-defined Initialize procedured. (Note_Possible_Modification): Add Sure parameter, generate warning if sure modification of constant Use new Is_Standard_Character_Type predicate (Find_Parameter_Type): when determining whether a protected operation implements an interface operation, retrieve the type of the formal from the entity when the formal is an access parameter or an anonymous-access-to-subprogram. Move Copy_Parameter_List to sem_util, for use when building stubbed subprogram bodies. (Has_Access_Values): Tagged types now return False (Within_HSS_Or_If): New procedure (Set_Optimize_Alignment_Flags): New procedure Change name In_Default_Expression => In_Spec_Expression Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve From-SVN: r134011
2008-03-30a-textio.ads, [...]: Fix comment typos.Ralf Wildenhues1-2/+2
gcc/ada/ * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads, einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_smem.adb, exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb, freeze.adb, freeze.ads, frontend.adb, g-alleve.adb, g-altcon.adb, g-altive.ads, g-alveop.ads, g-alvevi.ads, g-arrspl.adb, g-busorg.ads, g-calend.adb, g-calend.ads, g-casuti.ads, g-cgideb.adb, g-comlin.adb, g-comlin.ads, g-curexc.ads, g-debpoo.adb, g-debpoo.ads, g-decstr.adb, g-dirope.adb, g-dirope.ads, g-dynhta.ads, g-dyntab.adb, g-encstr.ads, g-excact.ads, g-except.ads, g-expect.ads, g-heasor.adb, g-hesora.adb, g-hesorg.adb, g-htable.ads, g-locfil.ads, g-md5.adb, g-md5.ads, g-memdum.ads, g-moreex.ads, g-os_lib.adb, g-pehage.adb, g-pehage.ads, g-regexp.adb, g-regexp.ads, g-regpat.adb, g-regpat.ads, g-soccon-aix.ads, g-soccon-darwin.ads, g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads, g-soccon-hpux.ads, g-soccon-irix.ads, g-soccon-linux-64.ads, g-soccon-linux-ppc.ads, g-soccon-linux-x86.ads, g-soccon-lynxos.ads, g-soccon-mingw.ads, g-soccon-solaris-64.ads, g-soccon-solaris.ads, g-soccon-tru64.ads, g-soccon-vms.ads, g-soccon-vxworks.ads, g-soccon.ads, g-socket.adb, g-socket.ads, g-socthi-mingw.adb, g-socthi-vms.adb, g-socthi-vxworks.adb, g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment typos. From-SVN: r133735
2008-03-26ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI recordRobert Dewar1-43/+44
2008-03-26 Robert Dewar <dewar@adacore.com> * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure * debug.adb: Add debug flags d.r and d.v Add debug flag .T (Optimize_Alignment (Time)) Add debug flag .S (Optimize_Alignment (Space)) * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components depending on setting of relevant debug flags. Replace use of Warnings_Off by Has_Warnings_Off (Freeze_Entity): In circuit for warning on suspicious convention actuals, do not give warning if subprogram has same entity as formal type, or if subprogram does not come from source. (Freeze_Entity): Don't reset Is_Packed for fully rep speced record if Optimize_Alignment set to Space. * frontend.adb: Add call to Sem_Warn.Initialize Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings Reset Optimize_Alignment mode from debug switches .S and .T * layout.adb (Layout_Composite_Object): Rewritten for Optimize_Aligment pragma. * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment mode. * opt.ads, opt.adb: (Optimize_Alignment): New global switch * par-prag.adb (N_Pragma): Chars field removed, use Chars (Pragma_Identifier (.. instead, adjustments throughout to accomodate this change. Add entry for pragma Optimize_Alignment * sem_prag.adb (N_Pragma): Chars field removed, use Chars (Pragma_Identifier (.. instead, adjustments throughout to accomodate this change. (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg (Favor_Top_Level): Use new function Is_Access_Subprogram_Type Add implementation of pragma Optimize_Alignment From-SVN: r133549
2007-12-13system-linux-ia64.ads, [...] (Stack_Check_Limits): New target parameter.Eric Botcazou1-0/+4
2007-12-06 Eric Botcazou <ebotcazou@adacore.com> Bob Duff <duff@adacore.com> Tristan Gingold <gingold@adacore.com> * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads, system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-arm.ads, system-darwin-x86.ads, system.ads, system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads, system-vms-ia64.ads (Stack_Check_Limits): New target parameter. (Always_Compatible_Rep): New flag to control trampolines globally. (Dynamic_Trampolines_Used): New flag for implementing the No_Implicit_Dynamic_Code restriction more correctly (not yet used, and not yet set correctly for some targets). * s-taprop-vxworks.adb: Use stack limit method of stack checking. Simply indirectly call s-stchop when a task is created. * ali.ads: New flag added: Stack_Check_Switch_Set which is set when '-fstack-check' appears as an argument (entries A) in an ALI file. * fe.h (Stack_Check_Limits): Declare new target parameter. (Check_Implicit_Dynamic_Code_Allowed): New procedure. * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS. This variable is declared in C to be sure not subject to elaboration code. (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to Storage_Error. * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter. (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters. * s-stchop.ads: Add comments. * s-stchop-vxworks.adb: Package almost fully rewritten to use stack limit method of stack checking. * s-stchop-limit.ads: New file. From-SVN: r130814
2007-10-15ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default value.Emmanuel Briot1-2/+17
2007-10-15 Emmanuel Briot <briot@adacore.com> * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default value. (Xref_Record): Change type for Line, since in the case of a reference to a predefined entity (as happens for array index types), the line is set to 0. Add support for parsing multiple array index types info, or multiple inherited interfaces info. This information cannot be stored in Xref_Entity_Record, which only supports a single instance of Tref_*, and is therefore stored in the list of references instead. It has a special treatement later on in tools that use this information. From-SVN: r129320
2007-09-10exp_atag.ads, [...]: Replace headers with GPL v3 headers.Robert Dewar1-4/+3
2007-09-10 Robert Dewar <dewar@adacore.com> * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads, ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads, bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads, bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb, butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb, comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads, elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads, err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb, exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads, exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads, exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads, exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads, get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb, gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads, gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads, inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads, lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads, make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads, mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads, mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt, osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads, par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads, prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads, prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads, restrict.adb, restrict.ads, rtsfind.adb, rtsfind.ads, scn.adb, scn.ads, scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb, sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads, sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb, sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads, stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb, styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads, switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb, switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb, tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads, treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads, types.h, uintp.h, urealp.h, usage.adb, usage.ads, validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb, gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb, mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb, symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb, mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb, mlib-tgt-vms.ads: Replace headers with GPL v3 headers. From-SVN: r128332
2007-08-14s-intman-irix.adb, [...]: Minor reformattingRobert Dewar1-17/+17
2007-08-14 Robert Dewar <dewar@adacore.com> * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads, s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb, s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb, s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb, s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads, s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads, s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb, exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads, s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb, s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads, a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads, g-altcon.adb: Minor reformatting ada-tree.h: Delete empty line. ali.ads: Minor reformatting Clarification of comments. Minor spelling correction * exp_dbug.adb: Add Warnings Off to suppress new warning * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode formal * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old value * a-textio.adb (Write): Remove an unnecessary IN OUT mode from * a-textio.ads: Reorder the standard input/output/error declarations for consistency. * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call * par-ch2.adb: Recognize RM specially in errout Change 'R'M to RM in all error messages * scng.adb: Recognize RM specially in errout * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology. * s-direio.adb: Add missing routine header box. * sem_attr.ads: Add ??? comments * sem_eval.adb: Recognize RM specially in errout Change 'R'M to RM in all error messages * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes * s-tasinf.ads: Fix minor comment typo. * a-cihama.adb: Minor comment addition * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode formal * s-tasinf-tru64.ads: Fix minor comment typo. * itypes.ads: Comment update. * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed anymore. * argv.c: Added protection against null gnat_argv and gnat_envp. * bcheck.adb (Check_Consistency): Use correct markup character ({) in warning message when Tolerate_Consistency_Errors is True. * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for Any_Id, as this subprogram is only applicable to *type* entities (it sets RM_Size). Instead initialize just Esize and Alignment. From-SVN: r127440
2007-06-06bcheck.adb, [...]: Move Name_Id, File_Name_Type and Unit_Name_Type from ↵Vincent Celier1-3/+4
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
2007-04-06ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is not on ↵Quentin Ochem1-1/+1
a natural. 2007-04-06 Quentin Ochem <ochem@adacore.com> * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is not on a natural. (Scan_ALI): Cancel the xref line if there has been a reading ALI error. From-SVN: r123548
2006-10-31a-dispat.ads, [...]: New files.Robert Dewar1-2/+55
2006-10-31 Robert Dewar <dewar@adacore.com> Jose Ruiz <ruiz@adacore.com> * a-dispat.ads, a-diroro.ads, a-diroro.adb: New files. * ali.adb (Get_Name): Properly handle scanning of wide character names encoded with brackets notation. (Known_ALI_Lines): Add S lines to this list. (Scan_ALI): Acquire S (priority specific dispatching) lines. New flag Elaborate_All_Desirable in unit table * ali.ads (Priority_Specific_Dispatching): Add this range of identifiers to be used for Priority_Specific_Dispatching table entries. (ALIs_Record): Add First_Specific_Dispatching and Last_Specific_Dispatching that point to the first and last entries respectively in the priority specific dispatching table for this unit. (Specific_Dispatching): Add this table for storing each S (priority specific dispatching) line encountered in the input ALI file. New flag Elaborate_All_Desirable in unit table * bcheck.adb: (Check_Configuration_Consistency): Add call to Check_Consistent_Dispatching_Policy. (Check_Consistent_Dispatching_Policy): Add this procedure in charge of verifying that the use of Priority_Specific_Dispatching, Task_Dispatching_Policy, and Locking_Policy is consistent across the partition. * bindgen.adb: (Public_Version_Warning): function removed. (Set_PSD_Pragma_Table): Add this procedure in charge of getting the required information from ALI files in order to initialize the table containing the specific dispatching policy. (Gen_Adainit_Ada): Generate the variables required for priority specific dispatching entries (__gl_priority_specific_dispatching and __gl_num_specific_dispatching). (Gen_Adainit_C): Generate the variables required for priority specific dispatching entries (__gl_priority_specific_dispatching and __gl_num_specific_dispatching). (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching pragma entries. (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed. (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures. (Tab_To): Removed. (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of a call to gnat_set_globals. Generate a string containing settings from Priority_Specific_Dispatching pragma entries. (Gen_Object_Files_Options): Do not include the runtime libraries when pragma No_Run_Time is specified. * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for consistency with s-intman-posix.adb. (__gnat_error_handler, case FreeBSD): Account for the fact that the handler is installed with SA_SIGINFO. (__gnat_adjust_context_for_raise, FreeBSD case): New function for FreeBSD ZCX support, copied from Linux version. Add MaRTE-specific definitions for the linux target. Redefine sigaction, sigfillset, and sigemptyset so the routines defined by MaRTE. (__gl_priority_specific_dispatching): Add this variable that stores the string containing priority specific dispatching policies in the partition. (__gl_num_specific_dispatching): Add this variable that indicates the highest priority for which a priority specific dispatching pragma applies. (__gnat_get_specific_dispatching): Add this routine that returns the priority specific dispatching policy, as set by a Priority_Specific_Dispatching pragma appearing anywhere in the current partition. The input argument is the priority number, and the result is the upper case first character of the policy name. (__gnat_set_globals): Now a dummy function. (__gnat_handle_vms_condition): Feed adjust_context_for_raise with mechargs instead of sigargs, as the latter can be retrieved from the former and sigargs is not what we want on ia64. (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the mechargs argument. (__gnat_adjust_context_for_raise, ia64-vms): New function. (tasking_error): Remove unused symbol. (_abort_signal): Move this symbol to the IRIX specific part since this is the only target that uses this definition. (Check_Abort_Status): Move this symbol to the IRIX specific part since this is the only target that uses this definition. (Lock_Task): Remove unused symbol. (Unlock_Task): Remove unused symbol. * lib-writ.adb (Write_ALI): Output new S lines for Priority_Specific_Dispatching pragmas. Implement new flag BD for elaborate body desirable * lib-writ.ads: Document S lines for Priority Specific Dispatching. (Specific_Dispatching): Add this table for storing the entries corresponding to Priority_Specific_Dispatching pragmas. Document new BD flag for elaborate body desirable * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list of known pragmas. From-SVN: r118243
2005-11-15sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_PackageRobert Dewar1-2/+5
2005-11-14 Robert Dewar <dewar@adacore.com> Ed Schonberg <schonberg@adacore.com> * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package (Check_Elab_Call): A call within a protected body is never an elaboration call, and does not require checking. (Same_Elaboration_Scope): Take into account protected types for both entities. (Activate_Elaborate_All_Desirable): New procedure * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable (Elab_Error_Msg): Use -da to include internal unit links, not -de. * lib-writ.ads, lib-writ.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable Use new Elaborate_All_Desirable flag in N_With_Clause node * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for N_Free_Statement nodes. Define new class N_Subprogram_Instantiation Add Elaborate_Desirable flag to N_With_Clause node Add N_Delay_Statement (covering two kinds of delay) * debug.adb: Introduce d.f flag for compiler Add -da switch for binder From-SVN: r106968
2005-09-05lib-xref.adb (Output_Overridden_Op): Display information on overridden ↵Ed Schonberg1-1/+11
operation. 2005-09-01 Ed Schonberg <schonberg@adacore.com> Emmanuel Briot <briot@adacore.com> * lib-xref.adb (Output_Overridden_Op): Display information on overridden operation. * lib-xref.ads: Add documentation on overridden operations. * ali.ads (Xref_Entity_Record): Add support for storing the overriding information. * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the overriding entity information. From-SVN: r103871
2005-07-01Update FSF addressR. Kelley Cook1-2/+2
From-SVN: r101492
2005-06-16lib-xref.ads, [...] (Generate_Definition): Treat any entity declared within ↵Ed Schonberg1-2/+18
an inlined body as referenced... 2005-06-14 Ed Schonberg <schonberg@adacore.com> Emmanuel Briot <briot@adacore.com> * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity declared within an inlined body as referenced, to prevent spurious warnings. (Output_One_Ref): If an entity renames an array component, indicate in the ALI file that this aliases (renames) the array. Capture as well function renamings that rename predefined operations. Add information about generic parent for package and subprogram instances. (Get_Type_Reference): For a subtype that is the renaming of an actual in an instantiation, use the first_subtype to ensure that we don't generate cross-reference information for internal types. For objects and parameters of a generic private type, retain the '*' indicator to distinguish such an entity from its type. * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line, to store information about instantiated entities. * ali.adb (Scan_ALI): Add support for parsing the reference to the generic parent * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram (Parse_Identifier_Info, Parse_Token): Add support for the generic parent information. From-SVN: r101046
2005-02-10g-zstspl.ads: New file.Robert Dewar1-4/+4
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
2005-01-03s-atacco.ads, [...]: Protect use of 'Constrained by warnings on/off...Arnaud Charlet1-1/+24
* s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings on/off, since this is an obsolescent feature, for which we now generate a warning. * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if warning mode is set and obsolescent usage of this attribute occurs. (Resolve_Access, case 'Access): Note that GNAT uses the context type to disambiguate overloaded prefixes, in accordance with AI-235. GNAT code predates, and partly motivates, the adoption of the AI. Implement new Ada 2005 attribute Mod * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005 attribute Mod. * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for pragma restrictions. New entry for Ada 2005 attribute Mod. * par-prag.adb: Add recognition of new pragma Restrictions No_Dependence Recognize restriction No_Obsolescent_Features at parse time * bcheck.adb: Add circuitry for checking for consistency of No_Dependence restrictions. * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence restrictions. * restrict.ads, restrict.adb: Add subprograms to deal with No_Dependence restrictions. * rtsfind.adb: Check that implicit with's do not violate No_Dependence restrictions. * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb, sem_attr.adb: Add check for new restriction No_Obsolescent_Features * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new dummy parameter to scng instantiation. Needed for new restriction No_Obsolescent_Features * scn.adb: (Obsolescent_Check): New procedure Needed for new restriction No_Obsolescent_Features * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as specified by AI-285, needed for implementation of AI-388 (adding greek pi to Ada.Numerics). Add new generic formal to scng, needed for new restriction No_Obsolescent_Features. * s-rident.ads: Add new restriction No_Obsolescent_Features. * ali.ads, ali.adb: Adjustments for reading new No_Dependence restrictions lines. (Scan_ALI): When finding an unexpected character on an R line, raise exception Bad_R_Line, instead of calling Fatal_Error, so that, when Ignore_Errors is True, default restrictions are set and scanning of the ALI file continues with the next line. Also, when Bad_R_Line is raised and Ignore_Errors is True, skip to the end of le line. * sem_ch10.adb: Check that explicit with's do not violate No_Dependence restrictions. (Install_Withed_Unit): Add code to implement AI-377 and diagnose illegal context clauses containing child units of instance. * sem_prag.adb: Processing and checking for new No_Dependence restrictions. (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to analyze and check the External argument. * a-numeri.ads: Add greek letter pi as alternative spelling of Pi From-SVN: r92829
2004-04-23[multiple changes]Arnaud Charlet1-1/+1
2004-04-23 Emmanuel Briot <briot@act-europe.fr> * adaint.c (__gnat_try_lock): No longer requires that the parent directory be writable, the directory itself is enough. (gnat_is_absolute_path): Change profile, so that the call from GNAT.OS_Lib can be made more efficient. * adaint.h (gnat_is_absolute_path): Change profile, so that the call from GNAT.OS_Lib can be made more efficient. * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid one copy of the file name. Found by code reading. 2004-04-23 Vincent Celier <celier@gnat.com> * gnat_ugn.texi: Add documentation for gnatmake switch -eL Correct documentation on gnatmake switches transmitted to the compiler * ali.ads: Minor comment fix 2004-04-23 Javier Miranda <miranda@gnat.com> * sem_ch6.adb: (Confirming Types): Code cleanup * decl.c (gnat_to_gnu_entity): Give support to anonymous access to subprogram types: E_Anonymous_Access_Subprogram_Type and E_Anonymous_Access_Protected_Subprogram_Type. 2004-04-23 Thomas Quinot <quinot@act-europe.fr> * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating whether a pragma All_Calls_Remote applies to the subprogram on which 'Access is taken. No functional change is introduced by this revision; the new parameter will be used to allow calls to local RCI subprograms to be optimized to not use the PCS in the case where no pragma All_Calls_Remote applies, as is already done in the PolyORB implementation of the DSA. * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating whether a pragma All_Calls_Remote applies to the subprogram on which 'Access is taken. No functional change is introduced by this revision; the new parameter will be used to allow calls to local RCI subprograms to be optimized to not use the PCS in the case where no pragma All_Calls_Remote applies, as is already done in the PolyORB implementation of the DSA. 2004-04-23 Robert Dewar <dewar@gnat.com> * Makefile.rtl: Add entry for s-addope.o in run time library list * Make-lang.in: Add entry for s-addope.o to GNAT1 objects * s-addope.ads, s-addope.adb: New files. * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb, s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow System.Address to be non-private and signed. * sem_elim.adb: Minor reformatting (fairly extensive) Some minor code reorganization from code reading Add a couple of ??? comments 2004-04-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> * trans.c (tree_transform, build_unit_elab): Don't call getdecls. (tree_transform, case N_If_Statement): Remove non-determinism. * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL. 2004-04-23 Sergey Rybin <rybin@act-europe.fr> * gnat_rm.texi: Small fixes in the changes made in the 'pragma Eliminate' section. * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is no longer used as a parameter name for Eliminate pragma). From-SVN: r81086
2004-03-22[multiple changes]Arnaud Charlet1-1/+1
2004-03-22 Cyrille Comar <comar@act-europe.fr> * ali.ads: Fix Comment about Dynamic_Elab. * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab, Has_RACW, Is_Generic, etc.) (Output_Object, Gnatls): Take into account ALI files not attached to an object. 2004-03-22 Vincent Celier <celier@gnat.com> * gprep.adb: Change all String_Access to Name_Id (Is_ASCII_Letter): new function (Double_File_Name_Buffer): New procedure (Preprocess_Infile_Name): New procedure (Process_Files): New procedure (Gnatprep): Check if output and input are existing directories. Call Process_Files to do the real job. 2004-03-22 Robert Dewar <dewar@gnat.com> * prj-env.adb, prj-nmsc.ads, prj-proc.ads, s-stache.ads, s-stache.adb: Comment updates. Minor reformatting. 2004-03-22 Sergey Rybin <rybin@act-europe.fr> * scn.adb (Contains): Add check for EOF, is needed for a degenerated case when the source contains only comments. 2004-03-22 Ed Schonberg <schonberg@gnat.com> * sem_ch10.adb (Analyze_Compilation_Unit): When generating a declaration for a child subprogram body that acts as a spec, indicate that the entity in the declaration needs debugging information. * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying full view if the subtype is created for a constrained record component; gigi has enough information to construct the record, and there is no place in the tree for the declaration. * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without serial number for the dummy body that is built for analysis, to avoid inconsistencies in the generation of internal names when compiling with -gnatN. 2004-03-22 Thomas Quinot <quinot@act-europe.fr> * sem_util.adb (Is_Object_Reference): A view conversion denotes an object. 2004-03-22 GNAT Script <nobody@gnat.com> * Make-lang.in: Makefile automatically updated From-SVN: r79826
2004-02-18[multiple changes]Arnaud Charlet1-2/+4
2004-02-18 Emmanuel Briot <briot@act-europe.fr> * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that Scan_ALI can be used for multiple ALI files without reinitializing between calls. 2004-02-18 Robert Dewar <dewar@gnat.com> * debug.adb: Minor reformatting. 2004-02-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET to zero if there is an address clause. 2004-02-18 Thomas Quinot <quinot@act-europe.fr> * exp_util.adb (Side_Effect_Free): Any literal is side effects free. 2004-02-18 Gary Dismukes <dismukes@gnat.com> * layout.adb (Layout_Component_List): Revise generation of call to discriminant-checking function to pass selections of all of the type's discriminants rather than just the variant-controlling discriminant. 2004-02-18 Olivier Hainque <hainque@act-europe.fr> * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to fail in the current setup and triggers spurious system error messages. Pretend it occurred and failed instead. 2004-02-18 Vincent Celier <celier@gnat.com> * bld.adb: Mark FLDFLAGS as saved (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when it is not the root project. Put each directory to be extended between double quotes to prevent it to be expanded on Windows. (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing the project file. Set them back to their initial values if they have not been set in the project file. * gprcmd.adb: (Gprdebug, Debug): New global variables (Display_Command): New procedure (Usage): Document new command "linkopts" Call Display_Command when env var GPRDEBUG has the value "TRUE" Implement new command "linkopts" Remove quotes that may be around arguments for "extend" Always call Normalize_Pathname with arguments formatted for the platform * Makefile.generic: Link C/C++ mains with $(FLDFLAGS) Change @echo to @$(display) in target clean to be able to clean silently * Makefile.prolog: Save FLDFLAGS and give it an initial empty value * prj-part.adb (Project_Path_Name_Of): Do not put final result in canonical case. * prj-part.adb (Parse_Single_Project): Always call with From_Extended = Extending_All when current project is an extending all project. * vms_conv.adb (Output_File_Expected): New Boolean global variable, set to True only for LINK command, after Unix switch -o. (Process_Arguments): Set Output_File_Expected to True for LINK command after Unix switch -o. When Output_File_Expected is True, never add an extension to a file name. * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the option file name, only to the --for-linker= switch. (Option_File_Name): If option file name do not end with ".opt", append "/OPTIONS". 2004-02-18 GNAT Script <nobody@gnat.com> * Make-lang.in: Makefile automatically updated From-SVN: r78024