aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2007-08-14[multiple changes]Arnaud Charlet43-2651/+3277
2007-08-14 Geert Bosch <bosch@adacore.com> * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads, s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads: Add required linker pragmas for automatically linking with the gnalasup linear algebra support library, and the systems math library. Rename cdot to cdotu and zdot to zdotu. Update header comment to describe purpose of package. 2007-08-14 Thomas Quinot <quinot@adacore.com> * exp_ch7.adb (Find_Final_List): For an anonymous access type that has an explicitly specified Associated_Final_Chain, use that list. (Expand_N_Package_Body): Build dispatch tables of library level tagged types. (Expand_N_Package_Declaration): Build dispatch tables of library level tagged types. Minor code cleanup. 2007-08-14 Vincent Celier <celier@adacore.com> * gnatchop.adb (Terminate_Program): Remove exception and use Types.Terminate_Program instead. * osint.ads, osint.adb (Current_Exit_Status): New global variable (Find_Program_Name): Added protection against empty name. (OS_Exit_Through_Exception): New procedure * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body (OS_Exit_Default): New procedure that contains the previous implementation of procedure OS_Exit. (Final_Value): Remove obsolete Interix stuff. 2007-08-14 Thomas Quinot <quinot@adacore.com> * g-socket.ads: Reorganize example code so that it also works on Windows XP. 2007-08-14 Tristan Gingold <gingold@adacore.com> * g-trasym.ads: AIX now supports symbolic backtraces. 2007-08-14 Ed Schonberg <schonberg@adacore.com> * lib-load.adb (From_Limited_With_Chain): Always scan the stack of units being loaded to detect circularities. A circularity may be present even if the current chain of pending units to load starts from a limited_with_clause. * lib-load.ads: Change profile of Load_Unit to use a with_clause rather than a boolean flag, in order to detect circularities in with_clauses. * par-load.adb: Use current with_clause in calls to Load_Unit, rather than propagating the From_Limited_With flag, in order to handle properly circularities involving with_clauses. 2007-08-14 Nicolas Setton <setton@adacore.com> * link.c (FreeBSD): Add "const" keyword where needed, to eliminate warnings. 2007-08-14 Arnaud Charlet <charlet@adacore.com> * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects to build for libgnala. libgnat: Add rules to build libgnala.a (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5. Add s-osinte-vxworks-kernel.adb to the target pairs of the kernel run-time lib for VxWorks 6, which would provide a different implementation for Task_Cont and Task_Stop than the VxWorks 5 version. x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now running ZCX by default. Add g-sttsne-locking to LynxOS version. Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead. On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads. * system-darwin-x86.ads: New file. * Make-lang.in: Delete files before copying onto them, so if they are read-only, the copy won't fail. Update dependencies 2007-08-14 Pascal Obry <obry@adacore.com> * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries naming scheme. 2007-08-14 Vincent Celier <celier@adacore.com> * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access (Gcc): Initialize Gcc_Name at the first call 2007-08-14 Ed Schonberg <schonberg@adacore.com> * sem_ch7.adb (Analyze_Package_Specification): Do not install private with_clauses of the enclosing unit when analyzing the package specification of a nested instance. 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com> * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed. (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines. Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the layout of N_Allocator. 2007-08-14 Thomas Quinot <quinot@adacore.com> * rtsfind.adb (Check_RPC): Add PCS version check. * gnatvsn.ads, gnatvsn.adb: Add PCS version. (Gnat_Free_Software): New function. * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns the PCS_Version value from s-parint, used to check that it is consistent with what exp_dist expects. * s-parint.ads (PCS_Version): New entity for checking consistency between exp_dist and PCS. * gen-soccon.c: (SO_REUSEPORT): New constant. 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com> * a-calfor.adb (Image (Duration; Boolean)): Change type of local variable Sub_Second to Duration in order to accomodate a larger range of arithmetic operations. 2007-08-14 Bob Duff <duff@adacore.com> * g-sttsne-locking.ads: Move comments from spec to body. * g-sttsne-locking.adb: Move comments from spec to body. * g-sttsne-vxworks.ads: Removed. * g-sttsne-vxworks.adb: Removed. From-SVN: r127467
2007-08-14tracebak.c: Use tb-ivms.c on OpenVMS Itanium.Tristan Gingold3-134/+237
2007-08-14 Tristan Gingold <gingold@adacore.com> * tracebak.c: Use tb-ivms.c on OpenVMS Itanium. * tb-ivms.c: New file. * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2 From-SVN: r127466
2007-08-14s-veboop.adb (SU): New named number initialized to System.Storage_Unit.Gary Dismukes1-12/+18
2007-08-14 Gary Dismukes <dismukes@adacore.com> * s-veboop.adb (SU): New named number initialized to System.Storage_Unit. (True_Val): The initialization expression is revised to use SU (= Storage_Unit) rather than assuming 8 for the component size of an unpacked Boolean array. From-SVN: r127465
2007-08-14s-tpobop.ads, [...] (Requeue_With_Abort): Rename field With_Abort.Arnaud Charlet6-69/+60
2007-08-14 Arnaud Charlet <charlet@adacore.com> * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb, s-taskin.ads (Requeue_With_Abort): Rename field With_Abort. (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort parameter. * s-tassta.adb (Task_Wrapper): Increased value of the small overflow guard to 12K. From-SVN: r127464
2007-08-14s-tasini.adb (Get_Stack_Info): Move this function to ↵Jose Ruiz2-16/+13
System.Soft_Links.Tasking because it is common to the... 2007-08-14 Jose Ruiz <ruiz@adacore.com> * s-tasini.adb (Get_Stack_Info): Move this function to System.Soft_Links.Tasking because it is common to the full and the restricted run times. (Init_RTS): Do not set the Get_Stack_Info soft link because it is done in SSL.Tasking.Init_Tasking_Soft_Links. * s-solita.adb (Get_Stack_Info): Function moved from System.Tasking.Initialization because it is common to the full and the restricted run times. (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info. From-SVN: r127463
2007-08-14s-finimp.adb (Detach_From_Final_List): make this procedure idempotent since ↵Cyrille Comar1-1/+8
it is potentially used in cases implying... 2007-08-14 Cyrille Comar <comar@adacore.com> * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent since it is potentially used in cases implying double finalization of the same object. From-SVN: r127462
2007-08-14s-fileio.adb (Is_Open): Add check for usability of the underlying file stream.Pascal Obry1-1/+7
2007-08-14 Pascal Obry <obry@adacore.com> * s-fileio.adb (Is_Open): Add check for usability of the underlying file stream. From-SVN: r127461
2007-08-14s-ficobl.ads: Declare AFCB as a tagged incomplete type...Ed Schonberg2-3/+3
2007-08-14 Ed Schonberg <schonberg@adacore.com> * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent obsolescent warning on application of 'Class to an incomplete type. * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to prevent obsolescent warning on application of 'Class to an incomplete type. From-SVN: r127460
2007-08-14sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a ↵Javier Miranda1-3/+12
generated interface thunk. 2007-08-14 Javier Miranda <miranda@adacore.com> * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a generated interface thunk. From-SVN: r127459
2007-08-14sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code that is ↵Javier Miranda1-142/+186
common to Analyze_Protected_Type... 2007-08-14 Javier Miranda <miranda@adacore.com> * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code that is common to Analyze_Protected_Type and Analyze_Task_Type. In case of private types add missing check on matching interfaces in the partial and full declarations. (Analyze_Protected_Type): Code cleanup. (Analyze_Task_Type): Code cleanup. From-SVN: r127458
2007-08-14par-ch6.adb (P_Formal_Part): Fix wrong error message associated with ↵Javier Miranda1-8/+21
null-excluding access types. 2007-08-14 Javier Miranda <miranda@adacore.com> * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with null-excluding access types. From-SVN: r127457
2007-08-14output.ads, output.adb (Write_Eol): Remove trailing spaces before writing ↵Vincent Celier2-2/+22
the line. 2007-08-14 Vincent Celier <celier@adacore.com> * output.ads, output.adb (Write_Eol): Remove trailing spaces before writing the line. (Write_Eol_Keep_Blanks): New procedure to write a line, including possible trailing spaces. (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line From-SVN: r127456
2007-08-14layout.adb (Layout_Type): In the case of access-to-subprogram types...Gary Dismukes1-2/+15
2007-08-14 Gary Dismukes <dismukes@adacore.com> * layout.adb (Layout_Type): In the case of access-to-subprogram types, if AAMP_On_Target is True, then the size of the type encompasses two addresses (a static link and a subprogram address), except in the case of library-level access types. From-SVN: r127455
2007-08-14impunit.adb: Re-organize System.Random_Numbers and GNAT.Random_Numbers and ↵Paul Hilfinger8-2/+1235
add to builds. 2007-08-14 Paul Hilfinger <hilfinger@adacore.com> * impunit.adb: Re-organize System.Random_Numbers and GNAT.Random_Numbers and add to builds. * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert* * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files. * a-assert.ads, a-assert.adb: New files. From-SVN: r127454
2007-08-14gnatls.adb: (Corresponding_Sdep_Entry): Always return a valueVincent Celier2-124/+411
2007-08-14 Vincent Celier <celier@adacore.com> * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value (Output_Source): Do nothing if parameter is No_Sdep_Id * make.adb (Gnatmake): Do not rebuild an archive simply because a shared library it imports has a later time stamp. (Check): Resolve the symbolic links in the path name of the object directory. Check that the ALI file is in the correct object directory Check if a file name does not correspond to the mapping of units to file names. (Display_Version): New procedure (Initialize): Process switches --version and --help Use type Path_Name_Type for path name From-SVN: r127453
2007-08-14gnatlink.adb (Gnatlink): Pass switches to the linker even if the ↵Eric Botcazou1-8/+45
binder-generated file is not in Ada. 2007-08-14 Eric Botcazou <ebotcazou@adacore.com> * gnatlink.adb (Gnatlink): Pass switches to the linker even if the binder-generated file is not in Ada. Pass -mrtp to the linker if it is GCC and --RTS=rtp has been recorded in the ALI file. Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded. From-SVN: r127452
2007-08-14g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing switches.Emmanuel Briot1-0/+22
2007-08-14 Emmanuel Briot <briot@adacore.com> * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing switches. From-SVN: r127451
2007-08-14g-catiio.adb (Image): For the case of %s...Hristian Kirtchev1-7/+25
2007-08-14 Hristian Kirtchev <kirtchev@adacore.com> * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time values to compute the number of seconds since the Unix Epoc in order to account for Daylight Savings Time. Perform special processing for dates that are earlier than the Unix Epoc to obtain a negative number. From-SVN: r127450
2007-08-14exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating ↵Thomas Quinot1-132/+127
typecode parameters for a union (in a variant record)... 2007-08-14 Thomas Quinot <quinot@adacore.com> * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating typecode parameters for a union (in a variant record), remove extraneous layer of Any wrapping for member label. (Expand_Receiving_Stubs_Bodies): For an RCI package body that has elabration statements, register the package with the name server at the beginning, not at the end, of the elaboration statements so that they can create remote access to subprogram values that designate remote subprograms from the package. From-SVN: r127449
2007-08-14exp_ch9.adb (Build_Protected_Entry): Propagate the original source location ↵Javier Miranda1-15/+43
to allow the correct generation of... 2007-08-14 Javier Miranda <miranda@adacore.com> Hristian Kirtchev <kirtchev@adacore.com> * exp_ch9.adb (Build_Protected_Entry): Propagate the original source location to allow the correct generation of errors in case of restrictions applied to the expanded code. (Expand_Entry_Barrier): Remove all generated renamings for a barrier function if the condition does not reference them. (Expand_Entry_Body_Declarations): Mark the index constant as having a valid value. From-SVN: r127448
2007-08-14sem_res.adb (Resolve_Allocator): Propagate any coextensions that appear in ↵Ed Schonberg1-74/+167
the subtree to the current allocator... 2007-08-14 Ed Schonberg <schonberg@adacore.com> Hristian Kirtchev <kirtchev@adacore.com> * sem_res.adb (Resolve_Allocator): Propagate any coextensions that appear in the subtree to the current allocator if it is not a static coextension. (Resolve_Allocator): Perform cleanup if resolution has determined that the allocator is not a coextension. (Resolve): Skip an interpretation hidden by an abstract operator only when the type of the interpretation matches that of the context. (Resolve): When looping through all possible interpretations of a node, do not consider those that are hidden by abstract operators. (Resolve_Actuals): When verifying that an access to class-wide object is an actual for a controlling formal, ignore anonymous access to subprograms whose return type is an access to class_wide type. (Resolve_Slice): If the prefix of the slice is a selected component whose type depends on discriminants, build its actual subtype before applying range checks on the bounds of the slice. (Valid_Conversion): In an instance or inlined body, compare root types, to prevent anomalies between private and public views. (Resolve): Improve error message for ambiguous fixed multiplication expressions that involve universal_fixed multiplying operations. From-SVN: r127447
2007-08-14sem_ch8.ads, [...] (Find_Type, [...]): Use correct entity as denoted entity ↵Thomas Quinot2-90/+152
for the selector of the rewritten node. 2007-08-14 Thomas Quinot <quinot@adacore.com> Ed Schonberg <schonberg@adacore.com> * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute reference): Use correct entity as denoted entity for the selector of the rewritten node. (Find_Direct_Name): Add comment about Generate_Reference incorrectly setting the Referenced_As_LHS flag for entities that are implicitly dereferenced. (Find_Type): If the type is an internally generated incomplete type, mark the full view as referenced, to prevent spurious warnings. (Find_Selected_Component, Has_Components): Handle properly non-limited views that are themselves incomplete types. Handle interfaces visible through limited-with clauses. (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a subprogram generic actual for which we have generated a renaming. Warn when the renaming introduces a homonym of the renamed entity, and the renamed entity is directly visible. From-SVN: r127446
2007-08-14sem_cat.ads, [...] (Has_Stream_Attribute_Definition): New formal ↵Thomas Quinot2-25/+51
At_Any_Place indicating... 2007-08-14 Thomas Quinot <quinot@adacore.com> Ed Schonberg <schonberg@adacore.com> * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New formal At_Any_Place indicating, when True, that we want to test for availability of the stream attribute at any place (as opposed to the current visibility context only). (Missing_Read_Write_Attributes): A stream attribute is missing for the purpose of enforcing E.2.2(8) only if it is not available at any place. Take into account the Ada2005 pragma Has_Preelaborable_Initialization when checking the legality of an extension aggregate in a preelaborable package. Treat the literal null as a valid default expression in a component declaration for a type with preelaborable initialization. A limited interface is a legal progenitor for the designated type of a remote access to class-wide type. From-SVN: r127445
2007-08-14sem_ch4.adb (Try_Class_Wide_Operation): use base type of first parameter to ↵Ed Schonberg1-42/+151
determine whether operation applies to the... 2007-08-14 Ed Schonberg <schonberg@adacore.com> * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first parameter to determine whether operation applies to the prefix. (Complete_Object_Operation): If actual has an access type and controlling formal is not an in_parameter, reject the actual if it is an access_to_constant type. (Try_Primitive_Operation): If the type of the prefix is a formal tagged type, the candidate operations are found in the scope of declaration of the type, because the type has no primitive subprograms. (Analyze_Selected_Component): If prefix is class-wide, and root type is a private extension, only examine visible components before trying to analyze as a prefixed call. Change Entity_List to Type_To_Use, for better readability. (Has_Fixed_Op): Use base type when checking whether the type of an operator has a user-defined multiplication/division (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when user-defined operators are available for fixed-point types. From-SVN: r127444
2007-08-14sem_ch12.ads, [...] (Instantiate_Type): If the formal is a derived type with ↵Ed Schonberg2-161/+598
interface progenitors use the analyzed... 2007-08-14 Ed Schonberg <schonberg@adacore.com> Gary Dismukes <dismukes@adacore.com> Thomas Quinot <quinot@adacore.com> * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a derived type with interface progenitors use the analyzed formal as the parent of the actual, to create renamings for all the inherited operations in Derive_Subprograms. (Collect_Previous_Instances): new procedure within of Load_Parent_Of_Generic, to instantiate all bodies in the compilation unit being loaded, to ensure that the generation of global symbols is consistent in different compilation modes. (Is_Tagged_Ancestor): New function testing the ancestor relation that takes progenitor types into account. (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by traversing over the primitives of the formal and actual types to locate any abstract subprograms of the actual type that correspond to a nonabstract subprogram of the formal type's ancestor type(s), and issue an error if such is found. (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation, Instantiate_Package_Body, Instantiate_Subprogram_Body): Remove bogus guard around calls to Inherit_Context. (Reset_Entity): If the entity is the selector of a selected component that denotes a named number, propagate constant-folding to the generic template only if the named number is global to the generic unit. (Set_Instance_Env): Only reset the compilation switches when compiling a predefined or internal unit. From-SVN: r127443
2007-08-14table.adb, [...] (Append): Reimplement in terms of Set_Item.Thomas Quinot12-93/+215
2007-08-14 Thomas Quinot <quinot@adacore.com> * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms of Set_Item. (Set_Item): When the new item is an element of the currently allocated table passed by reference, save a copy on the stack if we're going to reallocate. Also, in Table.Set_Item, make sure we test the proper variable to determine whether to call Set_Last. * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb, symbols-vms.adb, symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace some occurrences of the pattern T.Increment_Last; T.Table (T.Last) := Value; with a cleaner call to T.Append (Value); From-SVN: r127442
2007-08-14a-cihama.ads, [...] (Next): Applied pragma Inline.Bob Duff21-407/+561
2007-08-14 Bob Duff <duff@adacore.com> * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads, a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads, a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads, a-coorse.ads (Next): Applied pragma Inline. Make all Containers packages Remote_Types (unless they are already Pure). (Previous): applied pragma Inline (Elements_Type): is now a record instead of an array From-SVN: r127441
2007-08-14s-intman-irix.adb, [...]: Minor reformattingRobert Dewar73-581/+786
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-08-14binde.adb (Elab_All_Links): Remove unnecessary call to ↵Thomas Quinot5-72/+106
Generic_Separately_Compiled (if... 2007-08-14 Thomas Quinot <quinot@adacore.com> Vincent Celier <celier@adacore.com> * binde.adb (Elab_All_Links): Remove unnecessary call to Generic_Separately_Compiled (if a unit satisfies this predicate, there won't be an associated Afile). (Elab_All_Links): Fail if a referenced unit cannot be found * bindgen.adb: Fix comments in bindgen regarding consistency checks done in Bcheck: the checks are made across units within a partition, not across several partitions. Fix generation of C binder file for VxWorks. * lib.adb (Generic_Separately_Compiled): Rename to Generic_May_Lack_ALI, more descriptive of the current use of the predicate, and update documentation. * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code reorganization and documentation update for the case of predefined library generics (for which we do not reference an Afile). From-SVN: r127439
2007-08-14a-tags.ads, a-tags.adb (Displace): Associate a message with the raised CE ↵Javier Miranda4-77/+57
exception. 2007-08-14 Javier Miranda <miranda@adacore.com> * a-tags.ads, a-tags.adb (Displace): Associate a message with the raised CE exception. (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr, To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr, To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package spec. (Default_Prim_Op_Count): Removed. (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind, Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind): Remove pragma Inline_Always. * rtsfind.ads (Default_Prim_Op_Count): Removed (Max_Predef_Prims): New entity (RE_Expanded_Name): Removed (RE_HT_Link): Removed (RE_Iface_Tag): Remmoved (RE_Ifaces_Table): Removed (RE_Interfaces_Array): Removed (RE_Interface_Data_Element): Removed (RE_Nb_Ifaces): Removed (RE_RC_Offset): Removed (RE_Static_Offset_To_Top): Removed * exp_atag.ads (Build_Inherit_Prims): Addition of a new formal. (Build_Inherit_Predefined_Prims): Replace occurrences of Default_ Prim_Op_Count by Max_Predef_Prims. From-SVN: r127438
2007-08-14adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept dir/file...Jose Ruiz2-15/+51
2007-08-14 Jose Ruiz <ruiz@adacore.com> * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept dir/file, device:/dir/file, and device:drive_letter:/dir/file as representing absolute path names. __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues. * cstreams.c (__gnat_full_name for VxWorks): Use __gnat_is_absolute_path to detect whether we need to add the current directory to normalize the path. From-SVN: r127437
2007-08-14sem_ch10.adb: Create a limited view of an incomplete type...Ed Schonberg1-170/+248
2007-08-14 Ed Schonberg <schonberg@adacore.com> * sem_ch10.adb: Create a limited view of an incomplete type, to make treatment of limited views uniform for all visible declarations in a limited_withed package. Set flag indicating that a subprogram body for a child unit has a generated spec. (Analyze_Compilation_Unit): If unit is a subprogram body that has no separate declaration, remove the unit name from visibility after compilation, so that environment is clean for subsequent compilations. (Install_Limited_Context_Clauses): Do not install a limited_private_with_clause unless the current unit is a body or a private child unit. (Analyze_Subunit, Install_Parents): Treat generic and non-generic units in the same fashion. (Install_Limited_Withed_Unit): Do not install a limited with clause if it applies to the declaration of the current package body. (Remove_Private_With_Clauses): If there is a regular with_clause for the unit, delete Private_With_Clause from context, to prevent improper hiding when processing subsequent nested packages and instantiations. From-SVN: r127436
2007-08-14s-taprop-linux.adb (Get_Stack_Attributes): New subprogram.Olivier Hainque4-7/+146
2007-08-14 Olivier Hainque <hainque@adacore.com> * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the stack size and initial stack pointer value for a given task. (Enter_Task): Get the stack attributes of the task we are entering and let the stack checking engine know about them. * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram. Let the stack-checking engine know about the initial sp value and stack size associated with the current task. (Set_Stack_Info): If a stack base has been notified for the current task, honor it. Fallback to the previous less accurate method otherwise. * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body. From-SVN: r127435
2007-08-14s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.Pascal Obry6-1/+494
2007-08-14 Pascal Obry <obry@adacore.com> * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows. (SYSTEM_INFO): New record. (SetThreadIdealProcessor): New imported routine needed for supporting task_info pragma on Windows. * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task info can be applied to the current host. (Create_Task): Set the ideal processor if information is present. * s-tasinf-mingw.adb, s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads: New files. From-SVN: r127434
2007-08-14system-solaris-x86.ads (ZCX_By_Default): Switch to True.Olivier Hainque5-114/+169
2007-08-14 Olivier Hainque <hainque@adacore.com> * system-solaris-x86.ads (ZCX_By_Default): Switch to True. (GCC_ZCX_Support): Switch to True. * s-intman-solaris.adb (Notify_Exception): Call Adjust_Context_For_Raise before raising, as expected for signal handlers in general. * s-intman-posix.adb (Notify_Exception): Remove declaration of Adjust_Context_For_Raise, moved to the spec of this unit to be visible to other implementation bodies. * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to be visible by multiple implementation bodies. * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context only for conditions coming from hardware. [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement, adjustments to signal context prior to exception raise from signal handler. (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP mode. Solaris section: (__gnat_adjust_context_for_raise): New function. Implementation of the machine context adjustments to perform prior to raise from a signal handler. Version for both sparc and x86. (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define. (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it prior to raising as expected for any handler, before possible nested faults to make sure all the contexts in a chain have been adjusted by the time we propagate. From-SVN: r127433
2007-08-14clean.adb, [...] (Create_Sym_Links): New procedure.Vincent Celier27-818/+1015
2007-08-14 Vincent Celier <celier@adacore.com> * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb, gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb, mlib-tgt.ads, 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, mlib-tgt-aix.adb, mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New procedure. (Major_Id_Name): New function. mlib-tgt.ads/mlib.tgt.adb: (Library_Major_Minor_Id_Supported): New function, default returns True Most mlib-tgt-*.adb that support shared libraries and symbolic links: (Build_Dynamic_Library): Add support for major/minor ids for shared libs Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi): Implementation of Library_Major_Minor_Id_Supported returns False clean.adb: (Clean_Library_Directory): If major/minor ids are supported, clean all library files. Major update of the Project Manager and of the project aware tools, including gprmake, so that the same sources in the GNAT repository can be used by gprbuild. From-SVN: r127432
2007-08-14s-taprop-lynxos.adb, [...] (Continue_Task, [...]): New functions; dummy ↵Jerome Guitton14-24/+339
implementations. 2007-08-14 Jerome Guitton <guitton@adacore.com> * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks): New functions; dummy implementations. * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New functions, used to implement the multi-tasks mode routines on VxWorks. * s-osinte-vxworks.adb (Task_Cont, Task_Stop): New functions, thin binding to the VxWorks routines which have changed between VxWorks 5 and 6. (Int_Lock, Int_Unlock): New function, thin binding to kernel routines which are not callable from a RTP. * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions, implemented for the multi-tasks mode on VxWorks 5 and 6. * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions. * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New functions. From-SVN: r127431
2007-08-14exp_ch5.adb (Expand_Assign_Array): If source or target of assignment is a ↵Ed Schonberg1-509/+105
variable that renames a slice... 2007-08-14 Ed Schonberg <schonberg@adacore.com> * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment is a variable that renames a slice, use the variable itself in the expannsion when the renamed expression itself may be modified between the declaration of the renaming and the array assignment. From-SVN: r127430
2007-08-14exp_aggr.ads, [...] (Convert_Aggr_In_Allocator): Use Insert_Actions to place ↵Ed Schonberg2-42/+125
expanded aggregate code before allocator... 2007-08-14 Ed Schonberg <schonberg@adacore.com> Gary Dismukes <dismukes@adacore.com> * exp_aggr.ads, exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded aggregate code before allocator, and ahead of declaration for temporary, to prevent access before elaboration when the allocator is an actual for an access parameter. (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing the TSD and the table of interfaces. (Convert_To_Assignments): Augment the test for delaying aggregate expansion for limited return statements to include the case of extended returns, to prevent creation of an unwanted transient scope. (Is_Static_Dispatch_Table_Aggregate): New subprogram. (Expand_Array_Aggregate): Handle aggregates associated with statically allocated dispatch tables. (Expand_Record_Aggregate): Handle aggregates associated with statically allocated dispatch tables. (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators of anonymous access type. From-SVN: r127429
2007-08-14sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for dispatching operationRobert Dewar1-3/+15
2007-08-14 Robert Dewar <dewar@adacore.com> * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for dispatching operation From-SVN: r127428
2007-08-14sem_ch5.adb: Improve warnings on redundant assignmentsRobert Dewar3-110/+493
2007-08-14 Robert Dewar <dewar@adacore.com> Ed Schonberg <schonberg@adacore.com> * sem_ch5.adb: Improve warnings on redundant assignments * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk parameter (Is_Synchronized_Tagged_Type): New subprogram that returns true in case of synchronized tagged types (AARM 3.9.4 (6/2)). (Safe_To_Capture_Value): Can now return True for constants, even if Cond is set to False. Improves handling of Known_[Not_]Null. (Wrong_Type): Special case address arithmetic attempt (Collect_Abstract_Interfaces): Add new formal to allow collecting abstract interfaces just using the partial view of private types. (Has_Abstract_Interfaces): Add new formal to allow checking types covering interfaces using the partial view of private types. (Is_Fully_Initialized_Type): Special VM case for uTag component. This component still needs to be defined in this case, but is never initialized as VMs are using other dispatching mechanisms. (Abstract_Interface_List): For a protected type, use base type to get proper declaration. Improve warnings on redundant assignments (Is_Variable): Handle properly an implicit dereference of a prefixed function call. (Build_Actual_Subtype): If this is an actual subtype for an unconstrained formal parameter, use the sloc of the body for the new declaration, to prevent anomalises in the debugger. From-SVN: r127427
2007-08-14sem_ch11.adb: Improved warnings for unused variablesRobert Dewar3-189/+261
2007-08-14 Robert Dewar <dewar@adacore.com> Ed Schonberg <schonberg@adacore.com> * sem_ch11.adb: Improved warnings for unused variables * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor is a synchronized interface, the derived type is limited. (Analyze_Object_Declaration): Mark the potential coextensions in the definition and expression of an object declaration node. (Build_Derived_Type): For the completion of a private type declaration with a derived type declaration, chain the parent type's representation items to the last representation item of the derived type (not the first one) if they are not present already. (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete object declaration of forward references to tags. (Access_Subprogram_Declaration): In Ada2005, anonymous access to subprogram types can appear as access discriminants of synchronized types. (OK_For_Limited_Init_In_05): The initialization is legal is it is a call given in prefixed form as a selected component. (Process_Discriminants): If not all discriminants have defaults, place error message on a default that is present. (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to extend a synchronized tagged type. Improved warnings for unused variables (Is_Visible_Component): Fix a visibility hole on a component inherited by a private extension when parent is itself declared as a private extension, and the derivation is in a child unit. (Find_Hidden_Interface): Move spec from the package body. From-SVN: r127426
2007-08-14sem_attr.ads, [...] (Analyze_Attribute, case Value): For enumeration type, ↵Robert Dewar2-178/+183
mark all literals as referenced. 2007-08-14 Robert Dewar <dewar@adacore.com> Ed Schonberg <schonberg@adacore.com> * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For enumeration type, mark all literals as referenced. (Eval_Attribute, case 'Image): If the argument is an enumeration literal and names are available, constant-fold but mark nevertheless as non-static. Clean up function names. (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify comment. (Requires_Simple_Name_Prefix): Removed. From-SVN: r127425
2007-08-14par-tchk.adb (TF_Semicolon): Improve error recoveryRobert Dewar1-1/+3
2007-08-14 Robert Dewar <dewar@adacore.com> * par-tchk.adb (TF_Semicolon): Improve error recovery From-SVN: r127424
2007-08-14par.ads, par.adb: Improve handling of extra right parens.Robert Dewar4-42/+37
2007-08-14 Robert Dewar <dewar@adacore.com> Ed Schonberg <schonberg@adacore.com> * par.ads, par.adb: Improve handling of extra right parens. (Par): Remove flag From_Limited_With_Clause. * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint Improve handling of extra right parens. From-SVN: r127423
2007-08-14re PR ada/19037 (constant renaming creates new constant)Olivier Hainque8-236/+302
2007-08-14 Olivier Hainque <hainque@adacore.com> Eric Botcazou <ebotcazou@adacore.com> * targtyps.c (get_target_maximum_default_alignment): New function. Maximum alignment that the compiler might choose by default for a type or object. (get_target_default_allocator_alignment): New function. Alignment known to be honored by the target default allocator. (get_target_maximum_allowed_alignment): New function. Maximum alignment we might accept for any type or object on the target. (get_target_maximum_alignment): Now synonym of maximum_default_alignment * gigi.h (get_target_maximum_default_alignment): Declare new function. (get_target_default_allocator_alignment): Likewise. (get_target_maximum_allowed_alignment): Likewise. PR ada/19037 * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the result of a function call, first try to use a stabilized reference for a constant renaming too. (validate_alignment): Use target_maximum_allowed_alignment instead of MAX_OFILE_ALIGNMENT as the upper bound to what we accept. (gnat_to_gnu_entity): Use common nodes directly. (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate alignment and size for the object. (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call and N_Procedure_Call_Statement. (takes_address): Rename to lvalue_required_p, add third parameter 'aliased' and adjust recursive calls. <N_Indexed_Component>: Update 'aliased' from the array type. <N_Selected_Component>: New case. <N_Object_Renaming_Declaration>: New Likewise. (Identifier_to_gnu): Adjust for above changes. (maybe_stabilize_reference) <CONST_DECL>: New case. * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion between type variants. (build_simple_component_ref): Likewise. (build_call_alloc_dealloc): Use target_default_allocator_alignment instead of BIGGEST_ALIGNMENT as the threshold to trigger the super aligning type circuitry for allocations from the default storage pool. (build_allocator): Likewise. (build_simple_component_ref): Manually fold the reference for a constructor if the record type contains a template. * utils.c (value_zerop): Delete. (gnat_init_decl_processing): Emit debug info for common types. (rest_of_record_type_compilation): If a union contains a field with a non-constant qualifier, treat it as variable-sized. (finish_record_type): Give the stub TYPE_DECL a name. (rest_of_record_type_compilation): Likewise. (convert) <CONSTRUCTOR>: New case. Build a new constructor if types are equivalent array types. (create_field_decl): Claim fields of any ARRAY_TYPE are addressable, even if the type is not passed by reference. (static_ctors, static_dtors): Delete. (end_subprog_body): Do not record constructors and destructors. (build_global_cdtor): Delete. (gnat_write_global_declarations): Do not call build_global_cdtor. * lang-specs.h: If TARGET_VXWORKS_RTP is defined, append -mrtp when -fRTS=rtp is specified. If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is specified. * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name of the personality function with SJLJ exceptions. * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for the name of the personality function with SJLJ exceptions. From-SVN: r127422
2007-08-14opt.ads: Warning for non-local exception propagation now off by default New ↵Robert Dewar9-643/+1619
switch... 2007-08-14 Robert Dewar <dewar@adacore.com> Ed Schonberg <schonberg@adacore.com> * opt.ads: Warning for non-local exception propagation now off by default New switch -gnatI to disable representation clauses Implement new pragma Implicit_Packing * usage.adb: Warning for non-local exception propagation now off by default Add warning for unchecked conversion of pointers wi different conventions. New switch -gnatI to disable representation clauses * usage.adb: new switch -gnatyS * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a note that aggregates of anonymous array types are not flagged. -gnatwc now includes membership tests optimized away -gnatw.x warnings are now off by default Added conditional compilation Appendix Add documentation of -gnatI Add documentation for new -gnatyS style check Update documentation about SAL and auto-init on Windows. * gnat_rm.texi: Add documentation for pragma Check_Name and 'Enabled attribute Document that Eliminate on dispatching operation is ignored Document IDE attributes VCS_Repository_Root and VCS_Patch_Root. Document pragma Main Document pragma Implicit_Packing * sem_ch13.adb: Add warning for unchecked conversion of pointers wi different conventions New switch -gnatI to disable representation clauses * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not recognized, report the invalid characters including "-gnat" instead of just the first character in the switch. New switch -gnatI to disable representation clauses Set Warn_On_Object_Renames_Function true for -gnatg * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent to switch -aP (add directory to project search dir). * par-prag.adb: Implement new pragma Implicit_Packing * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the type as having a non-standard representation, to force expansion on conversion to related types. (Analyze_Pragma): Warn on misspelled pragma (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg Ensure consistent use of # in error messages Implement pragma Implicit_Packing From-SVN: r127421
2007-08-14prj.ads, prj.adb: Update Project Manager to new attribute names for gprbuild.Vincent Celier26-2738/+7500
2007-08-14 Vincent Celier <celier@adacore.com> * prj.ads, prj.adb: Update Project Manager to new attribute names for gprbuild. Allow all valid declarations in configuration project files (Reset): Initialize all tables and hash tables in the project tree data Major update of the Project Manager and of the project aware tools, including gprmake, so that the same sources in the GNAT repository can be used by gprbuild. (Slash_Id): Change type to be Path_Name_Type (Slash): Return a Path_Name_Type instead of a File_Name_Type * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by gprbuild. Update Project Manager to new attribute names for ghprbuild Allow all valid declarations in configuration project files Major update of the Project Manager and of the project aware tools, including gprmake, so that the same sources in the GNAT repository can be used by gprbuild. * prj-com.ads: Major update of the Project Manager and of the project aware tools, including gprmake, so that the same sources in the GNAT repository can be used by gprbuild. * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case insensitive flag for attributes with optional index. (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative array attribute, put the index in lower case. Update Project Manager to new attribute names for ghprbuild Allow all valid declarations in configuration project files Major update of the Project Manager and of the project aware tools, including gprmake, so that the same sources in the GNAT repository can be used by gprbuild. * prj-env.ads, prj-env.adb: Major update of the Project Manager and of the project aware tools, including gprmake, so that the same sources in the GNAT repository can be used by gprbuild. (Get_Reference): Change type of parameter Path to Path_Name_Type * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after removing '-' from the path to start with the first character of the next directory. Major update of the Project Manager and of the project aware tools, including gprmake, so that the same sources in the GNAT repository can be used by gprbuild. Major update of the Project Manager and of the project aware tools, including gprmake, so that the same sources in the GNAT repository can be used by gprbuild. * prj-nmsc.ads, prj-nmsc.adb: Update Project Manager to new attribute names for ghprbuild Allow all valid declarations in configuration project files (Search_Directories): Detect subunits that are specified with an attribute Body in package Naming. Do not replace a source/unit in the same project when the order of the source dirs are known. Detect duplicate sources/units in the same project when the order of the source dirs are not known. (Check_Ada_Name): Allow all identifiers that are not reserved words in Ada 95. Major update of the Project Manager and of the project aware tools, including gprmake, so that the same sources in the GNAT repository can be used by gprbuild. (Look_For_Sources): If the list of sources is empty, set the object directory of non extending project to nil. Change type of path name variables to be Path_Name_Type (Locate_Directory): Make sure that on Windows '/' is converted to '\', otherwise creating missing directories will fail. * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb, prj-part.ads, prj-part.adb: Major update of the Project Manager and of the project aware tools, including gprmake, so that the same sources in the GNAT repository can be used by gprbuild. * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case insensitive flag for attributes with optional index. (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative array attribute, put the index in lower case. (Parse_Variable_Reference): Allow the current project name to be used in the prefix of an attribute reference. * prj-util.ads, prj-util.adb (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index, defaulted to False. When True, always check against indexes in lower case. * snames.ads, snames.h, snames.adb: Update Project Manager to new attribute names for gprbuild Allow all valid declarations in configuration project files From-SVN: r127420
2007-08-14exp_util.ads, [...]: This patch replaces a number of occurrences of explicit ↵Robert Dewar4-187/+348
tests for N_Null with... 2007-08-14 Robert Dewar <dewar@adacore.com> Ed Schonberg <schonberg@adacore.com> Javier Miranda <miranda@adacore.com> * exp_util.ads, exp_util.adb: This patch replaces a number of occurrences of explicit tests for N_Null with calls to Known_Null. This improves tracking of null values, since Known_Null also catches null constants, and variables currently known to be null, so we get better tracking. (Ensure_Defined): create an itype reference only in the scope of the itype. (Side_Effect_Free): A selected component of an access type that denotes a component with a rep clause must be treated as not side-effect free, because if it is part of a linked structure its value may be affected by a renaming. (Expand_Subtype_From_Expr): For limited objects initialized with build in place function calls, do nothing; otherwise we prematurely introduce an N_Reference node in the expression initializing the object, which breaks the circuitry that detects and adds the additional arguments to the called function. Bug found working in the new patch for statically allocated dispatch tables. (Is_Library_Level_Tagged_Type): New subprogram. (Remove_Side_Effects): If the expression of an elementary type is an operator treat as a function call. (Make_Literal_Range): If the index type of the array is not integer, use attributes properly to compute the constraint on the resulting aggregate which is a string. * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a class-wide type whose base type is an incomplete private type, leave class-wide type unfrozen so that freeze nodes can be generated properly at a later point. (Freeze_Entity, array case): Handle case of pragma Pack and component size attributre clause for same array. From-SVN: r127419
2007-08-14exp_disp.ads, [...] (Build_Dispatch_Tables): Handle tagged types declared in ↵Ed Schonberg2-646/+1028
the declarative part of a nested package body... 2007-08-14 Ed Schonberg <schonberg@adacore.com> Javier Miranda <miranda@adacore.com> * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged types declared in the declarative part of a nested package body or in the proper body of a stub. (Set_All_DT_Position): Add missing check to avoid wrong assignation of the same dispatch table slot to renamed primitives. (Make_Select_Specific_Data_Table): Handle private types. (Tagged_Kind): Handle private types. (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg output of implicit importation and exportation. (Expand_Interface_Thunk): Fix bug in the expansion assuming that the first formal of the thunk is always associated with the controlling type. In addition perform the following code cleanup: remove formal Thunk_Alias which is no longer required, cleanup evaluation of the the controlling type, and update the documentation. Replace occurrence of Default_Prim_Op_Count by Max_Predef_Prims. Addition of compile-time check to verify that the value of Max_Predef_Prims is correct. (Check_Premature_Freezing): Apply check in Ada95 mode as well. (Make_DT): Add parameter to indicate when type has been frozen by an object declaration, for diagnostic purposes. (Build_Static_Dispatch_Tables): New subprogram that takes care of the construction of statically allocated dispatch tables. (Make_DT): In case of library-level tagged types export the declaration of the primary tag. Remove generation of tags (now done by Make_Tags). Additional modifications to handle non-static generation of dispatch tables. Take care of building tables for asynchronous interface types (Make_Tags): New subprogram that generates the entities associated with the primary and secondary tags of Typ and fills the contents of Access_ Disp_Table. In case of library-level tagged types imports the forward declaration of the primary tag that will be declared later by Make_DT. (Expand_Interface_Conversion): In case of access types to interfaces replace an itype declaration by an explicit type declaration to avoid problems associated with the scope of such itype in transient blocks. From-SVN: r127418