summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* 2006-02-13 Vincent Celier <celier@adacore.com>charlet2006-02-151-1/+4
| | | | | | | | | * prj.adb (Reset): Initialize the first element of table Namings with the standard naming data. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111083 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Javier Miranda <miranda@adacore.com>charlet2006-02-151-3/+13
| | | | | | | | | * par-endh.adb (Explicit_Start_Label): Add code to protect the parser against source containing syntax errors. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111082 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Robert Dewar <dewar@adacore.com>charlet2006-02-158-21/+56
| | | | | | | | | | * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb, stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch (MODE_IN) git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111081 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Javier Miranda <miranda@adacore.com>charlet2006-02-151-29/+42
| | | | | | | | | | | | | | | | | PR ada/23973 * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the code to improve the error message reported when the program has declarations of abstract interface types and it is not compiled with the -gnat05 switch. (P_Access_Definition): Reorganize the code to improve the error message reported when the new Ada 2005 syntax for anonymous access types is used and the program is not compiled with the -gnat05 switch. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111080 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Vincent Celier <celier@adacore.com>charlet2006-02-151-3/+57
| | | | | | | | | | | | * mlib-prj.adb (Index): New function (Build_Library): When building a shared library, add to the run path the directory of the shared version of libgcc. (Build_Library): Output shared decgnat library. (Process_Binder_File): Test for shared decgnat library. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111079 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Vincent Celier <celier@adacore.com>charlet2006-02-152-32/+74
| | | | | | | | | | | | | | | | | | | * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the main source, add switch -mdebug-main=_ada_ so that the executable can be debugged by the standard VMS debugger. (Gnatmake): Set No_Main_Subprogram to True when there is no main subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly. Exit the Multi_Main_Loop when Unique_Compile is True after compilation of the last source, as the binding and linking phases are never performed. Set all executable obsolete when rebuilding a library. * makeutl.adb (Linker_Options_Switches): Do not process empty linker options. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111078 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Ed Schonberg <schonberg@adacore.com>charlet2006-02-151-19/+27
| | | | | | | | | | | | | | | Robert Dewar <dewar@adacore.com> * lib-xref.adb (Get_Type_Reference): For a private type whose full view is an array type, indicate the component type as well, for navigation purposes. (Generate_Reference): Don't consider array ref on LHS to be a case of violating pragma Unreferenced. Do not give Ada 2005 warning except on real reference. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111077 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Robert Dewar <dewar@adacore.com>charlet2006-02-151-3/+3
| | | | | | | | | | | * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM): These two cases were generating incorrect output, and if this unit was built with checks on, generated a discriminant mismatch constraint error. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111076 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Vincent Celier <celier@adacore.com>charlet2006-02-151-5/+90
| | | | | | | | | | | | * gnatcmd.adb (Rules_Switches): New table (Add_To_Rules_Switches): New procedure (GNATCmd): For command CHECK, put all options following "-rules" in the Rules_Switches table. Append these -rules switches after the -cargs switches. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111075 138bc75d-0d04-0410-961f-82ee72b054a4
* * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M andcharlet2006-02-151-8/+16
| | | | | | | | | | native platforms. (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that finalization can occur normally. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111074 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Matthew Heaney <heaney@adacore.com>charlet2006-02-151-3/+6
| | | | | | | | | * g-dyntab.adb (Index_Of): conversion from Natural can no longer raise Constraint_Error. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111073 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Pascal Obry <obry@adacore.com>charlet2006-02-151-12/+19
| | | | | | | | | | | | | | | * g-catiio.adb (Sec_Number): New type used to compute the number of seconds since 1-1-1970. (Image) [Natural]: The parameter was an Integer, as we can't deal with negative numbers (years, months...) it is better to have a Natural here. Code clean-up. (Image) [Number]: Change parameter from Long_Integer to Number. (Image): Use Number type to compute the seconds since 1-1-1970 to fix an overflow for dates past year 2038. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111072 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Olivier Hainque <hainque@adacore.com>charlet2006-02-151-2/+18
| | | | | | | | | | * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment), to avoid useless and space inefficient overalignments on targets where Max_Alignment is larger than 16. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111071 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Javier Miranda <miranda@adacore.com>charlet2006-02-151-8/+19
| | | | | | | | | | * freeze.adb (Freeze_Entity): Handle subtypes of protected types and task types when accessing to the corresponding record type. Remove '!' in warning message. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111070 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Ed Schonberg <schonberg@adacore.com>charlet2006-02-152-187/+380
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Javier Miranda <miranda@adacore.com> Eric Botcazou <ebotcazou@adacore.com> * exp_util.ads, exp_util.adb (Find_Prim_Op, Is_Predefined_Primitive_Operation): When searching for the predefined equality operator, verify that operands have the same type. (Is_Predefined_Dispatching_Operation): Remove the code that looks for the last entity in the list of aliased subprograms. This code was wrong in case of renamings. (Set_Renamed_Subprogram): New procedure (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the Exp_Type constant computed when entering this subprogram. (Known_Null): New function (OK_To_Do_Constant_Replacement): New function (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag (Side_Effect_Free): An attribute reference 'Input is not free of side effect, unlike other attributes that are functions. (from code reading). (Remove_Side_Effects): Expressions that involve packed arrays or records are copied at the point of reference, and therefore must be marked as renamings of objects. (Is_Predefined_Dispatching_Operation): Return false if the operation is not a dispatching operation. PR ada/18819 (Remove_Side_Effects): Lift enclosing type conversion nodes for elementary types in all cases. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111069 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Thomas Quinot <quinot@adacore.com>charlet2006-02-152-14/+15
| | | | | | | | | | | | | | * exp_pakd.ads: Fix typos in comments. * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed array reference that is an explicit dereference, mark the converted (packed) array reference as analyzed to prevent a forthcoming reanalysis from resetting its type to the original (non-packed) array type. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111068 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Robert Dewar <dewar@adacore.com>charlet2006-02-151-53/+43
| | | | | | | | | * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze call. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111067 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Pascal Obry <obry@adacore.com>charlet2006-02-151-1/+55
| | | | | | | | | | | | | | * expect.c (__gnat_expect_portable_execvp): New implementation. The previous implementation was using the C runtime spawnve routine but the corresponding wait was using directly the Win32 API. This was causing some times a lock when waiting for an event using WaitForSingleObject in __gnat_waitpid. This new implementation uses the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32 API fixes this problem. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111066 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Ed Schonberg <schonberg@adacore.com>charlet2006-02-151-4/+9
| | | | | | | | | | * exp_dist.adb (Copy_Specification): For access parameters, copy Null_Exclusion flag, which will have been set for stream subprograms in Ada2005 mode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111065 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Javier Miranda <miranda@adacore.com>charlet2006-02-152-441/+565
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the controlling argument of the dispatching call is an abstract interface class-wide type then we use it directly. Check No_Dispatching_Calls restriction. (Default_Prim_Op_Position): Remove the code that looks for the last entity in the list of aliased subprograms. This code was wrong in case of renamings. (Fill_DT_Entry): Add assertion to avoid the use of this subprogram when the source is compiled with the No_Dispatching_Calls restriction. (Init_Predefined_Interface_Primitives): No need to inherit primitives if we are compiling with restriction No_Dispatching_Calls. (Make_Disp_XXX): Addition of assertion to avoid the use of all these subprograms if we are compiling under No_Dispatching_Calls restriction. (Make_DT): Generate a dispatch table with a single dummy entry if we are compiling with the No_Dispatching_Calls restriction. In addition, in this case we don't generate code that calls to the following run-time subprograms: Set_Type_Kind, Inherit_DT. (Make_Select_Specific_Data_Table): Add assertion to avoid the use of this subprogram if compiling with the No_Dispatching_Calls restriction. (Expand_Type_Conversion): Instead of using the actual parameter, the argument passed as parameter to the conversion function was erroneously referenced by the expander. (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address, Set_Predefined_Primitive_Op_Address and Set_Signature. (Expand_Dispatching_Call): Generate call to Get_Predefined_Prim_Op_Address for predefined primitives. (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for predefined primitives. (Make_DT, Make_Secondary_DT): If the tagged type has no user defined primitives we reserve one dummy entry to ensure that the tag does not point to some memory that is associated with some other object. In addition, remove all the old code that generated the assignments associated with the signature of the dispatch table and replace them by a call to the new subprogram Set_Signature. (Set_All_DT_Position): Change the algorithm because now we have a separate dispatch table associated with predefined primitive operations. (Expand_Interface_Conversion): In case of non-static offset_to_top add explicit dereference to get access to the object after the call to displace the pointer to the object. (Expand_Interface_Thunk): Modify the generation of the actual used in the calls to the run-time function Offset_To_Top to fulfil its new interface. (Make_DT): Add the new actuals required to call Set_Offset_To_Top. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111064 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Ed Schonberg <schonberg@adacore.com>charlet2006-02-151-27/+49
| | | | | | | | | | | | | | | Hristian Kirtchev <kirtchev@adacore.com> * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the components of the corresponding record, take into account component definitions that are access definitions. (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a procedure is not considered a dispatching call and will be expanded properly. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111063 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Ed Schonberg <schonberg@adacore.com>charlet2006-02-154-301/+950
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Javier Miranda <miranda@adacore.com> Robert Dewar <dewar@adacore.com> Gary Dismukes <dismukes@adacore.com> * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that return unconstrained arrays. Update comments. (Expand_Call): An indirect call through an access parameter of a protected operation is not a protected call. Add circuit to raise CE in Ada 2005 mode following call to Raise_Exception. (Register_DT_Entry): Do nothing if the run-time does not give support to abstract interfaces. (Freeze_Subprogram): In case of dispatching operations, do not generate code to register the operation in the dispatch table if the source is compiled with No_Dispatching_Calls. (Register_Predefined_DT_Entry): Generate code that calls the new run-time subprogram Set_Predefined_Prim_Op_Address instead of Set_Prim_Op_Address. * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks on array assignments if the right-hand side is a function call that has been inlined. Check is performed on the assignment in the block. (Process_Bounds): If bounds and range are overloaded, apply preference rule for root operations to disambiguate, and diagnose true ambiguity. (Analyze_Assignment): Propagate the tag for a class-wide assignment with a tag-indeterminate right-hand side even when Expander_Active is True. Needed to ensure that dispatching calls to T'Input are allowed and get the tag of the target class-wide object. * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override an inherited primitive operation that already overrides several abstract interface primitives. For transitivity, the new entity must also override all the abstract interface primitives covered by the inherited overriden primitive. Emit warning if new entity differs from homograph in same scope only in that one has an access parameter and the other one has a parameter of a general access type with the same designated type, at the same position in the signature. (Make_Inequality_Operator): Use source locations of parameters and subtype marks from corresponding equality operator when creating the tree structure for the implicit declaration of "/=". This does not change anything in behaviour except that the decoration of the components of the subtree created for "/=" allows ASIS to get the string images of the corresponding identifiers. (Analyze_Return_Statement): Remove '!' in warning message. (Check_Statement_Sequence): Likewise. (Analyze_Subprogram_Body): For an access parameter whose designated type is an incomplete type imported through a limited_with clause, use the type of the corresponding formal in the body. (Check_Returns): Implicit return in No_Return procedure now raises Program_Error with a compile time warning, instead of beging illegal. (Has_Single_Return): Function returning unconstrained type cannot be inlined if expression in unique return statement is not an identifier. (Build_Body_To_Inline): It is possible to inline a function call that returns an unconstrained type if all return statements in the function return the same local variable. Subsidiary procedure Has_Single_Return verifies that the body conforms to this restriction. * sem_res.adb (Resolve_Equality_Op): If the operands do not have the same type, and one of them is of an anonymous access type, convert the other operand to it, so that this is a valid binary operation for gigi. (Resolve_Type_Conversion): Handle subtypes of protected types and task types when accessing to the corresponding record type. (Resolve_Allocator): Add '\' in 2-line warning message. Remove '!' in warning message. (Resolve_Call): Add '\' in 2-line warning message. (Valid_Conversion): Likewise. (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the resulting type may be an access type with an implicit dereference. Obtain the proper component from the designated type. (Make_Call_Into_Operator): Handle properly a call to predefined equality given by an expanded name with prefix Standard, when the operands are of an anonymous access type. (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_ Explicit_Dereference and Resolve_Selected_Component, to verify that the prefix of the expression is not of an incomplete type. Allows full diagnoses of all semantic errors. (Resolve_Actuals): If the actual is an allocator whose directly designated type is a class-wide interface we build an anonymous access type to use it as the type of the allocator. Later, when the subprogram call is expanded, if the interface has a secondary dispatch table the expander will add a type conversion to force the displacement of the pointer. (Resolve_Call): If a function that returns an unconstrained type is marked Inlined_Always and inlined, the call will be inlined and does not require the creation of a transient scope. (Check_Direct_Boolean_Op): Removed (Resolve_Comparison_Op): Remove call to above (Resolve_Equality_Op): Remove call to above (Resolve_Logical_Op): Inline above, since this is only call. (Valid_Conversion): Handle properly conversions between arrays of convertible anonymous access types. PR ada/25885 (Set_Literal_String_Subtype): If the lower bound is not static, wrap the literal in an unchecked conversion, because GCC 4.x needs a static value for a string bound. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111062 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Ed Schonberg <schonberg@adacore.com>charlet2006-02-151-16/+4
| | | | | | | | | | | * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a string, and the context requires a loop for the assignment (e.g. because the left-hand side is packed), generate a unique name for the temporary that holds the string, to prevent spurious name clashes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111061 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Thomas Quinot <quinot@adacore.com>charlet2006-02-154-24/+64
| | | | | | | | | | | | | | | | | | | | | | | | Ed Schonberg <schonberg@adacore.com> * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to Make_Adjust_Call done for a newly-allocated object. * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements in a subprogram are wrapped in a cleanup block, indicate that the subprogram contains an inner block with an exception handler. (Make_Adjust_Call): New Boolean formal Allocator indicating whether the Adjust call is for a newly-allocated object. In that case we must not assume that the finalization list chain pointers are correct (since they come from a bit-for-bit copy of the original object's pointers) so if the attach level would otherwise be zero (no change), we set it to 4 instead to cause the pointers to be reset to null. * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning reset chain pointers to null. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111060 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Javier Miranda <miranda@adacore.com>charlet2006-02-154-193/+817
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Gary Dismukes <dismukes@adacore.com> * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for availability of RE_Interface_Tag. (Build_Initialization_Call): Fix wrong access to the discriminant value. (Freeze_Record_Type): Do not generate the tables associated with timed and conditional dispatching calls through synchronized interfaces if compiling under No_Dispatching_Calls restriction. When compiling for Ada 2005, for a nonabstract type with a null extension, call Make_Controlling_Function_Wrappers and insert the wrapper function declarations and bodies (the latter being appended as freeze actions). (Predefined_Primitive_Bodies): Do not generate the bodies of the predefined primitives associated with timed and conditional dispatching calls through synchronized interfaces if we are compiling under No_Dispatching_Calls. (Build_Init_Procedure): Use RTE_Available to check if a run-time service is available before generating a call. (Make_Controlling_Function_Wrappers): New procedure. (Expand_N_Full_Type_Declaration): Create a class-wide master for access-to-limited-interfaces because they can be used to reference tasks that implement such limited interface. (Build_Offset_To_Top_Functions): Build the tree corresponding to the procedure spec and body of the Offset_To_Top function that is generated when the parent of a type with discriminants has secondary dispatch tables. (Init_Secondary_Tags): Handle the case in which the parent of the type containing secondary dispatch tables has discriminants to generate the correct arguments to call Set_Offset_To_Top. (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions. * a-tags.ads, a-tags.adb: (Check_Index): Removed. Add Wide_[Wide_]Expanded_Name. (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly the same functionality of Get_Prim_Op_Address but applied to predefined primitive operations because the pointers to the predefined primitives are now saved in a separate table. (Parent_Size): Modified to get access to the separate table of primitive operations or the parent type. (Set_Predefined_Prim_Op_Address): New subprogram that provides the same functionality of Set_Prim_Op_Address but applied to predefined primitive operations. (Set_Signature): New subprogram used to store the signature of a DT. (Displace): If the Offset_To_Top value is not static then call the function generated by the expander to get such value; otherwise use the value stored in the table of interfaces. (Offset_To_Top): The type of the actual has been changed to Address to give the correct support to tagged types with discriminants. In this case this value is stored just immediately after the tag field. (Set_Offset_To_Top): Two new formals have been added to indicate if the offset_to_top value is static and hence pass this value to the run-time to store it in the table of interfaces, or else if this value is dynamic and then pass to the run-time the address of a function that is generated by the expander to provide this value for each object of the type. * rtsfind.ads (Default_Prin_Op_Count): Removed. (Default_Prim_Op_Count): New entity (Get_Predefined_Prim_Op_Address): New entity (Set_Predefined_Prim_Op_Address): New entity (RE_Set_Signature): New entity git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111059 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Robert Dewar <dewar@adacore.com>charlet2006-02-152-16/+36
| | | | | | | | | | | | | | | * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If attribute Mechanism_Code is applied to renamed subprogram, modify prefix to point to base subprogram. Max/Min attributes now violate Restriction No_Implicit_Conditionals * sinfo.ads: Document that Mechanism_Code cannot be applied to renamed subprograms so that the front-end must replace the prefix appropriately. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111058 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Ed Schonberg <schonberg@adacore.com>charlet2006-02-151-24/+212
| | | | | | | | | | | | | | | | | | | * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept does not exist in the Ada RM. (Compatible_Int_Bounds): Determine whether two integer range bounds are of equal length and have the same start and end values. (Is_Int_Range_Bounds): Determine whether a node is an integer range. (Build_Record_Aggr_Code): Perform proper sliding of a nested array aggregate when it is part of an object declaration. (Build_Record_Aggr_Code) If the aggregate ttype is a derived type that constrains discriminants of its parent, add explicitly the discriminant constraints of the ancestor by retrieving them from the stored_constraint of the parent. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111057 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Quentin Ochem <ochem@adacore.com>charlet2006-02-153-33/+82
| | | | | | | | | | | | | | | | | | | | | Olivier Hainque <hainque@adacore.com> * bindusg.adb: Updated documentation for -d and -D switches. * raise.h (__gnat_set_globals): added new parameter for Default_Stack_Size. * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement. (__gnat_handle_vms_condition): Adjust context before raise. (__gnat_install_handler): Restore the global vector setup for GCC versions before 3.4, as the frame based circtuitry is not available in this case. (__gnat_set_globals): added a parameter default_stack_size (__gl_default_stack_size): new variable. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111056 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Javier Miranda <miranda@adacore.com>charlet2006-02-155-176/+217
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Robert Dewar <dewar@adacore.com> Ed Schonberg <schonberg@adacore.com> * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend against errors in the source program: a private types for which the corresponding full type declaration is missing and pragma CPP_Virtual is used. (Is_Unchecked_Union): Check flag on Implementation_Base_Type. (Is_Known_Null): New flag (Has_Pragma_Pure): New flag (No_Return): Present in all entities, set only for procedures (Is_Limited_Type): A type whose ancestor is an interface is limited if explicitly declared limited. (DT_Offset_To_Top_Func): New attribute that is present in E_Component entities. Only used for component marked Is_Tag. If present it stores the Offset_To_Top function used to provide this value in tagged types whose ancestor has discriminants. * exp_ch2.adb: Update status of new Is_Known_Null flag * sem_ch7.adb: Maintain status of new Is_Known_Null flag * sem_cat.adb (Get_Categorization): Don't treat function as Pure in the categorization sense if Is_Pure was set by pragma Pure_Function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111055 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Robert Dewar <dewar@adacore.com>charlet2006-02-157-50/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Serguei Rybin <rybin@adacore.com> * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with save/restore routines. Properly handle Ada_Version_Explicit and Ada_Version_Config, which were not always properly handled previously. Since we are changing the tree format anyway, also get rid of the junk obsolete Immediate_Errors flag. (Tree_Read): Change the way of reading Tree_Version_String - now we read the version string from the tree even if its length is not the same as the length of the version string computed from Gnatvsn. (Search_Directory_Present): New Boolean flag for the compiler. Define Tree_Version_String as a dynamic string. (Default_Stack_Size): new variable, used to handle switch -d. * par-prag.adb: For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit only for main unit. Add pragma Ada_2005 (synonym for Ada_05) Properly handle Ada_Version_Explicit and Ada_Version_Config, which were not always properly handled previously. * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change explicit Ada_95 to Ada_2005. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111054 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Robert Dewar <dewar@adacore.com>charlet2006-02-155-89/+152
| | | | | | | | | | | | | | | | | | | | | | | | | Vincent Celier <celier@adacore.com> * debug.adb: Eliminate numeric switches for binder/gnatmake * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug switches for the compiler. (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake (Scan_Make_Switches): When failing with an illegal switch, output an error message with the full switch. Eliminate numeric switches for binder/gnatmake * switch.ads, switch.adb (Bad_Switch): New procedure * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches. Remove 0-9 as debug flag character possibilities -d is now controlling the primary stack size when its value is a positive. Also add checks against invalid values, and support for kb, mb. Ditto for -D switch. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111053 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Ed Schonberg <schonberg@adacore.com>charlet2006-02-151-77/+115
| | | | | | | | | | | | | | | | | | Thomas Quinot <quinot@adacore.com> * checks.adb (Build_Discriminant_Checks): If the expression being checks is an aggregate retrieve the values of its discriminants to generate the check, rather than creating a temporary and a reference to it. (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag (Install_Null_Excluding_Check): Ditto (Selected_Length_Checks): Build actual subtype for the original Ck_Node, not for the renamed object, so that the actual itype is attached in the proper context. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111052 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Vincent Celier <celier@adacore.com>charlet2006-02-155-9/+62
| | | | | | | | | | | | | | * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New Unchecked_Conversion functions. (Modification_Time): Use direct conversion of OS_Time to Calendar time when OpenVMS returns False. * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (OpenVMS): New Boolean function git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111051 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Eric Botcazou <ebotcazou@adacore.com>charlet2006-02-151-1/+15
| | | | | | | | | * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has wrapped around. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111050 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Robert Dewar <dewar@adacore.com>charlet2006-02-154-66/+106
| | | | | | | | | | | | | | | | | | | | | | | | | Eric Botcazou <ebotcazou@adacore.com> * err_vars.ads: Suppress range checks for a couple of assignments which otherwise cause validity checks with validity checking turned on. Update comments. * errout.adb (Error_Msg_Internal): Do not suppress warning messages. Make message unconditional if it is a warning. (Error_Msg_NEL): Always output warning messages. Suppress range checks for a couple of assignments which otherwise cause validity checks with validity checking turned on. * errout.ads (Message Insertion Characters): Document that '!' is implied by '?' in error messages. * gnat1drv.adb: (Bad_Body): Remove '!' in warning message. (Gnat1drv): Use a goto to end of main subprogram instead of Exit_Program (E_Success) so that finalization can occur normally. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111049 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Robert Dewar <dewar@adacore.com>charlet2006-02-153-16/+35
| | | | | | | | | | | | | | | | * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space after hyphen (small aesthetic change useful for a range of numbers using ^-^. Suppress range checks for a couple of assignments which otherwise cause validity checks with validity checking turned on. * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size): Improvement in error message for object. (Rep_Item_Too_Late): Remove '!' in warning message. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111048 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Robert Dewar <dewar@adacore.com>charlet2006-02-154-10/+19
| | | | | | | | | | | | * gnatvsn.ads (Current_Year): New constant, used to easily update copyright on all GNAT tools. * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed copyright notice. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111047 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Vincent Celier <celier@adacore.com>charlet2006-02-151-14/+46
| | | | | | | | | | * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke gcc to link with option -shared-libgcc. (Gnatlink): Remove duplicate switches -shared-libgcc git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111046 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Joel Brobecker <brobecke@adacore.com>charlet2006-02-151-11/+48
| | | | | | | | | | | * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as volatile, to tell the compiler to preserve this variable at any level of optimization. (Gen_Versions_Ada): Temporarily work around codegen bug. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111045 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Vincent Celier <celier@adacore.com>charlet2006-02-152-9/+24
| | | | | | | | | | | | | * back_end.adb (Scan_Compiler_Arguments): Check if Search_Directory_Present is True and, if it is, add the argument in the source search directory path. * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set Search_Directory_Present to True. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111044 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Geert Bosch <bosch@adacore.com>charlet2006-02-151-25/+27
| | | | | | | | | | | | | | | | Gary Dismukes <dismukes@adacore.com> * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of 0, since the lower bound of the actual string may be greater than one. PR ada/20753 (Put): Fix condition to raise Layout_Error when invalid layout is requested. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111043 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Robert Dewar <dewar@adacore.com>charlet2006-02-155-11/+11
| | | | | | | | | * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb, sem_case.adb: Minor code reorganization (not Present should be No) git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111042 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>charlet2006-02-158-1/+731
| | | | | | | | | | | * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb, a-wwboio.ads, a-zzboio.adb, a-zzboio.ads: New files. * impunit.adb, Makefile.rtl: Added new Ada 2005 units. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111041 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Pat Rogers <rogers@adacore.com>charlet2006-02-152-0/+456
| | | | | | | | * a-rttiev.adb, a-rttiev.ads: New files. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111040 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Nicolas Roche <roche@adacore.com>charlet2006-02-152-1/+212
| | | | | | | | * a-envvar.adb, a-envvar.ads: New files. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111039 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Robert Dewar <dewar@adacore.com>charlet2006-02-155-23/+117
| | | | | | | | | | * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec) * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111038 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Eric Botcazou <ebotcazou@adacore.com>charlet2006-02-152-1/+16
| | | | | | | | | | | | | * lang.opt: Wvariadic-macros: New option. Wold-style-definition: Likewise. Wmissing-format-attribute: Likewise. * misc.c (gnat_handle_option): New cases for -Wvariadic-macros, -Wold-style-definition and -Wmissing-format-attribute. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111037 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Matthew Heaney <heaney@adacore.com>charlet2006-02-152-163/+145
| | | | | | | | | * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of quicksort. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111036 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-13 Matthew Heaney <heaney@adacore.com>charlet2006-02-1526-487/+1342
| | | | | | | | | | | | | | | | | | | | | * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb, a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb, a-cohase.adb: All explicit raise statements now include an exception message. * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb (Update_Element_Preserving_Key): renamed op to just Update_Element. Explicit raise statements now include an exception message * a-cihase.ads, a-cohase.ads: Removed comment. * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb, a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads, a-szbzha.adb, a-szfzha.ads: New files. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111035 138bc75d-0d04-0410-961f-82ee72b054a4
* * s-parame-mingw.adb, s-parame-linux.adb,charlet2006-02-159-385/+99
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | s-parame-solaris.adb: Removed, replaced by s-parame.adb * s-parame-vxworks.ads: Fix typo. * s-parame-vxworks.adb: New file. * s-parame.adb: Version now used by all native platforms. (Default_Stack_Size): Use 2 megs for default stack size and use __gl_default_stack_size when available. (Minimum_Stack_Size): Use 12K. * s-taprop-mingw.adb: Set default stack size linker switch to 2megs. (Create_Task): Refine implementation taking advantage of the XP stack size support. On XP, we now create the thread using the flag STACK_SIZE_PARAM_IS_A_RESERVATION. * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant. * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows XP and 0 on older Windows versions. * interfac-vms.ads: Removed, no longer used. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111034 138bc75d-0d04-0410-961f-82ee72b054a4