- 06 Apr, 2007 40 commits
-
-
sem_util.ads, [...] (Object_Access_Level): If the object is a dereference of a local object R created as a reference to... 2007-04-06 Ed Schonberg <schonberg@adacore.com> Javier Miranda <miranda@adacore.com> * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a dereference of a local object R created as a reference to another object O, use the access level of O. (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types, rather than local Same_Formal_Type, to check whether protected operation overrides an inherited one. (Same_Formal_Type): New predicate, used when matching signatures of overriding synchronized operations, to handle the case when a formal has a type that is a generic actual. (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by predicate Is_Concurrent_Type. This ensures supportin case of subtypes. (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve syntactic ambiguities involving indexing of function calls that return arrays. (Abstract_Interface_List): New subprogram that returns the list of abstract interfaces associated with a concurrent type or a concurrent record type. (Interface_Present_In_Parent): New subprogram used to check if a given type or some of its parents implement a given interface. (Collect_Abstract_Interfaces): Add support for concurrent types with interface types. (Has_Abstract_Interfaces): Add support for concurrent types with interface types. (Is_Parent): New subprogram that determines whether E1 is a parent of E2. For a concurrent type its parent is the first element of its list of interface types; for other types this function provides the same result than Is_Ancestor. (Enclosing_Subprogram): Add test for N_Extended_Return_Statement. (Collect_Synchronized_Interfaces): Removed because the subprogram Collect_Abstract_Interfaces provides this functionality. (Collect_Abstract_Interfaces): Minor update to give support to concurrent types and thus avoid undesired code duplication. (Get_Subprogram_Entity): Handle entry calls. (May_Be_Lvalue): Include actuals that appear as in-out parameters in entry calls. (Enter_Name): Do not give -gnatwh hiding warning for record component entities, they never result in hiding. From-SVN: r123599
Ed Schonberg committed -
2007-04-06 Ed Schonberg <schonberg@adacore.com> Javier Miranda <miranda@adacore.com> * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make predicate recursive, to handle complex expressions on literals whose spurious ambiguity comes from the abstract interpretation of some subexpression. (Interface_Present_In_Ancestor): Add support to concurrent record types. (Add_One_Interp,Disambiguate): Split Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type. From-SVN: r123598
Ed Schonberg committed -
2007-04-06 Ed Schonberg <schonberg@adacore.com> Robert Dewar <dewar@adacore.com> * sem_ch8.adb (Has_Components): If the argument is an incomplete type that is a limited view, check the non-limited view if available. (Undefined): Refine error message for missing with of Text_IO (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message to distinguish real missing with cases. Fix format of all missing with messages (Analyze_Subprogram_Renaming): Emit proper error message on illegal renaming as body when renamed entity is abstract. From-SVN: r123597
Ed Schonberg committed -
sem_ch7.ads, [...] (Inspect_Deferred_Constant_Completion): Move out of Analyze_Package_Declaration... 2007-04-06 Ed Schonberg <schonberg@adacore.com> Thomas Quinot <quinot@adacore.com> * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move out of Analyze_Package_Declaration, because processing must be applied to package bodies as well, for deferred constants completed by pragmas. (Analyze_Package_Declaration): When the package declaration being analyzed does not require an explicit body, call Check_Completion. (May_Need_Implicit_Body): An implicit body is required when a package spec contains the declaration of a remote access-to-classwide type. (Analyze_Package_Body): If the package contains RACWs, append the pending subprogram bodies generated by exp_dist at the end of the body. (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type. (Preserve_Full_Attributes): The full entity list is not an attribute that must be preserved from full to partial view. * sem_dist.adb (Add_RAS_Dereference_TSS): Change primitive name to _Call so it cannot clash with any legal identifier, and be special-cased in Check_Completion. Mark the full view of the designated type for the RACW associated with a RAS as Comes_From_Source to get proper view switching when installing private declarations. Provite a placeholder nested package body along with the nested spec to have a place for Append_RACW_Bodies to generate the calling stubs and stream attributes. From-SVN: r123596
Ed Schonberg committed -
sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a tag-indeterminate call to an abstract... 2007-04-06 Ed Schonberg <schonberg@adacore.com> Robert Dewar <dewar@adacore.com> * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a tag-indeterminate call to an abstract function, when the left-hand side is not classwide. (Analyze_Loop_Statement): Improve detection of infinite loops From-SVN: r123595
Ed Schonberg committed -
sem_ch4.adb (Try_Primitive_Operation): The call is legal if the prefix type is a discriminated subtype of the type of... 2007-04-06 Ed Schonberg <schonberg@adacore.com> Bob Duff <duff@adacore.com> Gary Dismukes <dismukes@adacore.com> * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the prefix type is a discriminated subtype of the type of the formal. (Analyze_Allocator): Collect all coextensions regardless of the context. Whether they can be allocated statically is determined in exp_ch4. (Analyze_Selected_Component): If the prefix is a limited view and the non-limited view is available, use the non-limited one. (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and therefore illegal), suggest a qualified expression rather than a type conversion, because a type conversion would be illegal in this context. (Anayze_Allocator): Trace recursively all nested allocators so that all coextensions are on the corresponding list for the root. Do no mark coextensions if the root allocator is within a declaration for a stack- allocated object, because the access discriminants will be allocated on the stack as well. (Analyze_Call): Remove restriction on calls to limited functions for the cases of generic actuals for formal objects, defaults for formal objects and defaults for record components. (Analyze_Allocator): Before analysis, chain coextensions on the proper element list. Their expansion is delayed until the enclosing allocator is processed and its finalization list constructed. (Try_Primitive_Operation): If the prefix is a concurrent type, looks for an operation with the given name among the primitive operations of the corresponding record type. (Analyze_Selected_Component): If the prefix is a task type that implements an interface, and there is no entry with the given name, check whether there is another primitive operation (e.g. a function) with that name. (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle properly the indexing of a function call written in prefix form, where the function returns an array type, and all parameters of the function except the first have defaults. (Analyze_Equality_Op): If this is a call to an implicit inequality, keep the original operands, rather than relocating them, for efficiency and to work properly when an operand is overloaded. (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type. (Analyze_Selected_Component): If the prefix is a private extension, only scan the visible components, not those of the full view. (Try_Primitive_Operation): If the operation is a procedure, collect all possible interpretations, as for a function, because in the presence of classwide parameters several primitive operations of the type can match the given arguments. From-SVN: r123594
Ed Schonberg committed -
sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual when capturing size information... 2007-04-06 Ed Schonberg <schonberg@adacore.com> Gary Dismukes <dismukes@adacore.com> * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual when capturing size information, instead of base type, which for a formal array type will be the unconstrained type. (Analyze_Formal_Object_Declaration): Add check for illegal default expressions for a formal in object of a limited type. (Instantiate_Object): Ditto. (Check_Formal_Package_Instance): Skip entities that are formal objects, because they were defaulted in the formal package and no check applies to them. (Check_Formal_Package_Instance): Extend conformance check to other discrete types beyond Integer. (Process_Default): Copy directly the unmatched formal. A generic copy has already been performed in Analyze_Formal_Package. (Analyze_Associations): If a formal subprogram has no match, check for partial parametrization before looking for a default, to prevent spurious errors. (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do not set the instantiation environment before analyzing the actuals. Fixes regression on 8515-003 with implementation of AI-133. Set_Instance_Env checks whether the generic unit is a predefined unit, in which case the instance must be analyzed with the latest Ada mode. This setting must take place after analysis of the actuals, because the actuals must be analyzed and frozen in the Ada mode extant outside of the current instantiation. (Save_Env, Restore_Env): Preserve and restore the configuration parameters so that predefined units can be compiled in the proper Ada mode. (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram, Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type. (Analyze_Formal_Package): For better error recovery, Add exception handler to catch Instantion_Error, which can be raised in Analyze_Associations From-SVN: r123593
Ed Schonberg committed -
* sem_ch10.adb (Install_Limited_Context_Clauses. Expand_Limited_With_Clause): Use a new copy of selector name in the call to Make_With_Clause. This fixes the tree structure for ASIS purposes. Nothing is changed in the compiler behaviour. (Process_Body_Clauses): Handle properly use clauses whose prefix is a package renaming. (Install_Limited_With_Clauses): Do not install non-limited view when it is still incomplete. From-SVN: r123592
Ed Schonberg committed -
2007-04-06 Ed Falis <falis@adacore.com> * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last full word is no longer compared twice. From-SVN: r123591
Ed Falis committed -
2007-04-06 Robert Dewar <dewar@adacore.com> * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Use First/Next_Component_Or_Discriminant (Analyze_Record_Representation_Clause): Use First/Next_Component_Or_Discriminant (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant (Analyze_Attribute_Definition_Clause, case Value_Size): Reject definition if type is unconstrained. (Adjust_Record_For_Reverse_Bit_Order): New procedure (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type. (Adjust_Record_For_Reverse_Bit_Order): New procedure * repinfo.adb (List_Record_Info): Use First/ Next_Component_Or_Discriminant. * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index): New procedure. * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch Include -gnatyA in default switches * opt.ads: (Warn_On_Non_Local_Exception): New flag (Warn_On_Reverse_Bit_Order): New flag (Extensions_Allowed): Update the documentation. (Warn_On_Questionable_Missing_Parens): Now on by default * usage.adb: Add documentation of -gnatw.x/X switches Document new -gnatyA style switch -gnatq warnings are on by default From-SVN: r123590
Robert Dewar committed -
2007-04-06 Vincent Celier <celier@adacore.com> * prj-ext.adb (Initialize_Project_Path): New procedure that initialize the default project path, initially done during elaboration of the package. If the prefix returned by Sdefault is null, get the prefix from a call to Executable_Prefix_Path. (Project_Path): Call Initialize_Project_Path if Current_Project_Path is null. * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non canonical directory name to open the directory from which files are retrieved. (Record_Other_Sources): Idem. (Locate_Directory): Add the possibility to create automatically missing directories when Setup_Projects is True. Call Locate_Directory so that the directory will be created when Setup_Projects is True, for object dir, library dir, library ALI dir, library source copy dir and exec dir. * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older versions of GNAT. From-SVN: r123589
Vincent Celier committed -
2007-04-06 Robert Dewar <dewar@adacore.com> Javier Miranda <miranda@adacore.com> Bob Duff <duff@adacore.com> Vincent Celier <celier@adacore.com> * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error (Extensions_Allowed): No longer sets Ada_Version Entry for pragma Unreferenced_Objects * sem_prag.adb (Analyze_Pragma, case Priority): Force with of system.tasking if pragma priority used in a procedure (Analyze_Pragma, case Warning): Handle dot warning switches (Process_Compile_Time_Warning_Or_Error): New procedure (Analyze_Pragma): Add processing for Compile_Time_Error Add support for extra arguments External_Name and Link_Name. Remove code associated with pragmas CPP_Virtual and CPP_Vtable. (Process_Import_Or_Interface): Add support for the use of pragma Import with tagged types. (Extensions_Allowed): No longer affects Ada_Version (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are called only when appropriate. Add processing for pragma Unreferenced_Objects * snames.h, snames.ads, snames.adb: Add entry for pragma Compile_Time_Error Add new standard name Minimum_Binder_Options for new gprmake Add new standard names for gprmake: Archive_Suffix, Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported, Library_Support, Library_Version_Options, Shared_Library_Minimum_Options, Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported. Change Name_Call to Name_uCall so that it cannot clash with a legal subprogram name. Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix Append C_Plus_Plus to convention identifiers as synonym for CPP Add new standard names Stack and Builder_Switches Add new standard names: Compiler_Minimum_Options, Global_Config_File, Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File, Run_Path_Option, Toolchain_Version. Entry for pragma Unreferenced_Objects * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD switches, without repetition of "eD". Make sure that last character of -gnatep= switch is not taken as -gnat switch character. Complete rewrite of circuit for handling saving compilation options Occasioned by need to support dot switchs for -gnatw, but cleans up things in general. -gnatX does not affect Ada_Version Include -gnatyA in -gnatg style switches * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude warnings on return objects. (Warn_On_Useless_Assignment): Exclude warnings on return objects (Set_Dot_Warning_Switch): New procedure (Check_References): Add missing case of test for Has_Pragma_Unreferenced_Objects (Output_Unreferenced_Messages): Implement effect of new pragma Unreferenced_Objects, remove special casing of limited controlled variables. From-SVN: r123588
Robert Dewar committed -
2007-04-06 Robert Dewar <dewar@adacore.com> Javier Miranda <miranda@adacore.com> Bob Duff <duff@adacore.com> * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location (P_Interface_Type_Definition): Remove the formal Is_Synchronized because there is no need to generate always a record_definition_node in case of synchronized interface types. (P_Type_Declaration): Update calls to P_Interface_Type_Definition. (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being illegal in Ada 95, in cases where it is legal. Change the warnings to errors in other cases. Don't give the error unless the "not null" parses properly. Correct the source position at which the error occurs. (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to P_Null_Exclusion, to suppress "not null" warnings. (P_Identifier_Declarations): Code cleanup. Removed unrequired label and associated goto statements. * par-endh.adb (Pop_End_Context): Allow more flexibility in placement of END RECORD * scans.ads (Type_Token_Location): New flag * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to P_Null_Exclusion, to suppress "not null" warnings. From-SVN: r123587
Robert Dewar committed -
2007-04-06 Robert Dewar <dewar@adacore.com> * namet.ads, namet.adb (wn): Improve this debugging routine. Calling it no longer destroys the contents of Name_Buffer or Name_Len and non-standard and invalid names are handled better. (Get_Decoded_Name_String): Improve performance by using Name_Has_No_Encodings flag in the name table. (Is_Valid_Name): New function to determine whether a Name_Id is valid. Used for debugging printouts. From-SVN: r123586
Robert Dewar committed -
2007-04-06 Vincent Celier <celier@adacore.com> * mlib.adb (Building_Library): Only output "building a library..." in verbose mode * mlib-prj.adb (Build_Library): Only output lists of object and ALI files in verbose mode. * mlib-utl.adb (Ar): Only output the first object files when not in verbose mode. (Gcc): Do not display all the object files if not in verbose mode, only the first one. From-SVN: r123585
Vincent Celier committed -
gnat_rm.texi, [...]: Add -gnatyl documentation Update 'Exception Handling Control' chapter which was... 2007-04-06 Robert Dewar <dewar@adacore.com> Arnaud Charlet <charlet@adacore.com> Vincent Celier <celier@adacore.com> * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation Update 'Exception Handling Control' chapter which was outdated. Minor fix to documentation of -gnatwq Remove section "Adapting the Run Time to a New C++ Compiler" because it is now obsolete. Add passage on need of -nostart-files in some non-ada-main cases. Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake Update documentation about Interfacing with C++ Add documentation for new gnatmake switch -p Add missing protocol part in URLs. Document -gnatyA Document pragma Compile_Time_Error Add documentation for Object_Size indicating that stand alone objects can have a larger size in some cases. Add node for GNAT.Byte_Swapping, GNAT.SHA1 Update reference to the Ravenscar profile. Document pragma Unreferenced_Objects * gnat-style.texi: Fix typo From-SVN: r123584
Robert Dewar committed -
2007-04-06 Ed Schonberg <schonberg@adacore.com> Javier Miranda <miranda@adacore.com> * lib-xref.ads, lib-xref.adb: Modify the loop that collects type references, to include interface types that the type implements. List each of these interfaces when building the entry for the type. (Generate_Definition): Initialize component Def and Typ of new entry in table Xrefs, to avoid to have these components unitialized. (Output_References): Split Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type. (Generate_Reference): Add barrier to do not generate the warning associated with Ada 2005 entities with entities generated by the expander. From-SVN: r123583
Ed Schonberg committed -
lib-writ.adb (Write_With_Lines): Factor duplicated code between the cases where a given dependency has a body or not. 2007-04-06 Thomas Quinot <quinot@adacore.com> * lib-writ.adb (Write_With_Lines): Factor duplicated code between the cases where a given dependency has a body or not. (Write_With_File_Names): New subprogram, common code for the two cases above. From-SVN: r123582
Thomas Quinot committed -
lib.ads, lib.adb (Tree_Read): Release the memory occupied by the switches from previously loaded tree 2007-04-06 Serguei Rybin <rybin@adacore.com> * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the switches from previously loaded tree From-SVN: r123581
Serguei Rybin committed -
2007-04-06 Eric Botcazou <botcazou@adacore.com> Arnaud Charlet <charlet@adacore.com> * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except __gnat_adjust_context_for_raise. (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same implementation of floating point operations as native x86 targets. So the FPU should be initialized in the same way using finit. Fix floating point operations accuracy issues. (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction member in struct sigaction, so as to avoid warning for incompatible pointer types. From-SVN: r123580
Eric Botcazou committed -
2007-04-06 Geert Bosch <bosch@adacore.com> Robert Dewar <dewar@adacore.com> * i-fortra.ads: Add Double_Complex type. * impunit.adb: (Is_Known_Unit): New function Add Gnat.Byte_Swapping Add GNAT.SHA1 Add new Ada 2005 units Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays, Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays, Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays, Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays * impunit.ads (Is_Known_Unit): New function * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb, a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads, a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads, s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads: New files. * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units. From-SVN: r123579
Geert Bosch committed -
2007-04-06 Pascal Obry <obry@adacore.com> * i-cstrea.ads: (fopen): Add encoding parameter. (freopen): Idem. Change reference from a-sysdep.c to sysdep.c in comment. Update copyright notice. This set of patch add support for the encoding form parameter. * mingw32.h (S2WSU): New macro to convert from a string to a wide-string using the UTF-8 encoding. The S2WS macro supports now only standard 8bits encoding. (WS2SU): As above but converting from wide-sring to string. This is needed as it is necessary to have access to both versions in the runtime for the form parameter encoding support. This set of patch add support for the encoding form parameter. (S2WS): Improve implementation to handle cases where the filename is not UTF-8 encoded. In this case we default to using the current code page for the conversion. * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration type (UTF8, ASCII_8bits). This enumeration has a rep clause to match the constants defined in adaint.h. (fopen): Add encoding parameter. (freopen): Idem. * s-ficobl.ads (AFCB): Add Encoding field to record the filename encoding. This is needed for the Reset routine (freopen low level-call). * s-fileio.adb (Open): Decode encoding form parameter and set the corresponding encoding value into AFCB structure. (Reset): Pass the encoding value to freopen. (Close): Move the call to Lock_Task to the beginning of the procedure. From-SVN: r123578
Pascal Obry committed -
2007-04-06 Emmanuel Briot <briot@adacore.com> * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of [[:xdigit:]] character class. Also raise an exception when an invalid character class is used. From-SVN: r123577
Emmanuel Briot committed -
gprep.adb (Process_Files.Process_One_File): Use full file name when issuing pragma Source_Reference. 2007-04-06 Vincent Celier <celier@adacore.com> * gprep.adb (Process_Files.Process_One_File): Use full file name when issuing pragma Source_Reference. From-SVN: r123576
Vincent Celier committed -
2007-04-06 Jose Ruiz <ruiz@adacore.com> Vincent Celier <celier@adacore.com> * gnatcmd.adb (B_Start): Add prefix of binder generated file. (Stack_String): Add this String that contains the name of the Stack package in the project file. (Packages_To_Check_By_Stack): Add this list that contains the packages to be checked by gnatstack, which are the naming and the stack packages. (Check_Files): If no .ci files were specified for gnatstack we add all the .ci files belonging to the projects, including binder generated files. (Non_VMS_Usage): Document that gnatstack accept project file switches. (GNATCmd): Update the B_Start variable if we are in a VMS environment. Add gnatstack to the list of commands that use project file related switches, and get the single attribute Switches from the stack package in a project file when calling gnatstack. Parse the -U flag for processing files belonging to all projects in the project tree. Remove all processing for command Setup * prj-attr.adb: Add new package Stack with single attribute Switches * vms_conv.ads (Command_Type): Add command Stack. Move to body declarations that are only used in the body: types Item_Id, Translation_Type, Item_Ptr, Item and its subtypes. * vms_conv.adb: (Initialize): Add data for new command Stack. Add declarations moved from the spec: types Item_Id, Translation_Type, Item_Ptr, Item and its subtypes. (Cargs_Buffer): New table (Cargs): New Boolean global variable (Process_Buffer): New procedure to create arguments (Place): Put character in table Buffer or Cargs_Buffer depending on the value of Cargs. (Process_Argument): Set Cargs when processing qualifiers for GNAT COMPILE (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not empty, for table Cargs_Buffer. (Initialize): Remove component Setup in Command_List From-SVN: r123575
Jose Ruiz committed -
2007-04-06 Thomas Quinot <quinot@adacore.com> * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding computation. From-SVN: r123574
Thomas Quinot committed -
g-expect.adb (Get_Command_Output): When expanding the output buffer we must ensure that there is enough place for... * g-expect.adb (Get_Command_Output): When expanding the output buffer we must ensure that there is enough place for the new data we are going to copy in. From-SVN: r123573
Arnaud Charlet committed -
g-debpoo.adb (Validity): New package with a complete new implementation of subprograms Is_Valid and... 2007-04-06 Vincent Celier <celier@adacore.com> * g-debpoo.adb (Validity): New package with a complete new implementation of subprograms Is_Valid and Set_Valid. (Is_Valid): Move to local package Validity (Set_Valid): Move to local package Validity From-SVN: r123572
Vincent Celier committed -
2007-04-06 Pascal Obry <obry@adacore.com> * g-arrspl.adb (Free) [Element_Access]: New routine to free the source string. (Create): Free the source string before storing the new one. From-SVN: r123571
Pascal Obry committed -
g-alleve.ads (Low Level Vector type definitions): Map each to the associated vector view instead of all to the unsigned char view. 2007-04-06 Olivier Hainque <hainque@adacore.com> * g-alleve.ads (Low Level Vector type definitions): Map each to the associated vector view instead of all to the unsigned char view. * g-altcon.adb (Generic_Conversions): New internal generic package, offering facilities for all the Vector/View conversion routines implemented by this unit. (To_View/To_Vector - all versions): Reimplemented in a systematic manner, using the internal Generic_Conversions facilities. From-SVN: r123570
Olivier Hainque committed -
sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat an association with a box as providing a value... 2007-04-06 Ed Schonberg <schonberg@adacore.com> Bob Duff <duff@adacore.com> * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat an association with a box as providing a value even though the initialization procedure for the type is not available. (Resolve_Record_Aggregate): Check that a choice of an association with a box corresponds to a component of the type. (Resolve_Record_Aggregate): Split Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type. * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for assert. * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are called only when appropriate. From-SVN: r123569
Ed Schonberg committed -
* exp_strm.adb (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use discriminant defaults. (Build_Record_Or_Elementary_Output_Procedure): Ditto. (Make_Component_List_Attributes): Ditto. From-SVN: r123568
Ed Schonberg committed -
exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the result are the bounds of the left operand, not the right. 2007-04-06 Ed Schonberg <schonberg@adacore.com> * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the result are the bounds of the left operand, not the right. From-SVN: r123567
Ed Schonberg committed -
exp_intr.adb (Expand_Exception_Call): Calls to subprograms in GNAT.Current_Exception are not allowed if... 2007-04-06 Robert Dewar <dewar@adacore.com> Ed Schonberg <schonberg@adacore.com> * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in GNAT.Current_Exception are not allowed if pragma Restrictions (No_Exception_Propagation) is set and in any case make the associated handler unsuitable as a target for a local raise statement. (Expand_Dispatching_Constructor_Call): Replace generation of call to the run-time subprogram CW_Membership by call to Build_CW_Membership. (Expand_Dispatching_Constructor_Call): If the dispatching tag is given by a function call, a temporary must be created before expanding the Constructor_Call itself, to prevent out-of-order elaboration in the back-end when stack checking is enabled.. From-SVN: r123566
Robert Dewar committed -
exp_dist.ads, [...] (Build_To_Any_Call, [...]): Do an Unchecked_Conversion to handle the passage from the Underlying Type to... 2007-04-06 Thomas Quinot <quinot@adacore.com> * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call): Do an Unchecked_Conversion to handle the passage from the Underlying Type to the Base Type when calling Build_To_Any_Call and Build_From_Any_Call. (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or E_Constant, depending upon Variable formal. (GARLIC_Support.Build_Subprogram_Receiving_Stubs, PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal parameter that requires an extra constrained parameter, declare temporary for actual as a variable, not a constant. (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when the unit being compiled is the one that contains the stub type. Change primitive operation name for the RACW associated with a RAS from Call to _Call so it cannot clash with any legal identifier. (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant Is_RAS. (Append_RACW_Bodies): New subprogram. (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to Add_Receiving_Stubs_To_Declarations functions. When expanding a package body, this list correspond to the statements in the HSS at the end of the pacakge. When expanding a package spec, this list correspond to the spec declarations. (Add_Receiving_Stubs_To_Declarations): Append the function registering the receiving stubs at the end of the 'Stmts' list. (RCI_Package_Locator): Pass the new Version generic formal when instantiating a RCI_Locator package. (Build_From_Any_Function): To compute the High bound for an unconstrained array actual, we add the Low bound with the length. Thus we must convert the low bound and the length to an appropriate type before doing the sum. (Build_Subprogram_Receiving_Stubs, PolyORB): * Retrieve the extra formals parameters at the end of the parameter stream. * Use Move_Any_Value to write back out parameters after executing the request as it is more efficient than Copy_Any_Value. * Build the any containing Extra Formals with the appropriate typecode. (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an empty Component_List. (Build_Actual_Object_Declaration): New subprogram. Build and insert into the tree the declaration for an object that serves as actual parameter in server-side stubs. (GARLIC_Support.Build_Subprogram_Receiving_Stubs, PolyORB_Support.Build_Subprogram_Receiving_Stubs): Use Build_Actual_Object_Declaration to prepare the actuals. (Add_Parameter_To_NVList): Set the parameter mode to In for Extra Constrained Parameters. (Build_General_Calling_Stubs): Set the parameter type to boolean for Extra Constrained parameters. (Build_To_Any_Function, Build_From_Any_Function, Built_TypeCode_Function): When Typ is implicit, call the correct function with the first not implicit parent type. (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element, (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the typecode from the Etype. Therefore we retrieve the correct typecode with a call to Get_Any_Type. (Copy_Specification): Do controlling formal type substitution based on Is_Controlling_Formal flag, instead of caller-provided object type. (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for a RACW primitive operation, we might get a subprogram declaration for an ancestor of the RACW designated type (not for the designated type itself), in the case where this operation is inherited. In this case we have no easy means of determining the original tagged type for which the primitive was declared, so instead we now rely on Copy_Specification to use the Is_Controlling_Formal flag to determine which formals require type substitution. From-SVN: r123565
Thomas Quinot committed -
2007-04-06 Eric Botcazou <botcazou@adacore.com> Ed Schonberg <schonberg@adacore.com> Gary Dismukes <dismukes@adacore.com> * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean parameter. If it is set to true, return a result capped according to the global upper bound for the index of an entry family. (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset (Build_Find_Body_Index): Adjust for above change. (Entry_Index_Expression): Likewise. (Is_Potentially_Large_Family): New function extracted from... (Collect_Entry_Families): ...here. Call it to detect whether the family is potentially large. (Build_Entry_Count_Expression): If the family is potentially large, call Family_Size with 'Cap' set to true. (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate a protected version of an operation declared in the private part of a protected object, because they may be invoked through a callback. (Set_Privals): If the type of a private component is an anonymous access type, do not create a new itype for each protected body. If the body of a protected operation creates controlled types (including allocators for class-widetypes), the body of the corresponding protected subprogram must include a finalization list. (Build_Activation_Chain_Entity): Build the chain entity for extended return statements. (Type_Conformant_Parameters): Use common predicate Conforming_Types to determine whether operation overrides an inherited primitive. (Build_Wrapper_Spec): Add code to examine the parents while looking for a possible overriding candidate. (Build_Simple_Entry_Call): Set No_Initialization on the object used to hold an actual parameter value since its initialization is separated from the the declaration. Prevents errors on null-excluding access formals. From-SVN: r123564
Eric Botcazou committed -
exp_ch7.ads, [...] (Find_Final_List): If the access type is anonymous, use finalization list of enclosing dynamic scope. 2007-04-06 Ed Schonberg <schonberg@adacore.com> Bob Duff <duff@adacore.com> Cyrille Comar <comar@adacore.com> * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is anonymous, use finalization list of enclosing dynamic scope. (Expand_N_Package_Declaration): For a library package declaration without a corresponding body, generate RACW subprogram bodies in the spec (just as we do for the task activation call). (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are called only when appropriate. Remove all code for DSP option (CW_Or_Controlled_Type): new subprogram. From-SVN: r123563
Ed Schonberg committed -
exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the run-time subprogram Set_External_Tag by call to... 2007-04-06 Javier Miranda <miranda@adacore.com> Gary Dismukes <dismukes@adacore.com> Ed Schonberg <schonberg@adacore.com> * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the run-time subprogram Set_External_Tag by call to Build_Set_External_Tag. * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time accessibility on class-wide allocators if the allocator occurs at the same scope level as the allocator's type. The check is guaranteed to succeed in that case, even when the expression originates from a parameter of the containing subprogram. (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling under No_Dispatching_Calls restriction. During the semantic analysis we already notified such violation. (Tagged_Membership): Constant folding. There is no need to check the tag at run-time if the type of the right operand is non class-wide abstract. Replace call to Is_Ancestor by call to Is_Parent to support concurrent types with interface types. (Expand_N_Allocator): Add an assertion associated with the generation of the master_id. (Expand_N_Slice): Do not enable range check to nodes associated with the frontend expansion of the dispatch table. (Is_Local_Access_Discriminant): Subsidiary function to Expand_N_Allocator. (Tagged_Membership): Replace generation of call to the run-time subprogram CW_Membership by call to Build_CW_Membership. (Expand_Allocator_Expression): Replace generation of call to the run-time subprogram Get_Access_Level by call to Build_Get_Access_Level. * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to initialize most the TSD components by means of an aggregate. Modify the declaration of the object containing the TSD because we now expand code that has a higher level of abstraction. The TSD has a discriminant containing the Inheritance Depth Level, value that is used in the membership test but also to fix the size of the table of ancestors. (Expand_Interface_Conversion): Insert function body at the closest place to the conversion expression, to prevent access-before-elaboration errors in the backend. Code improved to reduce the size of the dispatch table if compiling under restriction No_Dispatching_Calls plus code cleanup. Code reorganization plus removal of calls to Set_Num_Prim_Ops (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops. (Expand_Dispatching_Call): Minor code reorganization plus addition of code to return immediately if compiling under No_Dispatching_Calls restriction. (Set_All_DT_Position): Remove code associated with the old CPP pragmas. CPP_Virtual and CPP_Vtable are no longer supported. (Expand_Interface_Conversion): Add missing support for interface type derivations. (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to Is_Parent to support concurrent types with interfaces. (Init_Predefined_Interface_Primitives): Removed. (Make_Secondary_DT): Modified to support concurrent record types. (Set_All_DT_Position): Modified to support concurrent record types. (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated with Get_External_Tag, Inherit_TSD, Set_External_Tag. (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated with CW_Membership. (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated with Get_Access_Level, Get_Predefined_Prim_Op_Address, Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT, Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address, Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD. (Expand_Dispatching_Call): Replace generation of call to the run-time subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_ Address. (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_ Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and Build_Set_Prim_Op_Address. (Get_Remotely_Callable): Subprogram removed. (Init_Predefined_Interface_Primitives): Replace generation of call to the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_ Prims. * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to First (Parameter_Associations ()) with the call to First_Actual that returns an actual parameter expression for both named and positional associations. * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call check violation of restriction No_Dispatching_Calls. (Check_Controlling_Type): A formal of a tagged incomplete type is a controlling argument. * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use First/Next_Component_Or_Discriminant (Insert_Actions): Add entries for new N_Push and N_Pop nodes (Find_Implemented_Interface): Removed. All the calls to this subprogram specify Any_Limited_Interface, and this functionality is already provided by the function Has_Abstract_Interfaces. (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to support concurrent types implementing interfaces. (Find_Implemented_Interface): Removed. All the calls to this subprogram specify kind Any_Limited_Interface, and this functionality is already provided by the function Has_Abstract_Interfaces. (Remove_Side_Effects): replace Controlled_Type by CW_Or_Controlled_Type whenever the issue is related to using or not the secondary stack. * par-ch12.adb (P_Formal_Type_Definition): Update calls to P_Interface_Type_Definition to fulfill the new interface (the formal Is_Synchronized is no longer required). * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o Update dependencies. * exp_atag.ads, exp_atag.adb: New file From-SVN: r123562
Javier Miranda committed -
2007-04-06 Ed Schonberg <schonberg@adacore.com> Thomas Quinot <quinot@adacore.com> * exp_aggr.adb: If the array component is a discriminated record, the array aggregate is non-static even if the component is given by an aggregate with static components. (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant (Convert_Aggr_In_Allocator): If the allocator is for an access discriminant and the type is controlled. do not place on a finalization list at this point. The proper list will be determined from the enclosing object. (Build_Record_Aggr_Code): If aggregate has box-initialized components, initialize record controller if needed, before the components, to ensure that they are properly finalized. (Build_Record_Aggr_Code): For the case of an array component that has a corresponding array aggregate in the record aggregate, perform sliding if required. From-SVN: r123561
Ed Schonberg committed -
2007-04-06 Vincent Celier <celier@adacore.com> * errutil.adb (Initialize): Initialize warnings table, if all warnings are suppressed, supply an initial dummy entry covering all possible source locations. * make.adb (Scan_Make_Arg): Reject options that should start with "--" and start with only one, such as "-RTS=none". (Collect_Arguments): Do not check for sources outside of projects. Do not collect arguments if project is externally built. (Compile_Sources): Do nothing, not even check if the source is up to date, if its project is externally built. (Compile): When compiling a predefined source, add -gnatpg as the second switch, after -c. (Compile_Sources): Allow compilation of Annex J renames without -a (Is_In_Object_Directory): Check if the ALI file is in the object even if there is no project extension. (Create_Binder_Mapping_File): Only put a unit in the mapping file for gnatbind if the ALI file effectively exists. (Initialize): Add the directory where gnatmake is invoked in front of the path if it is invoked from a bin directory, even without directory information, so that the correct GNAT tools will be used when spawned without directory information. * makeusg.adb: Change switch -S to -eS Add lines for new switches -we, -wn and -ws Add line for new switch -p * prj-proc.adb (Process): Set Success to False when Warning_Mode is Treat_As_Error and there are warnings. * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip -gnatww Change gnatmake switch -S to -eS (Scan_Make_Switches): Code reorganisation. Process separately multi character switches and single character switches. (Scan_Make_Switches): New Boolean out parameter Success. Set Success to False when switch is not recognized by gnatmake. (Scan_Make_Switches): Set Setup_Projects True when -p or --create-missing-dirs is specified. * fname.adb (Is_Predefined_File_Name): Return True for annex J renamings Calendar, Machine_Code, Unchecked_Conversion and Unchecked_Deallocation only when Renamings_Included is True. * par.adb: Allow library units Calendar, Machine_Code, Unchecked_Conversion and Unchecked_Deallocation to be recompiled even when -gnatg is not specified. (P_Interface_Type_Definition): Remove the formal Is_Synchronized because there is no need to generate always a record_definition_node in case of synchronized interface types. (SIS_Entry_Active): Initialize global variable to False (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to indicate cases where AI-447 says "not null" is legal. * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function * makegpr.adb (Check_Compilation_Needed): Take into account dependency files with with several lines starting with the object fileb name. (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs is specified. (Initialize): Add the directory where gprmake is invoked in front of the path, if it is invoked from a bin directory or with directory information, so that the correct GNAT tools will be used when invoked directly. (Check_Compilation_Needed): Process correctly backslashes on Windows. * vms_data.ads: Update switches/qualifiers From-SVN: r123560
Vincent Celier committed
-