1. 31 Oct, 2006 40 commits
    • exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing run-time… · 53cc4a7a
      exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing run-time membership test to ensure that the constructed object...
      
      2006-10-31  Javier Miranda  <miranda@adacore.com>
              
      	* exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
      	run-time membership test to ensure that the constructed object
      	implements the target abstract interface.
      
      From-SVN: r118267
      Javier Miranda committed
    • exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character cases... · c99e6969
      2006-10-31  Robert Dewar  <dewar@adacore.com>
      
      	* exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
      	cases, pass the encoding method, since it is now required by the run
      	time.
      
      	* s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
      	assumption that Str'First = 1.
      	(Value_Wide_Character): Takes EM (encoding method) parameter and passes
      	it on to the Value_Wide_Wide_Character call.
      	(Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
      	properly handles a string of the form quote-encoded_wide_char-quote.
      
      	* s-wchcnv.adb: Minor reformatting
      
      From-SVN: r118266
      Robert Dewar committed
    • exp_fixd.adb (Rounded_Result_Set): For multiplication and division of… · 20f96ac9
      exp_fixd.adb (Rounded_Result_Set): For multiplication and division of fixed-point operations in an integer context...
      
      2006-10-31  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
      	fixed-point operations in an integer context, i.e. as operands of a
      	conversion to an integer type, indicate that result must be rounded.
      
      From-SVN: r118265
      Ed Schonberg committed
    • exp_dist.adb (Get_Subprogram_Ids): This function will no more assign subprogram… · 92869a7b
      exp_dist.adb (Get_Subprogram_Ids): This function will no more assign subprogram Ids, even if they are not yet assigned.
      
      2006-10-31  Thomas Quinot  <quinot@adacore.com>
      	    Pablo Oliveira  <oliveira@adacore.com>
              
              * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
      	subprogram Ids, even if they are not yet assigned.
      	(Build_Subprogram_Id): It is now this function that will take care of
      	calling Assign_Subprogram_Ids if necessary.
      	(Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
      	should be done only once they are assigned.
      	(Build_From_Any_Function, case of tagged types): Add missing call to
      	Allocate_Buffer.
      	(Corresponding_Stub_Type): New subprogram. Returns the associated stub
      	type for an RACW type.
      	(Add_RACW_Features): When processing an RACW declaration for which the
      	designated type is already frozen, enforce E.2.2(14) rules immediately.
      	(GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
      	special reordering of controlling formals.
      
      	* exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
      	associated stub type for an RACW type.
      
      From-SVN: r118264
      Thomas Quinot committed
    • exp_dbug.ads, [...] (Get_External_Name): Add missing initialization of Homonym_Len. · 108e13eb
      2006-10-31  Robert Dewar  <dewar@adacore.com>
      
      	* exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
      	initialization of Homonym_Len.
      	(Fully_Qualify_Name): Remove kludge to eliminate anonymous block
      	names from fully qualified name. Fixes problem of duplicate
      	external names differing only in the presence of such a block name.
      
      From-SVN: r118263
      Robert Dewar committed
    • exp_ch9.adb (Update_Prival_Types): Simplify code for entity references that are… · ae5dd59d
      exp_ch9.adb (Update_Prival_Types): Simplify code for entity references that are private components of the...
      
      2006-10-31  Ed Schonberg  <schonberg@adacore.com>             
      
              * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
      	references that are private components of the protected object.
      	(Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
      	(Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
      	instantiation to deal with warnings.
      	(Initialize_Protection): If expression for priority is non-static, use
      	System_Priority as its expected type, in case the expression has not
      	been analyzed yet.
      
      From-SVN: r118261
      Ed Schonberg committed
    • exp_ch6.ads, [...]: Use new Validity_Check suppression capability. · 02822a92
      2006-10-31  Robert Dewar  <dewar@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      	    Bob Duff  <duff@adacore.com>
      	    Gary Dismukes  <dismukes@adacore.com>
      
      	* exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
      	capability.
      	(Expand_Inlined_Call): Tagged types are by-reference types, and
      	therefore should be replaced by a renaming declaration in the expanded
      	body, as is done for limited types.
      	(Expand_Call): If this is a call to a function with dispatching access
      	result, propagate tag from context.
      	(Freeze_Subprogram): Enable full ABI compatibility for interfacing with
      	CPP by default.
      	(Make_Build_In_Place_Call_In_Assignment): New procedure to do
      	build-in-place when the right-hand side of an assignment is a
      	build-in-place function call.
      	(Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
      	of the explicit dereference of the allocator to the result subtype of
      	the build-in-place function. This is needed to satisfy type checking
      	in cases where the caller's return object is created by an allocator for
      	a class-wide access type and the type named in the allocator is a
      	specific type.
      	(Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
      	conversion of the reference to the declared object to the result subtype
      	of the build-in-place function. This is needed to satisfy type checking
      	in cases where the declared object has a class-wide type. Also, in the
      	class-wide case, change the type of the object entity to the specific
      	result subtype of the function, to avoid passing a class-wide object
      	without explicit initialization to the back end.
      	(Register_Interface_DT_Entry): Moved outside the body of
      	Freeze_Subprogram because this routine is now public; it is called from
      	Check_Dispatching_Overriding to handle late overriding of abstract
      	interface primitives.
      	(Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
      	adding an implicit access actual on a call to a build-in-place function.
      	(Expand_Actuals): Test for an actual parameter that is a call to a
      	build-in-place function and apply
      	Make_Build_In_Place_Call_In_Anonymous_Context to the call.
      	(Is_Build_In_Place_Function): New function to determine whether an
      	entity is a function whose calls should be handled as build-in-place.
      	(Is_Build_In_Place_Function_Call): New function to determine whether an
      	expression is a function call that should handled as build-in-place.
      	(Make_Build_In_Place_Call_In_Allocator): New procedure for handling
      	calls to build-in-place functions as the initialization of an allocator.
      	(Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
      	handling calls to build-in-place functions in contexts that do not
      	involve init of a separate object (for example, actuals of subprogram
      	calls).
      	(Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
      	handling calls to build-in-place functions as the initialization of an
      	object declaration.
      	(Detect_Infinite_Recursion): Add explicit parameter Process to
      	instantiation of Traverse_Body to avoid unreferenced warning.
      	(Check_Overriding_Inherited_Interfaces): Removed.
      	(Register_Interface_DT_Entry): Code cleanup.
      	(Register_Predefined_DT_Entry): Code cleanup.
      	(Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
      	inlined statements if within a transient scope.
      	(Expand_Inlined_Call.Process_Formals): When replacing occurrences of
      	formal parameters with occurrences of actuals in inlined body, establish
      	visibility on the proper view of the actual's subtype for the body's
      	context.
      	(Freeze_Subprogram): Do nothing if we are compiling under full ABI
      	compatibility mode and we have an imported CPP subprogram because
      	for now we assume that imported CPP primitives correspond with
      	objects whose constructor is in the CPP side (and therefore we
      	don't need to generate code to register them in the dispatch table).
      	(Expand_Actuals): Introduce copy of actual, only if it might be a bit-
      	aligned selected component.
      	(Add_Call_By_Copy_Node): Add missing code to handle the case in which
      	the actual of an in-mode parameter is a type conversion.
      	(Expand_Actuals): If the call does not come from source and the actual
      	is potentially misaligned, let gigi handle it rather than rejecting the
      	(Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
      	Class Wide types as returning by reference independantly of their
      	controlled status since with HIE runtimes class wide types are not
      	potentially controlled anymore.
      
      From-SVN: r118260
      Robert Dewar committed
    • re PR target/24071 (__gthread_active_p vs __gthread_once) · efd6ef80
      	PR target/24071
      	* gthr-posix.h (__gthread_active_p): New implementation on Solaris.
      	* gthr-posix95.h (__gthread_active_p): Likewise.
      
      From-SVN: r118259
      Eric Botcazou committed
    • exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure. · 9e5ac75f
      2006-10-31  Bob Duff  <duff@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
      	    Gary Dismukes  <dismukes@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
      
              * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
      	(Expand_N_Assignment_Statement): Call
      	Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
      	build-in-place function call. Currently, this can happen only for
      	assignments that come from aggregates.
      	Add -gnatd.l --Use Ada 95 semantics for limited function returns,
      	in order to alleviate the upward compatibility introduced by AI-318.
      	(Expand_N_Extended_Return_Statement): Add support for handling the
      	return object as a build-in-place result.
      	(Expand_Non_Function_Return): Implement simple return statements nested
      	within an extended return.
      	(Enable_New_Return_Processing): Turn on the new processing of return
      	statements.
      	(Expand_Non_Function_Return): For a return within an extended return,
      	don't raise Program_Error, because Sem_Ch6 now gives a warning.
      	(Expand_N_Extended_Return_Statement): Implement AI-318
      	(Expand_Simple_Function_Return): Ditto.
      	(Expand_N_If_Statement): Handle new -gnatwt warning
      	(Expand_N_Case_Statement): Handle new -gnatwt warning
      	(Expand_N_Assignment): Handle assignment to the Priority attribute of
      	a protected object.
      	(Expand_N_Assignment_Statement): Implement -gnatVe/E to control
      	validity checking of assignments to elementary record components.
      	(Expand_N_Return_Statement): return Class Wide types on the secondary
      	stack independantly of their controlled status since with HIE runtimes,
      	class wide types are not potentially controlled anymore.
      
      	* expander.adb (Expand): Add case for new N_Extended_Return_Statement
      	node kind.
      
      	* exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
      	Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
      	it expects a block, procedure, or task. The return statement will get
      	turned into a block, and Expand_Cleanup_Actions will happen then.
      
      From-SVN: r118258
      Bob Duff committed
    • exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type conversion. · 20b5d666
      2006-10-31  Javier Miranda  <miranda@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      	    Bob Duff  <duff@adacore.com>
      	    Gary Dismukes  <dismukes@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
              
              * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
      	conversion.
              (Expand_N_In): Do validity checks on range
      	(Expand_Selected_Component): Use updated for of Denotes_Discriminant.
      	(Expand_N_Allocator): For "new T", if the object is constrained by
      	discriminant defaults, allocate the right amount of memory, rather than
      	the maximum for type T.
      	(Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
      	when the allocator is initialized by a build-in-place call, since the
      	allocator is already rewritten as a reference to the function result,
      	and this prevents an unwanted duplication of the function call.
      	Add with and use of Exp_Ch6.
      	(Expand_Allocator_Expresssion): Check for an allocator whose expression
      	is a call to build-in-place function and apply
      	Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
      	untagged designated types).
      	(Expand_N_Unchecked_Type_Conversion): Do not do integer literal
      	optimization if source or target is biased.
      	(Expand_N_Allocator): Add comments for case of an allocator within a
      	function that returns an anonymous access type designating tasks.
      	(Expand_N_Allocator): apply discriminant checks for access
      	discriminants of anonymous access types (AI-402, AI-416)
      
      From-SVN: r118257
      Javier Miranda committed
    • exp_ch3.ads, [...] (Expand_N_Object_Declaration): Do not register in the final… · 3476f949
      exp_ch3.ads, [...] (Expand_N_Object_Declaration): Do not register in the final list objects containing class-wide interfaces...
      
      2006-10-31  Javier Miranda  <miranda@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      	    Gary Dismukes  <dismukes@adacore.com>
      
              * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
      	register in the final list objects containing class-wide interfaces;
      	otherwise we incorrectly register the tag of the interface in the final
      	list.
              (Make_Controlling_Function_Wrappers): Add missing barrier to do not
              generate the wrapper if the parent primitive is abstract. This is
              required to report the correct error message.
              (Expand_N_Subtype_Indication): Do validity checks on range
      	(Clean_Task_Names): If an initialization procedure includes a call to
      	initialize a task (sub)component, indicate that the procedure will use
      	the secondary stack.
      	(Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
      	compatibility for interfacing with CPP by default.
      	(Expand_N_Object_Declaration): Only build an Adjust call when the
      	object's type is a nonlimited controlled type.
      	* exp_ch3.adb: Add with and use of Exp_Ch6.
      	(Expand_N_Object_Declaration): Check for object initialization that is a
      	call to build-in-place function and apply Make_Build_In_Place_Call_In_
      	Object_Declaration to the call.
      	(Freeze_Type): When the designated type of an RACW was not frozen at the
      	point where the RACW was declared, validate the primitive operations
      	with respect to E.2.2(14) when it finally is frozen.
      	(Build_Initialization_Call,Expand_Record_Controller): Rename
      	Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
      	return-by-reference has no meaning in Ada 2005.
      	(Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
      	to register tag of the immediate ancestor interfaces in the
      	run-time structure.
      	(Init_Secondary_Tags): Moved to the specification to allow the
      	initialization of extension aggregates with abstract interfaces.
      	(Build_Master_Renaming): Make public, for use by function declarations
      	whose return type is an anonymous access type.
      	(Freeze_Record_Type): Replace call to Insert_List_Before by call to
      	Insert_List_Before_And_Analyze after the generation of the specs
      	associated with null procedures.
      	(Expand_Tagged_Root): Update documentation in its specification.
      	(Init_Secondary_Tags): Update documentation.
      	(Build_Init_Procedure): If we are compiling under CPP full ABI compa-
      	tibility mode and the immediate ancestor is a CPP_Pragma tagged type
      	then generate code to inherit the contents of the dispatch table
      	directly from the ancestor.
      	(Expand_Record_Controller): Insert controller component after tags of
      	implemented interfaces.
      	(Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
      	create null procedure overridings when null procedures are inherited
      	from interfaces.
      	(Make_Null_Procedure_Specs): New procedure to generate null procedure
      	declarations for overriding null primitives inherited from interfaces.
      	(Is_Null_Interface_Procedure): New function in
      	Make_Null_Procedure_Specs.
      	(Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
      	immediate ancestor of a tagged type is an abstract interface type we
      	must generate the specification of the predefined primitives associated
      	with controlled types (because the dispatch table of the ancestor is
      	null and hence these entries cannot be inherited). This is required to
      	elaborate well the dispatch table.
      
      From-SVN: r118256
      Javier Miranda committed
    • exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue · d705ba78
      2006-10-31  Robert Dewar  <dewar@adacore.com>
      
      	* exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
      	(Expand_Entity_Reference): Correct error of not handling subprogram
      	formals in current_value processing.
      
      From-SVN: r118255
      Robert Dewar committed
    • exp_attr.adb: · 7ce611e2
      2006-10-31  Ed Schonberg  <schonberg@adacore.com>
      	    Thomas Quinot  <quinot@adacore.com>
      	    Javier Miranda  <miranda@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
              
              * exp_attr.adb: 
              (Expand_Access_To_Protected_Op): If the context indicates that an access
              to a local operation may be transfered outside of the object, create an
              access to the wrapper operation that must be used in an external call.
      	(Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
      	target, pass the Valid attribute applied to a floating-point prefix on
      	to the back end without expansion.
      	(Storage_Size): Use the new run-time function Storage_Size to retrieve
      	the allocated storage when it is specified by a per-object expression.
      	(Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
      	Nothing to do here, the attribute has been rewritten during semantic
      	analysis.
      	(Expand_Attribute_Reference): Handle expansion of the new Priority
      	attribute
      	(Find_Fat_Info): Handle case of universal real
      	(Expand_Access_To_Protected_Op): Fix use of access to protected
      	subprogram from inside the body of a protected entry.
      	(Expand_Access_To_Protected_Op): Common procedure for the expansion of
      	'Access and 'Unrestricted_Access, to transform the attribute reference
      	into a fat pointer.
      	(Is_Constrained_Aliased_View): New predicate to help determine whether a
      	subcomponent's enclosing variable is aliased with a constrained subtype.
      	(Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
      	test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
      	an aliased prefix must be known to be constrained in order to use True
      	for the attribute value, and now it's possible for some aliased views
      	to be unconstrained.
      
      From-SVN: r118254
      Ed Schonberg committed
    • exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates... · c5ee5ad2
      2006-10-31  Bob Duff  <duff@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
      	the parent part is a build-in-place function call, generate assignments.
      	(Expand_Record_Aggregate): Call Convert_To_Assignments if any components
      	are build-in-place function calls.
      	(Replace_Self_Reference): New subsidiary of
      	Make_OK_Assignment_Statement, to replace an access attribute that is a
      	self-reference into an access to the appropriate component of the
      	target object. Generalizes previous mechanism to handle self-references
      	nested at any level.
      	(Is_Self_Referential_Init): Remove, not needed.
      	(Is_Self_Referential_Init): New predicate to simplify handling of self
      	referential components in record aggregates.
      	(Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
      	check for presence of entity before checking for self-reference.
      	(Has_Default_Init_Comps): Return True if a component association is a
      	self-reference to the enclosing type, which can only come from a
      	default initialization.
      	(Make_OK_Assignment_Statement): If the expression is of the form
      	Typ'Acc, where Acc is an access attribute, the expression comes from a
      	default initialized self-referential component.
      	(Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
      	that has been derived from several abstract interfaces we must also
      	initialize the tags of the secondary dispatch tables.
      
      From-SVN: r118253
      Bob Duff committed
    • erroutc.ads, [...] (Set_Specific_Warning_On): New procedure · e84a1961
      2006-10-31  Robert Dewar  <dewar@adacore.com>
      
      	* erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
      	(Set_Specific_Warning_Off): New procedure
      	(Warning_Specifically_Suppressed): New function
      	(Validate_Specific_Warnings): New procedure
      	(Output_Msg_Text): Complete rewrite to support -gnatjnn
      
      	* err_vars.ads: Implement insertion character ~ (insert string)
      
      From-SVN: r118252
      Robert Dewar committed
    • errout.ads, errout.adb (Finalize): Implement switch -gnatd.m Avoid abbreviation Creat · 4ecc031c
      2006-10-31  Robert Dewar  <dewar@adacore.com>
      
      	* errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
      	Avoid abbreviation Creat
      	(Finalize): List all sources in extended mail source if -gnatl
      	switch is active.
      	Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
      	(Finalize): Implement new -gnatl=xxx switch to output listing to file
      	(Set_Specific_Warning_On): New procedure
      	(Set_Specific_Warning_Off): New procedure
      	Add implementation of new insertion \\
      	(Error_Msg_Internal): Add handling for Error_Msg_Line_Length
      	(Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
      	types.
      	(Error_Msg_Internal): Make sure that we set Last_Killed to
      	True when a message from another package is suppressed.
      	Implement insertion character ~ (insert string)
      	(First_Node): Minor adjustments to get better placement.
      
      	* frontend.adb: 
      	Implement new -gnatl=xxx switch to output listing to file
      
      	* gnat1drv.adb: 
      	Implement new -gnatl=xxx switch to output listing to file
      
              * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
      	(Commands_To_Stdout): New flag
      	Implement new -gnatl=xxx switch to output listing to file
      	New switch Dump_Source_Text
      	(Warn_On_Deleted_Code): New warning flag for -gnatwt
      	Define Error_Msg_Line_Length
      	(Warn_On_Assumed_Low_Bound): New switch
      
      	* osint.ads, osint.adb
      	(Normalize_Directory_Name): Fix bug.
      	Implement new -gnatl=xxx switch to output listing to file
      	(Concat): Removed, replaced by real concatenation
      	Make use of concatenation now allowed in compiler
      	(Executable_Prefix.Get_Install_Dir): First get the full path, so that
      	we find the 'lib' or 'bin' directory even when the tool has been
      	invoked with a relative path.
      	(Executable_Name): New function taking string parameters.
      
      	* osint-c.ads, osint-c.adb: 
      	Implement new -gnatl=xxx switch to output listing to file
      
      	* sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
      
      	* switch-c.adb: 
      	Implement new -gnatl=xxx switch to output listing to file
      	Recognize new -gnatL switch
      	(no longer keep in old warning about old style usage)
      	Use concatenation to simplify code
      	Recognize -gnatjnn switch
      	(Scan_Front_End_Switches): Clean up handling of -gnatW
      	(Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
      
      From-SVN: r118251
      Robert Dewar committed
    • einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all entities. · 6e443c90
      2006-10-31  Robert Dewar  <dewar@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      	    Bob Duff  <duff@adacore.com>
      
      	* einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
      	entities. Move other fields around to make this possible
      	(Is_Derived_Type): Add missing call to Is_Type.
      	(Extra_Formals): New function for subprograms, entries, subprogram
      	types.
      	(Set_Extra_Formals): New procedure for subprograms, entries, subp types.
      	(First_Formal_With_Extras): New function for subprogs, entries, subp
      	types.
      	(Write_Field28_Name): New procedure for node display of "Extra_Formals".
      	Add node information for E_Return_Statement.
      	(Elaborate_Body_Desirable): New flag
      	(Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
      	to be Is_Inherently_Limited_Type, because return-by-reference has
      	no meaning in Ada 2005.
      	(E_Return_Statement): New entity kind.
      	(Return_Applies_To): Field of E_Return_Statement.
      	(Is_Return_Object): New flag in object entities.
      	(Is_Dynamic_Scope): Make it True for E_Return_Statement.
      	(Must_Have_Preelab_Init): New flag
      	(Known_To_Have_Preelab_Init): New flag
      	(Is_Formal_Object): Move from Sem_Ch8 body to Einfo
      	(Is_Visible_Formal): New flag on entities in formal packages.
      	(Low_Bound_Known): New flag
      	(Non_Limited_View, Set_Non_Limited_View): Add membership test agains
      	Incomplete_Kind.
      	(Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
      	output when Id is an incomplete subtype.
      
      From-SVN: r118250
      Robert Dewar committed
    • clean.adb, [...]: Fix bad table increment values (much too small) · cce68562
      2006-10-31  Robert Dewar  <dewar@adacore.com>
      
      	* clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
      	prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
      	vms_conv.adb: Fix bad table increment values (much too small)
      
      	* table.adb (Realloc): Make sure we get at least some new elements
      	Defends against silly small values for table increment
      
      From-SVN: r118249
      Robert Dewar committed
    • treepr.adb: Use new subtype N_Membership_Test · c064e066
      2006-10-31  Robert Dewar  <dewar@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      
      	* treepr.adb: Use new subtype N_Membership_Test
      
              * checks.ads, checks.adb: Add definition for Validity_Check
              (Range_Or_Validity_Checks_Suppressed): New function
              (Ensure_Valid): Test Validity_Check suppressed
              (Insert_Valid_Check): Test Validity_Check suppressed
              (Insert_Valid_Check): Preserve Do_Range_Check flag
      	(Validity_Check_Range): New procedure
      	(Expr_Known_Valid): Result of membership test is always valid
      	(Selected_Range_Checks): Range checks cannot be applied to discriminants
      	by themselves. Disabling those checks must also be done for task types,
      	where discriminants may be used for the bounds of entry families.
      	(Apply_Address_Clause_Check): Remove side-effects if address expression
      	is non-static and is not the name of a declared constant.
      	(Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
      	Code cleanup and new error messages.
      	(Enable_Range_Check): Test for some cases of suppressed checks
      	(Generate_Index_Checks): Suppress index checks if index checks are
      	suppressed for array object or array type.
      	(Apply_Selected_Length_Checks): Give warning for compile-time detected
      	length check failure, even if checks are off.
      	(Ensure_Valid): Do not generate a check on an indexed component whose
      	prefix is a packed boolean array.
      	* checks.adb: (Alignment_Checks_Suppressed): New function
      	(Apply_Address_Clause_Check): New procedure, this is a completely
      	rewritten replacement for Apply_Alignment_Check
      	(Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
      	we request a discriminal value only in case of discriminants.
      	(Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
      	assignments where the target subtype is unconstrained and the target
      	object is a parameter or dereference (other aliased cases are known
      	to be unconstrained).
      
      From-SVN: r118248
      Robert Dewar committed
    • cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when using RTPs. · ff9625b0
      2006-10-31  Jose Ruiz  <ruiz@adacore.com>
      
      	* cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
      	using RTPs.
      
      	* mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
      	when using RTPs.
      
      From-SVN: r118247
      Jose Ruiz committed
    • bindusg.ads, [...]: Change to package and rename procedure as Display... · db89aef2
      2006-10-31  Robert Dewar  <dewar@adacore.com>
      
      	* bindusg.ads, bindusg.adb:
      	Change to package and rename procedure as Display, which
      	now ensures that it only outputs usage information once.
      
      From-SVN: r118246
      Robert Dewar committed
    • binde.adb (Better_Choice, [...]): Implement new preferences. · bd8b9b1e
      2006-10-31  Robert Dewar  <dewar@adacore.com>
      
      	* binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
      
      From-SVN: r118245
      Robert Dewar committed
    • a-tags.ads, a-tags.adb: · bfef8d0d
      2006-10-31  Javier Miranda  <miranda@adacore.com>
      
      	* a-tags.ads, a-tags.adb: 
      	(Predefined_DT): New function that improves readability of the code.
      	(Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
      	Inherit_DT): Use the new function Predefined_DT to improve code
      	readability.
      	(Register_Interface_Tag): Update assertion.
      	(Set_Interface_Table): Update assertion.
      	(Interface_Ancestor_Tags): New subprogram required to implement AI-405:
      	determining progenitor interfaces in Tags.
      	(Inherit_CPP_DT): New subprogram.
      
              * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
      	analysis of the thunk code.
              (Expand_Interface_Conversion): Handle run-time conversion of
              access to class wide types.
      	(Expand_Dispatching_Call): When generating the profile for the
      	subprogram itype for a dispatching operation, properly terminate the
      	formal parameters chaind list (set the Next_Entity of the last formal
      	to Empty).
      	(Collect_All_Interfaces): Removed. This routine has been moved to
      	sem_util and renamed as Collect_All_Abstract_Interfaces.
      	(Set_All_DT_Position): Hidden entities associated with abstract
      	interface primitives are not taken into account in the check for
      	3.9.3(10); this check is done with the aliased entity.
      	(Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
      	interfacing with CPP by default.
      	(Expand_Interface_Conversion): Add missing support for static conversion
      	from an interface to a tagged type.
      	(Collect_All_Interfaces): Add new out formal containing the list of
      	abstract interface types to cleanup the subprogram Make_DT.
      	(Make_DT): Update the code to generate the table of interfaces in case
      	of abstract interface types.
      	(Is_Predefined_Dispatching_Alias): New function that returns true if
      	a primitive is not a predefined dispatching primitive but it is an
      	alias of a predefined dispatching primitive.
      	(Make_DT): If the ancestor of the type is a CPP_Class and we are
      	compiling under full ABI compatibility mode we avoid the generation of
      	calls to run-time services that fill the dispatch tables because under
      	this mode we currently inherit the dispatch tables in the IP subprogram.
      	(Write_DT): Emit an "is null" indication for a null procedure primitive.
      	(Expand_Interface_Conversion): Use an address as the type of the formal
      	of the internally built function that handles the case in which the
      	target type is an access type.
      
      From-SVN: r118244
      Javier Miranda committed
    • a-dispat.ads, [...]: New files. · 3cb8344b
      2006-10-31  Robert Dewar  <dewar@adacore.com>
      	    Jose Ruiz  <ruiz@adacore.com>
      
      	* a-dispat.ads, a-diroro.ads, a-diroro.adb: New files.
      
      	* ali.adb (Get_Name): Properly handle scanning of wide character names
      	encoded with brackets notation.
      	(Known_ALI_Lines): Add S lines to this list.
      	(Scan_ALI): Acquire S (priority specific dispatching) lines.
      	New flag Elaborate_All_Desirable in unit table
      
      	* ali.ads (Priority_Specific_Dispatching): Add this range of
      	identifiers to be used for Priority_Specific_Dispatching table entries.
      	(ALIs_Record): Add First_Specific_Dispatching and
      	Last_Specific_Dispatching that point to the first and last entries
      	respectively in the priority specific dispatching table for this unit.
      	(Specific_Dispatching): Add this table for storing each S (priority
      	specific dispatching) line encountered in the input ALI file.
      	New flag Elaborate_All_Desirable in unit table
      
      	* bcheck.adb: (Check_Configuration_Consistency): Add call to
      	Check_Consistent_Dispatching_Policy.
      	(Check_Consistent_Dispatching_Policy): Add this procedure in charge of
      	verifying that the use of Priority_Specific_Dispatching,
      	Task_Dispatching_Policy, and Locking_Policy is consistent across the
      	partition.
      
      	* bindgen.adb: (Public_Version_Warning): function removed.
      	(Set_PSD_Pragma_Table): Add this procedure in charge of getting the
      	required information from ALI files in order to initialize the table
      	containing the specific dispatching policy.
      	(Gen_Adainit_Ada): Generate the variables required for priority specific
      	dispatching entries (__gl_priority_specific_dispatching and
      	__gl_num_specific_dispatching).
      	(Gen_Adainit_C): Generate the variables required for priority specific
      	dispatching entries (__gl_priority_specific_dispatching and
      	__gl_num_specific_dispatching).
      	(Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
      	pragma entries.
      	(Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
      	(Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
      	(Tab_To): Removed.
      	(Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
      	a call to gnat_set_globals.
      	Generate a string containing settings from
      	Priority_Specific_Dispatching pragma entries.
      	(Gen_Object_Files_Options): Do not include the runtime libraries when
      	pragma No_Run_Time is specified.
      
      	* init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
      	consistency with s-intman-posix.adb.
      	(__gnat_error_handler, case FreeBSD): Account for the fact that the
      	handler is installed with SA_SIGINFO.
      	(__gnat_adjust_context_for_raise, FreeBSD case): New function for
      	FreeBSD ZCX support, copied from Linux version.
      	Add MaRTE-specific definitions for the linux target. Redefine sigaction,
      	sigfillset, and sigemptyset so the routines defined by MaRTE.
      	(__gl_priority_specific_dispatching): Add this variable that stores the
      	string containing priority specific dispatching policies in the
      	partition.
      	(__gl_num_specific_dispatching): Add this variable that indicates the
      	highest priority for which a priority specific dispatching pragma
      	applies.
      	(__gnat_get_specific_dispatching): Add this routine that returns the
      	priority specific dispatching policy, as set by a
      	Priority_Specific_Dispatching pragma appearing anywhere in the current
      	partition. The input argument is the priority number, and the result
      	is the upper case first character of the policy name.
      	(__gnat_set_globals): Now a dummy function.
      	(__gnat_handle_vms_condition): Feed adjust_context_for_raise with
      	mechargs instead of sigargs, as the latter can be retrieved from the
      	former and sigargs is not what we want on ia64.
      	(__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
      	mechargs argument.
      	(__gnat_adjust_context_for_raise, ia64-vms): New function.
      	(tasking_error): Remove unused symbol.
      	(_abort_signal): Move this symbol to the IRIX specific part since this
      	is the only target that uses this definition.
      	(Check_Abort_Status): Move this symbol to the IRIX specific part since
      	this is the only target that uses this definition.
      	(Lock_Task): Remove unused symbol.
      	(Unlock_Task): Remove unused symbol.
      
      	* lib-writ.adb (Write_ALI): Output new S lines for
      	Priority_Specific_Dispatching pragmas.
      	Implement new flag BD for elaborate body desirable
      
      	* lib-writ.ads: Document S lines for Priority Specific Dispatching.
      	(Specific_Dispatching): Add this table for storing the entries
      	corresponding to Priority_Specific_Dispatching pragmas.
      	Document new BD flag for elaborate body desirable
      
      	* par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
      	of known pragmas.
      
      From-SVN: r118243
      Robert Dewar committed
    • lib.adb, lib.ads: (In_Predefined_Unit): New functions · 9b832db5
      2006-10-31  Robert Dewar  <dewar@adacore.com>
      
      	* lib.adb, lib.ads: (In_Predefined_Unit): New functions
      
      	* a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads, 
      	a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads, 
      	a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads, 
      	a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads, 
      	a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads, 
      	a-except-2005.ads: Add pragma Preelaborable_Warning
      
      From-SVN: r118242
      Robert Dewar committed
    • a-filico.adb (Finalize(List_Controller)): Mark the finalization list as finalization-started... · 498a5a84
      2006-10-31  Bob Duff  <duff@adacore.com>
      
      	* a-filico.adb (Finalize(List_Controller)): Mark the finalization list
      	as finalization-started, so we can raise Program_Error on 'new'.
      
      	* s-finimp.adb: Raise Program_Error on 'new' if finalization of the
      	collection has already started.
      
      	* s-finimp.ads (Collection_Finalization_Started): Added new special
      	flag value for indicating that a collection's finalization has started.
      
      	* s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
      	create a task whose master has already waited for dependent tasks.
      
      From-SVN: r118241
      Bob Duff committed
    • adaint.c (__gnat_get_libraries_from_registry): Call explicitly the ASCII version… · 18f22284
      adaint.c (__gnat_get_libraries_from_registry): Call explicitly the ASCII version of the registry API.
      
      2006-10-31  Pascal Obry  <obry@adacore.com>
      	    Eric Botcazou  <ebotcazou@adacore.com>
      	    Vincent Celier  <celier@adacore.com>
      
      	* adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
      	ASCII version of the registry API. This is needed as the GNAT runtime
      	is now UNICODE by default.
      	Include version.h.
      	(get_gcc_version): Do not hardcode the return value.
      	(__gnat_file_time_name): On Windows properly set the default returned
      	value to -1 which corresponds to Invalid_Time.
      	(__gnat_fopen): New routine. A simple wrapper on all plateforms
      	 except on Windows where it does conversion for unicode support.
      	(__gnat_freopen): Idem.
      	(__gnat_locate_exec_on_path): If environment variable PATH does not
      	exist, return a NULL pointer
      
      	* adaint.h: (__gnat_fopen): Declare.
      	(__gnat_freopen): Likewise.
      
      	* mingw32.h (_tfreopen): Define this macro here for older MingW
      	version.
      	Activate the unicode support on platforms using a MingW runtime
      	version 3.9 or newer.
      
      	* s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
      	This is needed for proper unicode support on Windows.
      	(freopen): Idem.
      
      From-SVN: r118240
      Pascal Obry committed
    • s-osinte-vxworks.ads, [...]: · d1fa78e3
      2006-10-31  Jose Ruiz  <ruiz@adacore.com>
      
      	* s-osinte-vxworks.ads, s-osinte-vxworks.adb: 
      	(getpid): New body for this function that uses the underlying taskIdSelf
      	function for VxWorks 5 and VxWorks 6 in kernel mode.
      	(unsigned_int): New type, modular to allow logical bit operations.
      	(taskOptionsGet): New imported function.
      
      	* s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
      	field to be compliant with the type used by the corresponding operating
      	system primitive.
      
      From-SVN: r118239
      Jose Ruiz committed
    • s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer. · 8dbb621e
      2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
      	(Initialize): Add type conversions required by above change.
      
      From-SVN: r118238
      Eric Botcazou committed
    • mlib-tgt-lynxos.adb, [...]: Use Append_To, instead of Ext_To, when building the library file name · f95969ea
      2006-10-31  Vincent Celier  <celier@adacore.com>
      	    Eric Botcazou  <ebotcazou@adacore.com>
      
      	* mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
      	mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
      	mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
      	Ext_To, when building the library file name
      
      	* mlib-tgt-vxworks.adb: ditto.
      	(Get_Target_Suffix): Add support for x86 targets.
      
      	* mlib-fil.ads, mlib-fil.adb: (Append_To): New function
      
      	* mlib-tgt-darwin.adb: 
      	Use Append_To, instead of Ext_To, when building the library file name
      	(Flat_Namespace): New global variable.
      	(No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
      	(Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
      	(Link_Shared_Libgcc): Delete.
      	(Build_Dynamic_Library): Adjust for above changes.
      	Use Opt package.
      	(Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
      
      From-SVN: r118237
      Vincent Celier committed
    • system-vms_64.ads, [...]: Add pragma Warnings(Off... · f28ded01
      2006-10-31  Robert Dewar  <dewar@adacore.com>
      
      	* system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
      	system-linux-hppa.ads, system-hpux-ia64.ads, 
      	system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads, 
      	system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
      	system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
      	system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads, 
      	system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
      	system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
      	system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
      	Default_Bit_Order) to kill constant condition warnings for references
      	to this switch.
      
      From-SVN: r118236
      Robert Dewar committed
    • s-osinte-posix.adb, [...] (To_Target_Priority): New function maps from… · ec946d18
      s-osinte-posix.adb, [...] (To_Target_Priority): New function maps from System.Any_Priority to a POSIX priority on the target.
      
      2006-10-31  Arnaud Charlet  <charlet@adacore.com>
      	    Jose Ruiz  <ruiz@adacore.com>
      
      	* s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb, 
      	s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads, 
      	s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
      	s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
      	System.Any_Priority to a POSIX priority on the target.
      
      	* system-linux-ia64.ads: 
      	Extend range of Priority types on Linux to use the whole range made
      	available by the system.
      
      	* s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
      	function maps from System.Any_Priority to a POSIX priority on the
      	target.
      	(PTHREAD_PRIO_PROTECT): Set real value.
      	(PTHREAD_PRIO_INHERIT): Now a function.
      	(SIGCPUFAIL): New signal.
      	(Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
      	are documented as reserved by the OS.
      
      	* system-aix.ads: Use the full range of priorities provided by the
      	system on AIX.
      
      	* s-taprop-posix.adb: Call new function To_Target_Priority.
      	(Set_Priority): Take into account Task_Dispatching_Policy and
      	Priority_Specific_Dispatching pragmas when determining if Round Robin
      	must be used for scheduling the task.
      
      	* system-linux-x86_64.ads, system-linux-x86.ads, 
      	system-linux-ppc.ads: Extend range of Priority types on Linux to use
      	the whole range made available by the system.
      
      	* s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb, 
      	s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb, 
      	s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
      	when deallocating the TCB in order to avoid potential references to
      	deallocated data.
      	(Set_Priority): Take into account Task_Dispatching_Policy and
      	Priority_Specific_Dispatching pragmas when determining if Round Robin
      	or FIFO within priorities must be used for scheduling the task.
      
      	* s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
      	the Thread field (to be used internally by the run-time system) and the
      	kernel-level task id in the LWP field (to be used by the debugger).
      	(Create_Task): Reorganize to unify the calls to taskSpawn into a single
      	instance, and propagate the current task options to the spawned task.
      	(Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
      	(Initialize): Set Round Robin dispatching when the corresponding pragma
      	is in effect.
      
      From-SVN: r118235
      Arnaud Charlet committed
    • a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private part of Ada.Calendar... · 6e451134
      2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
      	    Jose Ruiz  <ruiz@adacore.com>
      
      	* a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
      	part of Ada.Calendar: all subprogram raise Unimplemented.
      	(Split_W_Offset): Temp function body, raising Unimplemented
      
      	* a-calend.ads, a-calend-vms.ads: 
      	Add imported variable Invalid_TZ_Offset used to designate targets unable
      	to support time zones.
      	(Unimplemented): Temporary function raised by the body of new
      	subprograms below.
      	(Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
      	unit provides handling of leap seconds and is used by the new Ada 2005
      	packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
      	(Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
      	version returns an extra value which is the offset to UTC.
      
      	* a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
      	(Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
      	(Split_W_Offset): New function body.
      	(Time_Of): When a date is close to UNIX epoch, compute the time for
      	that date plus one day (that amount is later substracted after
      	executing mktime) so there are no problems with time zone adjustments.
      
      	* a-calend-mingw.adb: Remove Windows specific version no longer needed.
      
      	* a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
      	a-catizo.ads, a-catizo.adb: New files.
      
              * impunit.adb: Add new Ada 2005 entries
      
      	* sysdep.c: Add external variable __gnat_invalid_tz_offset.
      	Rename all occurences of "__gnat_localtime_r" to
      	"__gnat_localtime_tzoff".
      	(__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
      	zone data and calculate the GMT offset.
      	(__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
      	Use the field "tm_gmtoff" to extract the GMT offset.
      	(__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
      	the external variable "timezone" to calculate the GMT offset.
      
      From-SVN: r118234
      Hristian Kirtchev committed
    • g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned error status. · 014c9caa
      2006-10-31  Thomas Quinot  <quinot@adacore.com>
      
      	* g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
      	error status.
      
      From-SVN: r118233
      Thomas Quinot committed
    • sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus with multiplying operator. · aa180613
      2006-10-31  Robert Dewar  <dewar@adacore.com>
      	    Bob Duff  <duff@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      
              * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
      	with multiplying operator.
      	(Expected_Type_Is_Any_Real): New function to determine from the Parent
      	pointer whether the context expects "any real type".
      	(Resolve_Arithmetic_Op): Do not give an error on calls to the
      	universal_fixed "*" and "/" operators when they are used in a context
      	that expects any real type. Also set the type of the node to
      	Universal_Real in this case, because downstream processing requires it
      	(mainly static expression evaluation).
      	Reword some continuation messages
      	Add some \\ sequences to continuation messages
      	(Resolve_Call): Refine infinite recursion case. The test has been
      	sharpened to eliminate some false positives.
      	Check for Current_Task usage now includes entry barrier, and is now a
      	warning, not an error.
      	(Resolve): If the call is ambiguous, indicate whether an interpretation
      	is an inherited operation.
      	(Check_Aggr): When resolving aggregates, skip associations with a box,
      	which are priori correct, and will be replaced by an actual default
      	expression in the course of expansion.
      	(Resolve_Type_Conversion): Add missing support for conversion from
      	a class-wide interface to a tagged type. Minor code cleanup.
      	(Valid_Tagged_Converion): Add support for abstact interface type
      	conversions.
      	(Resolve_Selected_Component): Call Generate_Reference here rather than
      	during analysis, and use May_Be_Lvalue to distinguish read/write.
      	(Valid_Array_Conversion): New procedure, abstracted from
      	Valid_Conversion, to incorporate accessibility checks for arrays of
      	anonymous access types.
      	(Valid_Conversion): For a conversion to a numeric type occurring in an
      	instance or inlined body, no need to check that the operand type is
      	numeric, since this has been checked during analysis of the template.
      	Remove legacy test for scope name Unchecked_Conversion.
      
      	* sem_res.ads: Minor reformatting
      
      	* a-except.adb, a-except-2005.adb: Turn off subprogram ordering
      	(PE_Current_Task_In_Entry_Body): New exception code
      	(SE_Restriction_Violation): Removed, not used
      
      	* a-except.ads:  Update comments.
      
      	* types.h, types.ads: Add definition for Validity_Check
      	(PE_Current_Task_In_Entry_Body): New exception code
      	(SE_Restriction_Violation): Removed, not used
      
      From-SVN: r118232
      Robert Dewar committed
    • a-taster.adb, [...]: Minor reformatting. · 524c02d7
      2006-10-31  Robert Dewar  <dewar@adacore.com>
      
      	* a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
      	a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
      	s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
      	a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
      	a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
      	a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
      	a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
      	a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
      	a-szbzha.adb: Minor reformatting. Fix header.
      
      	* a-numaux-x86.adb: Add parentheses for use of unary minus
      	* a-ngcefu.adb: Supply missing parentheses for unary minus
      	* a-ngcoty.adb: Add parens for use of unary minus
      	* a-ngelfu.adb: Add missing parens for unary minus
      	* a-tifiio.adb: Add parentheses for uses of unary minus
      
      From-SVN: r118231
      Robert Dewar committed
    • MAINTAINERS (Write After Approval): Add myself. · 7aa42285
      From-SVN: r118230
      Stephen M. Webb committed
    • i386.md (asindf2, [...]): Conditionalize expansion on !optimize_size. · 1d08f955
      2006-10-31  Richard Guenther  <rguenther@suse.de>
      
      	* config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
      	acossf2, acosxf2, log1psf2, log1pdf2, log1pxf2, ilogbsi2,
      	expsf2, expdf2, expxf2, exp10sf2, exp10df2, exp10xf2,
      	exp2sf2, exp2df2, exp2xf2, expm1df2, expm1sf2, expm1xf2,
      	ldexpdf3, ldexpsf3, ldexpxf3, rintxf2, rintdf2, rintsf2,
      	lround<mode>di2, lround<mode>si2, floorxf2, floordf2, floorsf2,
      	lfloor<mode>di2, lfloor<mode>si2, ceilxf2, ceildf2, ceilsf2,
      	btruncxf2, btruncdf2, btruncsf2): Conditionalize expansion on
      	!optimize_size.
      
      From-SVN: r118221
      Richard Guenther committed
    • re PR fortran/29387 (ICE on character array function of variable length) · dd5797cc
      2006-10-31  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/29387
      	* trans-intrinsic.c (gfc_conv_intrinsic_len): Rearrange to have
      	a specific case for EXPR_VARIABLE and, in default, build an ss
      	to call gfc_conv_expr_descriptor for array expressions..
      
      	PR fortran/29490
      	* trans-expr.c (gfc_set_interface_mapping_bounds): In the case
      	that GFC_TYPE_ARRAY_LBOUND is not available, use descriptor
      	values for it and GFC_TYPE_ARRAY_UBOUND.
      
      	PR fortran/29641
      	* trans-types.c (gfc_get_derived_type): If the derived type
      	namespace has neither a parent nor a proc_name, set NULL for
      	the search namespace.
      
      
      2006-10-31  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/29387
      	* gfortran.dg/intrinsic_actual_2.f90: New test.
      
      	PR fortran/29490
      	* gfortran.dg/actual_array_interface_1.f90: New test.
      
      	PR fortran/29641
      	* gfortran.dg/used_types_11.f90: New test.
      
      From-SVN: r118220
      Paul Thomas committed
    • * opts.c (decode_options): Disable CSE skip blocks. · e5c18c3c
      From-SVN: r118219
      Steven Bosscher committed