- 15 Nov, 2005 40 commits
-
-
2005-11-14 Ed Schonberg <schonberg@adacore.com> Javier Miranda <miranda@adacore.com> * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original discriminant. (Build_Private_Derived_Type): The entity of the created full view of the derived type does not come from source. If after installing the private declarations of the parent scope the parent is still private, use its full view to construct the full declaration of the derived type. (Build_Derived_Record_Type): Relax the condition that controls the execution of the check that verifies that the partial view and the full view agree in the set of implemented interfaces. In addition, this test now only takes into account the progenitors. (Derive_Interface_Subprograms): No need to derive subprograms of ancestors that are interfaces. (Derive_Subprograms): Remove formal No_Predefined_Prims and the associated code. Change name Is_Package to Is_Package_Or_Generic_Package (Complete_Subprograms_Derivation): Handle the case in which the full view is a transitive derivation of the ancestor of the partial view. (Process_Full_View): Rename local subprogram Find_Interface_In_ Descendant to Find_Ancestor_Interface to leave the code more clear. Remove wrong code that avoids the generation of an error message when the immediate ancestor of the partial view is an interface. In addition some minor reorganization of the code has been done to leave it more clear. (Analyze_Type_Declaration): If type has previous incomplete tagged partial view, inherit properly its primitive operations. (Collect_Interfaces): Make public, for analysis of formal interfaces. (Analyze_Interface_Declaration): New procedure for use for regular and formal interface declarations. (Build_Derived_Record_Type): Add support for private types to the code that checks if a tagged type implements abstract interfaces. (Check_Aliased_Component_Type): The test applies in the spec of an instance as well. (Access_Type_Declaration): Clean up declaration of malformed type declared as an access to its own classwide type, to prevent cascaded crash. (Collect_Interfaces): For private extensions and for derived task types and derived protected types, the parent may be an interface that must be included in the interface list. (Access_Definition): If the designated type is an interface that may contain tasks, create Master_Id for it before analyzing the expression of the declaration, which may be an allocator. (Record_Type_Declaration): Set properly the interface kind, for use in allocators, the creation of master id's for task interfaces, etc. From-SVN: r107000
Ed Schonberg committed -
2005-11-14 Gary Dismukes <dismukes@adacore.com> Ed Schonberg <schonberg@adacore.com> Gary Dismukes <dismukes@adacore.com> Thomas Quinot <quinot@adacore.com> * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose names are internal, because they will not have a corresponding partner in the actual package. (Analyze_Formal_Package): Move the setting of the formal package spec's Generic_Parent field so that it occurs prior to analyzing the package, to allow proper operation of Install_Parent_Private_Declarations. (Analyze_Package_Instantiation): Set the instantiated package entity's Package_Instantiation field. (Get_Package_Instantiation_Node): Move declaration to package spec. Retrieve the N_Package_Instantiation node when the Package_Instantiation field is present. (Check_Generic_Child_Unit): Within an inlined call, the only possible instantiation is Unchecked_Conversion, for which no parents are needed. (Inline_Instance_Body): Deinstall and record the use_clauses for all parent scopes of a scope being removed prior to inlining an instance body. (Analyze_Package_Instantiation): Do not perform front-end inlining when the current context is itself an instance within a non-instance child unit, to prevent scope stack errors. (Save_References): If the node is an aggregate that is an actual in a call, rewrite as a qualified expression to preserve some type information, to resolve possible ambiguities in the instance. (Instance_Parent_Unit): New global variable to record the ultimate parent unit associated with a generic child unit instance (associated with the existing Parent_Unit_Visible flag). (type Instance_Env): New component Instance_Parent_Unit for stacking parents recorded in the global Instance_Parent_Unit. (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env stack. (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when it's not a top-level unit, and only do this if Instance_Parent_Unit is not already set. Replace test of Is_Child_Unit with test of parent's scope against package Standard. Add comments and a ??? comment. (Remove_Parent): Revise condition for resetting Is_Immediately_Visible on a child instance parent to test that the parent equals Instance_Parent rather than simply checking that the unit is not a child unit. (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env. (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of a formal interface are ancestors of the corresponding actual. (Validate_Formal_Interface_Type): Additional legality checks. (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal interface types with ancestors. (Analyze_Formal_Package): If formal is a renaming, use renamed entity to diagnose attempts to use generic within its own declaration. From-SVN: r106999
Gary Dismukes committed -
2005-11-14 Robert Dewar <dewar@adacore.com> Ed Schonberg <schonberg@adacore.com> * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package Do not give obsolescent warning on with of subprogram (since we diagnose calls) (Analyze_With_Clause): Add test for obsolescent package (Install_Context_Clauses): If the unit is the body of a child unit, do not install twice the private declarations of the parents, to prevent circular lists of Use_Clauses in a parent. (Implicit_With_On_Parent): Do add duplicate with_clause on parent when compiling body of child unit. Use new class N_Subprogram_Instantiation (Expand_With_Clause): If this is a private with_clause for a child unit, appearing in the context of a package declaration, then the implicit with_clauses generated for parent units are private as well. (License_Check): Do not generate message if with'ed unit is internal From-SVN: r106998
Robert Dewar committed -
2005-11-14 Ed Schonberg <schonberg@adacore.com> * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the rhs of an assignment even if the type is unconstrained, when the context is non-expanding. In an inlined body, if the context type is private, resolve with its full view, which must be a composite type. From-SVN: r106997
Ed Schonberg committed -
2005-11-14 Emmanuel Briot <briot@adacore.com> * prj-pp.adb (Print): Do not output the with statement if the associated name is empty, which happens for virtual extending projects. (Print): Preserve the "extends all" attribute when printing the project. * prj-tree.ads (String_Value_Of): Add comment about returned value for a virtual extending project. From-SVN: r106996
Emmanuel Briot committed -
prj-part.adb (Create_Virtual_Extending_Project): Put virtual project into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS. 2005-11-14 Vincent Celier <celier@adacore.com> * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS. From-SVN: r106995
Vincent Celier committed -
2005-11-14 Vincent Celier <celier@adacore.com> * prj-ext.adb: Take into account new environment variable GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH are defined. (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH, normalize its path name, making it absolute and resolving symbolic links, and replace the original if resolved path is different. From-SVN: r106994
Vincent Celier committed -
par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit syntax, which could cause compiler hangs. 2005-11-14 Robert Dewar <dewar@adacore.com> * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit syntax, which could cause compiler hangs. From-SVN: r106993
Robert Dewar committed -
2005-11-14 Eric Botcazou <ebotcazou@adacore.com> * namet.h: (Column_Numbe): New type. (Get_Column_Number): Define to sinput__get_column_number. (Instantiation): Define to sinput__instantiation. (Get_Column_Number): Declare. (Instantiation): Likewise. From-SVN: r106992
Eric Botcazou committed -
2005-11-14 Pascal Obry <obry@adacore.com> * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is used. (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used. In both cases the last argument was dropped. From-SVN: r106991
Pascal Obry committed -
2005-11-14 GNAT Script <nobody@adacore.com> * Make-lang.in: Makefile automatically updated From-SVN: r106990
GNAT Script committed -
make.adb (Compile_Sources): Change verbose message to minimum verbosity level High for "is in an Ada... 2005-11-14 Vincent Celier <celier@adacore.com> * make.adb (Compile_Sources): Change verbose message to minimum verbosity level High for "is in an Ada library", "is a read-only library" and "is an internal library", (Create_Binder_Mapping_File): Path name of ALI file for library project must include the library directory, not the object directory. (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called for new switches -vl, -vm and -vh. (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity (Check): Use minimum verbosity Medium for some Verbose_Msg calls (Compile_Sources): Do not attempt to compile if an ALI file is missing in a project that is externally built. (Compute_All_Imported_Projects): New procedure (Gnatmake): Check if importing libraries should be regenerated because at least an imported library is more recent. (Initialize): For each project compute the list of the projects it imports directly or indirectly. (Add_Library_Search_Dir): New procedure, used in place of Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are put in the search paths. (Add_Source_Search_Dir): New procedure, used in place of Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are put in the search paths. (Mark_Directory): Resolve the absolute path the directory before marking it. * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with call to new procedure Bad_Switch. Call Scan_Pos with new parameter Switch. Do not handle any exception. (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh so that the switch is recognized as valid. (Scan_Make_Switches): Implement new switches -vl, -vm and -vh. From-SVN: r106989
Vincent Celier committed -
lib-xref.adb (Generate_Definition, [...]): Treat the internal entity created for the declaration of a child subprogram... 2005-11-14 Ed Schonberg <schonberg@adacore.com> * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the internal entity created for the declaration of a child subprogram body with no spec as coming from source, to generate proper cross-reference information. From-SVN: r106988
Ed Schonberg committed -
2005-11-14 Robert Dewar <dewar@adacore.com> * interfac.ads: Change declarations of IEEE float types so that we no longer need a separate version of this package for VMS. From-SVN: r106987
Robert Dewar committed -
2005-11-14 Doug Rupp <rupp@adacore.com> * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined. From-SVN: r106986
Doug Rupp committed -
2005-11-14 Robert Dewar <dewar@adacore.com> * g-spitbo.adb: (Hash): Rotate by 3 instead of 1 From-SVN: r106985
Robert Dewar committed -
* g-regpat.adb (Fail): raise Expression_Error including the diagnostic message, friendlier. From-SVN: r106984
Arnaud Charlet committed -
2005-11-14 Robert Dewar <dewar@adacore.com> Vincent Celier <celier@adacore.com> * gprep.adb: Implement -C switch to scan comments * scng.adb: Scan comment symbol separately if Replace_In_Comments set * scans.ads: Comment updates (including new use of Tok_Comment in preprocessing) * opt.ads: Add documentation for flags that are used by gprmake, currently and in the next version of gprmake. (Verbosity_Level): New variable Add Replace_In_Comments switch * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm and -vm. Add /REPLACE_IN_COMMENTS for gnatprep -C switch From-SVN: r106983
Robert Dewar committed -
2005-11-14 Pascal Obry <obry@adacore.com> * gnatbind.adb (Is_Cross_Compiler): New function returning True for cross-compiler. (Scan_Bind_Arg): Fail with an error message if -M option is used on a native compiler. From-SVN: r106982
Pascal Obry committed -
g-debpoo.adb (Set_Valid): Use Integer_Address instead of Storage_Offset to avoid wrap around causing... 2005-11-14 Robert Dewar <dewar@adacore.com> * g-debpoo.adb (Set_Valid): Use Integer_Address instead of Storage_Offset to avoid wrap around causing invalid results. From-SVN: r106981
Robert Dewar committed -
PR ada/23732 * gnatvsn.ads (Library_Version): Bump to 4.1 From-SVN: r106980
Arnaud Charlet committed -
2005-11-14 Ed Schonberg <schonberg@adacore.com> * freeze.adb (Freeze_Entity): For an access formal that is an access to subprogram, freeze the anonymous subprogram type at the same time, to prevent later freezing in the wrong scope, such as the enclosing subprogram body. (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_ subprogram whenever available. From-SVN: r106979
Ed Schonberg committed -
2005-11-14 Robert Dewar <dewar@adacore.com> * impunit.adb: Exclude container helper units not intended for use by users. From-SVN: r106978
Robert Dewar committed -
exp_strm.adb (Build_Stream_Attr_Profile, [...]): Add the null-excluding attribute to the first formal. 2005-11-14 Javier Miranda <miranda@adacore.com> * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function, Build_Stream_Procedure): Add the null-excluding attribute to the first formal. This has no semantic meaning under Ada95 mode but it is a requirement under Ada05 mode. * par-ch3.adb (P_Access_Definition): Addition of warning message if the null exclusion is used under Ada95 mode (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95. (P_Access_Definition): Remove assertion that forbids the use of the null-exclusion feature in Ada95. From-SVN: r106977
Javier Miranda committed -
exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual subtype to compute the size of the designated object at... 2005-11-14 Thomas Quinot <quinot@adacore.com> Robert Dewar <dewar@adacore.com> Ed Schonberg <schonberg@adacore.com> * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual subtype to compute the size of the designated object at run-time, create such a subtype and store it in the Actual_Designated_Subtype attribute of the N_Free_Statement. Generate itype for classwide designated object in both cases of user-specified storage pool: specific and class-wide, not only in the specific case. Raise CE when trying to set a not null access type object to null. (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with an explicit loop, because freeze nodes make its position variable. * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not null object. From-SVN: r106976
Thomas Quinot committed -
2005-11-14 Robert Dewar <dewar@adacore.com> * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we need a high precision float type for the generated code (prevents gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float) used). * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we need a high precision float type for the generated code (prevents gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float) used). (Expand_Width_Attribute): In configurable run-time, the attribute is not allowed on non-static enumeration subtypes. Force a load error to emit the correct diagnostic. From-SVN: r106975
Robert Dewar committed -
2005-11-14 Pascal Obry <obry@adacore.com> * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned by spawnve is a process handle, no need to convert. Add a parameter close to control wether the process handle must be closed. (__gnat_waitpid): Fix implementation, the pid returned by spawnve is a process handle, not need to convert. (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec. * g-expect.adb: (Kill): Document the new close parameter. (Close): Do not release the process handle in the kill there as waitpid() is using it. (Send_Signal): Release the process handle. From-SVN: r106974
Pascal Obry committed -
exp_dist.adb (Append_Array_Traversal): Modify constrained case to generate a set of nested array aggregates instead of... 2005-11-14 Thomas Quinot <quinot@adacore.com> * exp_dist.adb (Append_Array_Traversal): Modify constrained case to generate a set of nested array aggregates instead of a single flat aggregate for multi-dimensional arrays. From-SVN: r106973
Thomas Quinot committed -
exp_ch5.adb (Expand_N_Assignment_Statement, [...]): For an assignment of a value of a tagged type that has been rewritten to a... 2005-11-14 Cyrille Comar <comar@adacore.com> Thomas Quinot <quinot@adacore.com> * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an assignment of a value of a tagged type that has been rewritten to a block statement, it is known by construction that no checks are necessary for the statements within the block: analyze it with checks suppressed. (Expand_N_If_Statement): When killing a dead then-branch in an if-statement that has elsif_parts, recompute the Current_Value node for any entity whose value is known from the condition of the first elsif_part. (Expand_N_Return_Statement): When returning a mutable record, convert the return value into its actual subtype in order to help the backend to return the actual size instead of the maximum. This is another aftermath of not returning mutable records on the sec-stack anymore. * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to handling of error msg for suspicious reverse range iteration. (Check_Possible_Current_Value_Condition): Move declaration from body to spec, to allow this subprogram to be called from exp_ch5. From-SVN: r106972
Cyrille Comar committed -
2005-11-14 Javier Miranda <miranda@adacore.com> Robert Dewar <dewar@adacore.com> Hristian Kirtchev <kirtchev@adacore.com> * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package (Check_Dispatching_Operation): Protect the frontend againts previously detected errors. * Makefile.rtl: Add new instantiations of system.fat_gen * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: Change name of instantiated package for better consistency with newly added system.fat_gen instantiations. * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads: New files. From-SVN: r106971
Javier Miranda committed -
2005-11-14 Robert Dewar <dewar@adacore.com> Hristian Kirtchev <kirtchev@adacore.com> * sem_attr.adb: Implement Machine_Rounding attribute (Analyze_Access_Attribute): The access attribute may appear within an aggregate that has been expanded into a loop. (Check_Task_Prefix): Add semantic check for attribute 'Callable and 'Terminated whenever the prefix is of a task interface class-wide type. (Analyze_Attribute): Add semantic check for attribute 'Identity whenever the prefix is of a task interface class-wide type. * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant to avoid warnings. * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function Remove pragma Inline for [Unaligned_]Valid. Add comments that Valid routines do not work for Vax_Float * exp_attr.adb: Implement Machine_Rounding attribute * snames.h: Add entry for Machine_Rounding attribute From-SVN: r106970
Robert Dewar committed -
exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity for task component, in the case of a limited aggregate. 2005-11-14 Ed Schonberg <schonberg@adacore.com> Cyrille Comar <comar@adacore.com> * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity for task component, in the case of a limited aggregate. The enclosed object declaration will create it earlier. Otherwise, in the case of a nested aggregate, the object may appear in the wrong scope. (Convert_Aggr_In_Object_Decl): Create a transient scope when needed. (Gen_Assign): If the component being assigned is an array type and the expression is itself an aggregate, wrap the assignment in a block to force finalization actions on the temporary created for each row of the enclosing object. (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl structures are initialized after all discriminants are set so that they can be accessed even when their offset is dynamic. From-SVN: r106969
Ed Schonberg committed -
2005-11-14 Robert Dewar <dewar@adacore.com> Ed Schonberg <schonberg@adacore.com> * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package (Check_Elab_Call): A call within a protected body is never an elaboration call, and does not require checking. (Same_Elaboration_Scope): Take into account protected types for both entities. (Activate_Elaborate_All_Desirable): New procedure * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable (Elab_Error_Msg): Use -da to include internal unit links, not -de. * lib-writ.ads, lib-writ.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable Use new Elaborate_All_Desirable flag in N_With_Clause node * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for N_Free_Statement nodes. Define new class N_Subprogram_Instantiation Add Elaborate_Desirable flag to N_With_Clause node Add N_Delay_Statement (covering two kinds of delay) * debug.adb: Introduce d.f flag for compiler Add -da switch for binder From-SVN: r106968
Robert Dewar committed -
clean.adb (Check_Project): Look for Ada code in extending project, even if Ada is not specified as a language. 2005-11-14 Vincent Celier <celier@adacore.com> * clean.adb (Check_Project): Look for Ada code in extending project, even if Ada is not specified as a language. Use new function DLL_Prefix for DLL_Name (Clean_Interface_Copy_Directory): New procedure (Clean_Library_Directory): New procedure (Clean_Directory): Remove procedure, no longer used (Clean_Project): Do not delete any file in an externally built project * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object directory of an extending project, even when there are no Ada source present. (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path (Set_Ada_Paths.Add.Recursive_Add): Ditto * mlib-prj.adb (Check_Library): For all library projects, get the library file timestamp. (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir (Build_Library): Use new function DLL_Prefix for the DLL_Name (Clean): Remove procedure, no longer used (Ultimate_Extension_Of): New function (Build_Library): When cleaning the library directory, only remove an existing library file and any ALI file of a source of the project. When cleaning the interface copy directory, remove any source that could be a source of the project. * prj.ads, prj.adb (Project_Empty): Add values of new components Library_TS and All_Imported_Projects. (Project_Empty): Add values for new components of Project_Data: Library_ALI_Dir and Display_Library_ALI_Dir * prj-attr.adb: New project level attribute name Library_ALI_Dir * prj-nmsc.adb (Check_Library_Attributes): Take into account new attribute Library_ALI_Dir. (Check_Library_Attributes): The library directory cannot be the same as any source directory of the project tree. (Check_Stand_Alone_Library): The interface copy directory cannot be the same as any source directory of the project tree. * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete all temporary files. From-SVN: r106967
Vincent Celier committed -
xref_lib.adb (Parse_Identifier_Info): It is possible for an entity line in the ALI file to include both an... 2005-11-14 Emmanuel Briot <briot@adacore.com> * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity line in the ALI file to include both an instantiation reference, and a returned value. From-SVN: r106966
Emmanuel Briot committed -
2005-11-14 Hristian Kirtchev <kirtchev@adacore.com> Javier Miranda <miranda@adacore.com> * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads, exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads, exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads, einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces. * a-tags.ads, a-tags.adb: Major rewrite and additions to implement properly new Ada 2005 interfaces (AI-345) and add run-time checks (via assertions). * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New subprogram that generates the external name associated with a secondary dispatch table. (Get_Secondary_DT_External_Name): New subprogram that generates the external name associated with a secondary dispatch table. From-SVN: r106965
Hristian Kirtchev committed -
2005-11-14 Matthew Gingell <gingell@adacore.com> Olivier Hainque <hainque@adacore.com> * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on ia64 HP-UX. * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven tracebacks on ia64 HP-UX and provide explanatory comment. Enable backtraces on ia64 GNU/Linux. (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly. From-SVN: r106964
Matthew Gingell committed -
cuintp.c (UI_To_gnu): Use a proper type for intermediate computations to ensure bias adjustments take... 2005-11-14 Olivier Hainque <hainque@adacore.com> * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations to ensure bias adjustments take place when need be and to prevent occurrences of intermediate overflows. From-SVN: r106963
Olivier Hainque committed -
a-crbtgo.ads, [...]: Compiles against the spec for ordered maps described in sections A.18.6 of the... 2005-11-14 Matthew Heaney <heaney@adacore.com> * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, 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-ciorma.adb, a-coorma.adb: Compiles against the spec for ordered maps described in sections A.18.6 of the most recent (August 2005) AI-302 draft. From-SVN: r106962
Matthew Heaney committed -
2005-11-14 Thomas Quinot <quinot@adacore.com> Olivier Hainque <hainque@adacore.com> Eric Botcazou <ebotcazou@adacore.com> * decl.c: Factor common code to build a storage type for an unconstrained object from a fat or thin pointer type and a constrained object type. (annotate_value): Handle BIT_AND_EXPR. (annotate_rep): Don't restrict the back annotation of inherited components to the type_annotate_only case. (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if we are not defining the type. <E_Record_Type>: Likewise. (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure to get advantage of the new maybe_stabilize_reference interface, to ensure that what we reference is indeed stabilized instead of relying on assumptions on what the stabilizer does. (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete type imported through a limited_with clause, use its non-limited view. (Has_Stdcall_Convention): New macro, to centralize the Windows vs others differentiation. (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix of #if sections + explicit comparisons of convention identifiers. (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary before early-returning for certain types when code generation is disabled. (gnat_to_gnu_entity) <object>: Adjust comment attached to the nullification of gnu_expr we do for objects with address clause and that we are not defining. (elaborate_expression_1): Do not create constants when creating variables needed by the debug info: the dwarf2 writer considers that CONST_DECLs is used only to represent enumeration constants, and emits nothing for them. (gnat_to_gnu_entity) <object>: When turning a non-definition of an object with an address clause into an indirect reference, drop the initializing expression. Include "expr.h". (STACK_CHECK_BUILTIN): Delete. (STACK_CHECK_PROBE_INTERVAL): Likewise. (STACK_CHECK_MAX_FRAME_SIZE): Likewise. (STACK_CHECK_MAX_VAR_SIZE): Likewise. (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree corresponding to the renamed object as ignored for debugging purposes. * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size & related): For a prefix that is a dereference of a fat or thin pointer, if there is an actual subtype provided by the front-end, use that subtype to build an actual type with bounds template. (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype is provided by the front-end, use that subtype to compute the size of the deallocated object. (gnat_to_gnu): When adding a statement into an elaboration procedure, check for a potential violation of a No_Elaboration_Code restriction. (maybe_stabilize_reference): New function, like gnat_stabilize_reference with extra arguments to control whether to recurse through non-values and to let the caller know if the stabilization has succeeded. (gnat_stabilize_reference): Now a simple wrapper around maybe_stabilize, for common uses without restriction on lvalues and without need to check for the success indication. (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to pass false instead of 0 as the FORCE argument which is a bool. (Identifier_to_gnu): Remove checks ensuring that an renamed object attached to a renaming pointer has been properly stabilized, as no such object is attached otherwise. (call_to_gnu): Invoke create_var_decl to create the temporary when the function uses the "target pointer" return mechanism. Reinstate conversion of the actual to the type of the formal parameter before any other specific treatment based on the passing mechanism. This turns out to be necessary in order for PLACEHOLDER substitution to work properly when the latter type is unconstrained. * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a common pattern. (maybe_stabilize_reference): New function, like gnat_stabilize_reference with extra arguments to control whether to recurse through non-values and to let the caller know if the stabilization has succeeded. * utils2.c (gnat_build_constructor): Only sort the fields for possible static output of record constructor if all the components are constant. (gnat_build_constructor): For a record type, sort the list of field initializers in increasing bit position order. Factor common code to build a storage type for an unconstrained object from a fat or thin pointer type and a constrained object type. (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between types variants, and process special cases of VIEW_CONVERT expressions as their NOP_EXPR counterpart to ensure we get to the CORRESPONDING_VARs associated with CONST_DECls. (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs on the right-hand side. * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring a common pattern. (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we are converting back to its original type. (convert) <JM input>: Fallthrough regular conversion code instead of extracting the object if converting to a type variant. (create_var_decl): When a variable has an initializer requiring code generation and we are at the top level, check for a potential violation of a No_Elaboration_Code restriction. (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN SIZE and SIZE_UNIT which we need for later back-annotations. * utils.c: (convert) <STRING_CST>: Remove obsolete code. <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type is an unchecked union. (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions. (convert) <VIEW_CONVERT_EXPR>: When the types have the same main variant, just replace the VIEW_CONVERT_EXPR. <UNION_TYPE>: Revert 2005-03-02 change. * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR. * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions. From-SVN: r106961
Thomas Quinot committed
-