1. 16 Jun, 2005 19 commits
    • checks.adb (Install_Null_Excluding_Check): Do not generate checks for an… · d8b9660d
      checks.adb (Install_Null_Excluding_Check): Do not generate checks for an attribute reference that returns an access type.
      
      2005-06-14  Ed Schonberg  <schonberg@adacore.com>
      
      	* checks.adb (Install_Null_Excluding_Check): Do not generate checks
      	for an attribute reference that returns an access type.
      	(Apply_Discriminant_Check): No need for check if (designated) type has
      	constrained partial view.
      	(Apply_Float_Conversion_Check): Generate a short-circuit expression for
      	both bound checks, rather than a conjunction.
      	(Insert_Valid_Check): If the expression is an actual that is an indexed
      	component of a bit-packed array, force expansion of the packed element
      	reference, because it is specifically inhibited elsewhere.
      
      From-SVN: r101027
      Ed Schonberg committed
    • atree.adb: (Elist*): Protect against uninitialized field · 994037fc
      2005-06-14  Robert Dewar  <dewar@adacore.com>
      
      	* atree.adb: (Elist*): Protect against uninitialized field
      
      From-SVN: r101026
      Robert Dewar committed
    • a-textio.adb (Set_Col): Fix two errors noticed recently... · 399e70e8
      2005-06-14  Robert Dewar  <dewar@adacore.com>
      
      	* a-textio.adb (Set_Col): Fix two errors noticed recently, having to
      	do with treatment of Set_Col when positioned at end of line character.
      
      From-SVN: r101025
      Robert Dewar committed
    • exp_ch4.adb (Expand_Allocator_Expression): When an initialized allocator's… · 758c442c
      exp_ch4.adb (Expand_Allocator_Expression): When an initialized allocator's designated type is a class-wide type...
      
      2005-06-14  Gary Dismukes  <dismukes@adacore.com>
      	    Javier Miranda  <miranda@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      	    Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch4.adb (Expand_Allocator_Expression): When an initialized
      	allocator's designated type is a class-wide type, and compiling for
      	Ada 2005, emit a run-time check that the accessibility level of the
      	type given in the allocator's expression is not deeper than the level
      	of the allocator's access type.
      
      	(Tagged_Membership): Modified to gives support to abstract interface
      	types.
      
      	* a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
      	Access_Level.
      	(Descendant_Tag): New predefined function
      	(Is_Descendant_At_Same_Level): New predefined function
      	(Get_Access_Level): New private function
      	(Set_Access_Level): New private procedure
      	(IW_Membership): New function. Given the tag of an object and the tag
      	associated with an interface, evaluate if the object implements the
      	interface.
      	(Register_Interface_Tag): New procedure used to initialize the table of
      	interfaces used by the IW_Membership function.
      	(Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
      	of the dispatch table.
      	(Inherit_TSD): Modified to copy the table of ancestor tags plus the
      	table of interfaces of the parent.
      	(Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
      	(External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
      	(Parent_Tag): Return No_Tag in the case of a root-level tagged type,
      	and raise Tag_Error if the passed tag equalis No_Tag, to conform with
      	Ada 2005 semantics for the new predefined function.
      
      	* exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
      	call to Descendant_Tag rather than Internal_Tag.
      	(Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
      	the accessibility level of the attribute's Item parameter is not deeper
      	than the level of the attribute's prefix type. Tag_Error is raised if
      	the check fails. The check is only emitted for Ada_05.
      	(Find_Stream_Subprogram): If a TSS exists on the type itself for the
      	requested stream attribute, use it.
      	(Expand_N_Attribute_Reference): If the designated type is an interface
      	then rewrite the referenced object as a conversion to force the
      	displacement of the pointer to the secondary dispatch table.
      	(Expand_N_Attribute_Reference, case 'Constrained): Return false if this
      	is a dereference of an object with a constrained partial view.
      
      	* exp_ch5.adb (Expand_N_Return_Statement): When a function's result
      	type is a class-wide type, emit a run-time check that the accessibility
      	level of the returned object is not deeper than the level of the
      	function's master (only when compiling for Ada 2005).
      
      	* exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
      	Action_Nb_Arg): Add entries for new Get_Access_Level and
      	Set_Access_Level routines in these tables.
      	(Make_DT): Generate a call to set the accessibility level of the
      	tagged type in its TSD.
      	(Make_DT): Code cleanup. The functionality of generating all the
      	secondary dispatch tables has been moved to freeze_record_type.
      	(Make_Abstract_Interface_DT): Minor code cleanup.
      	(Set_All_DT_Position): Code cleanup. As part of the code cleanup
      	this subprogram implements a new algorithm that provides the
      	same functionality and it is more clear in case of primitives
      	associated with abstract interfaces.
      	(Set_All_Interfaces_DTC_Entity): Removed. As part of the code
      	clean up, the functionality of this subprogram is now provided
      	by Set_All_DT_Position.
      	(Write_DT): New subprogram: a debugging procedure designed to be called
      	within gdb to display the dispatch tables associated with a tagged
      	type.
      	(Collect_All_Interfaces): New subprogram that collects the whole list
      	of interfaces that are directly or indirectly implemented by a tagged
      	type.
      	(Default_Prim_Op_Position): New subprogram that returns the fixed
      	position in the dispatch table of the default primitive operations.
      	(Expand_Interface_Actuals): New subprogram to generate code that
      	displaces all the actuals corresponding to class-wide interfaces to
      	reference the interface tag of the actual object.
      	(Expand_Interface_Conversion): New subprogram. Reference the base of
      	the object to give access to the interface tag associated with the
      	secondary dispatch table.
      	(Expand_Interface_Thunk): New subprogram that generates the code of the
      	thunk. This is required for compatibility with the C+ ABI.
      	(Make_Abstract_Interface_DT): New subprogram that generate the
      	declarations for the secondary dispatch tables associated with an
      	abstract interface.
      	(Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
      	attribute for each primitive operation covering interface subprograms
      	(Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
      	These subprograms were upgraded to give support to abstract interfaces
      
      	* rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
      	RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
      	RE_Set_Access_Level.
      	(RE_Unit_Table): Add entries for new Ada.Tags operations.
      	Add support to call the followig new run-time subprograms:
      	IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
      
      	* sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
      	match its full declaration when both have an access definition with
      	statically matching designated subtypes.
      	(Analyze_Component_Declaration): Delete commented out code that was
      	incorrectly setting the scope of an anonymous access component's type.
      	(Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
      	an access discriminant when the containing type is nonlimited.
      	(Make_Incomplete_Type_Declaration): Create an incomplete type
      	declaration for a record type that includes self-referential access
      	components.
      	(Check_Anonymous_Access_Types): Before full analysis of a record type
      	declaration, create anonymous access types for each self-referential
      	access component.
      	(Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
      	an access component in this context is a Local_Anonymous_Access, for
      	proper accessibility checks.
      	(Access_Definition): Set properly the scope of the anonymous access type
      	created for a stand-alone access object.
      	(Find_Type_Of_Object): An object declaration may be given with an access
      	definition.
      	(Complete_Subprograms_Derivation): New subprogram used to complete
      	type derivation of private tagged types implementing interfaces.
      	In this case some interface primitives may have been overriden
      	with the partial-view and, instead of re-calculating them, they
      	are included in the list of primitive operations of the full-view.
      	(Build_Derived_Record_Type): Modified to give support to private
      	types implemening interfaces.
      	(Access_Definition): Reject ALL on anonymous access types.
      	(Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
      	type derivation to occur at a deeper accessibility level than the
      	parent type.
      	For the case of derivation within a generic body however, disallow the
      	derivation if the derived type has an ancestor that is a formal type
      	declared in the formal part of an enclosing generic.
      	(Analyze_Object_Declaration): For protected objects, remove the check
      	that they cannot contain interrupt handlers if not declared at library
      	level.
      	(Add_Interface_Tag_Components): New subprogram to add the tag components
      	corresponding to all the abstract interface types implemented by a
      	record type or a derived record type.
      	(Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
      	Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
      	Process_Full_View, Record_Type_Declaration): Modified to give
      	support to abstract interface types
      	(Collect_Interfaces): New subprogram that collects the list of
      	interfaces that are not already implemented by the ancestors
      	(Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
      	when partial view has no discriminants and full view has defaults.
      	(Constrain_Access): Reject a constraint on a general access type
      	if the discriminants of the designated type have defaults.
      	(Access_Subprogram_Declaration): Associate the Itype node with the inner
      	full-type declaration or subprogram spec. This is required to handle
      	nested anonymous declarations.
      	(Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
      	Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
      	Process_Full_View, Record_Type_Declaration): Modified to give
      	support to abstract interface types
      	(Derive_Subprograms): Addition of a new formal to indicate if
      	we are in the case of an abstact-interface derivation
      	(Find_Type_Of_Subtype_Indic): Moved from the body of the package
      	to the specification because it is requied to analyze all the
      	identifiers found in a list of interfaces
      
      	* debug.adb: Complete documentation of flag "-gnatdZ"
      
      	* exp_ch3.adb: Implement config version of persistent_bss pragma
      	(Check_Stream_Attributes): Use Stream_Attribute_Available instead of
      	testing for TSS presence to properly enforce visibility rules.
      	(Freeze_Record_Type): Code cleanup. Modified to call the subprogram
      	Make_Abstract_Interfaces_DT to generate the secondary tables
      	associated with abstract interfaces.
      	(Build_Init_Procedure): Modified to initialize all the tags
      	corresponding.
      	(Component_Needs_Simple_Initialization): Similar to other tags,
      	interface tags do not need initialization.
      	(Freeze_Record_Type): Modified to give support to abstract interface
      	types.
      	(Expand_N_Object_Declaration): Do not generate an initialization for
      	a scalar temporary marked as internal.
      
      	* exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
      	in-out parameter that is a component in an initialization procedure,
      	whose constraint might depend on discriminants, and that may be
      	misaligned because of packing or representation clauses.
      	(Is_Legal_Copy): New predicate to determine whether a possibly
      	misaligned in-out actual can actually be passed by copy/return. This
      	is an error in case the type is by_reference, and a warning if this is
      	the consequence of a DEC import pragma on the subprogram.
      	(Expand_Call, Freeze_Subprogram): Modified to give support to abstract
      	interface types
      	(Expand_Inlined_Call): Mark temporary generated for the return value as
      	internal, so that no useless scalar normalization is generated for it.
      	(Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
      	null procedure can always be inlined.
      	(Expand_N_Subprogram_Declaration): If this is the declaration of a null
      	procedure, generate an explicit empty body for it.
      
      	* exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
      	Given a type implementing an interface, returns the corresponding
      	access_disp_table value.
      	(Find_Interface_Tag): New subprogram. Given a type implementing an
      	interface, returns the record component containing the tag of the
      	interface.
      	(Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
      	previous ones that return the corresponding tag and access_disp_table
      	entities.
      	(Is_Predefined_Dispatching_Operation): Determines if a subprogram
      	is a predefined primitive operation.
      	(Expand_Subtype_From_Expr): If the expression is a selected component
      	within an initialization procedure, compute its actual subtype, because
      	the component may depend on the discriminants of the enclosing record.
      
      	* i-cpp.ads, i-cpp.adb:
      	This package has been left available for compatibility with previous
      	versions of the frontend. As part of the new layout this is now a
      	dummy package that uses declarations available at a-tags.ads
      
      	* par-ch3.adb (P_Identifier_Declarations): Give an error for use of
      	"constant access" and "aliased [constant] access" when not compiling
      	with -gnat05.
      	Suppress Ada 2005 keyword warning if -gnatwY used
      	(P_Identifier_Declarations): Add support for object declarations with
      	access definitions.
      	(Private_Extension_Declaration): Complete the documentation
      	(P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
      	attribute in case of private extension declaration
      	(P_Type_Declaration): Mark as "abstract" the type declarations
      	corresponding with protected, synchronized and task interfaces
      	(P_Declarative_Items): "not" and "overriding" are overriding indicators
      	for a subprogram or instance declaration.
      
      	* sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
      	instantiation that is a dispatching operation has controlling access
      	parameters that are null excluding.
      	Save and restore Ada_Version_Explicit, for implementation of AI-362
      	(Validate_Derived_Type_Instance): Add check for abstract interface
      	types.
      	(Analyze_Formal_Package): Establish Instantiation source for the copy of
      	the generic that is created to represent the formal package.
      	(Analyze_Package_Instantiation): Instantiate body immediately if the
      	package is a predefined unit that contains inlined subprograms, and
      	we are compiling for a Configurable_Run_Time.
      	(Instantiate_Formal_Subprogram): Indicate that null default subprogram
      	If the program has a null default, generate an empty body for it.
      
      	* sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
      	error message condition, null procedures are correctly detected now.
      	(New_Overloaded_Entity): Bypass trivial overriding indicator check
      	for subprograms in the context of protected types. Instead, the
      	indicator is examined in Sem_Ch9 while analysing the subprogram
      	declaration.
      	(Check_Overriding_Indicator): Check consistency of overriding indicator
      	on subprogram stubs as well.
      	(Analyze_Subprogram_Declaration): Diagnose null procedures declared at
      	the library level.
      	(Analize_Subprogram_Specification): When analyzing a subprogram in which
      	the type of the first formal is a concurrent type, replace this type
      	by the corresponding record type.
      	(Analyze_Subprogram_Body): Undo the previous work.
      	(Analyze_Procedure_Call): If the call has the form Object.Op, the
      	analysis of the prefix ends up analyzing the call itself, after which
      	we are done.
      	(Has_Interface_Formals): New subprogram subsidiary to analyze
      	subprogram_specification that returns true if some non
      	class-wide interface subprogram is found
      	(New_Overloaded_Entity): Modified to give support to abstract
      	interface types
      	(Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
      	access to subprograms must be recursive.
      	(Is_Unchecked_Conversion): Improve the test that recognizes
      	instantiations of Unchecked_Conversion, and allows them in bodies that
      	are to be inlined by the front-end. When the body comes from an
      	instantiation, a reference to Unchecked_Conversion will be an
      	Expanded_Name, even though the body has not been analyzed yet.
      	Replace Is_Overriding and Not_Overriding in subprogram_indication with
      	Must_Override and Must_Not_Override, to better express intent of AI.
      	(Analyze_Subprogram_Body): If an overriding indicator is given, check
      	that it is consistent with the overrinding status of the subprogram
      	at this point.
      	(Analyze_Subprogram_Declaration): Indicate that a null procedure is
      	always inlined.
      	If the subprogram is a null procedure, indicate that it does not need
      	a completion.
      
      	* sem_disp.adb (Check_Controlling_Type): Give support to entities
      	available through limited-with clauses.
      	(Check_Dispatching_Operation): A stub acts like a body, and therefore is
      	allowed as the last primitive of a tagged type if it has no previous
      	spec.
      	(Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
      	to give support to abstract interface types
      
      	* sem_res.adb (Valid_Conversion): Perform an accessibility level check
      	in the case where the target type is an anonymous access type of an
      	object or component (that is, when Is_Local_Anonymous_Access is true).
      	Prevent the special checks for conversions of access discriminants in
      	the case where the discriminant belongs to a nonlimited type, since
      	such discriminants have their accessibility level defined in the same
      	way as a normal component of an anonymous access type.
      	(Resolve_Allocator): When an allocator's designated type is a class-wide
      	type, check that the accessibility level of type given in the
      	allocator's expression or subtype indication is not statically deeper
      	than the level of the allocator's access type.
      	(Check_Discriminant_Use): Diagnose discriminant given by an expanded
      	name in a discriminant constraint of a record component.
      	(Resolve_Explicit_Dereference): Do not check whether the type is
      	incomplete when the dereference is a use of an access discriminant in
      	an initialization procedure.
      	(Resolve_Type_Conversion): Handle conversions to abstract interface
      	types.
      	(Valid_Tagged_Conversion): The conversion of a tagged type to an
      	abstract interface type is always valid.
      	(Valid_Conversion): Modified to give support to abstract interface types
      	(Resolve_Actuals): Enable full error reporting on view conversions
      	between unrelated by_reference array types.
      	The rule for view conversions of arrays with aliased components is
      	weakened in Ada 2005.
      	Call to obsolescent subprogram is now considered to be a violation of
      	pragma Restrictions (No_Obsolescent_Features).
      	(Check_Direct_Boolean_Operator): If the boolean operation has been
      	constant-folded, there is nothing to check.
      	(Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
      	check on possible violation of restriction No_Direct_Boolean_Operators
      	until after expansion of operands, to prevent spurious errors when
      	operation is constant-folded.
      
      	* sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
      	Has_Compatible_Type): Modified to give support to abstract interface
      	types.
      	(Interface_Present_In_Ancestor): New function to theck if some ancestor
      	of a given type implements a given interface
      
      	* sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
      	prefix is a parameterless function that returns an access_to_procedure.
      	(Transform_Object_Operation): Handle properly function calls of the
      	form Obj.Op (X), which prior to analysis appear as indexed components.
      	(Analyze_One_Call): Complete the error notification to help new Ada
      	2005 users.
      	(Analyze_Allocator): For an allocator without an initial value, where
      	the designated type has a constrained partial view, a discriminant
      	constraint is illegal.
      
      From-SVN: r101024
      Gary Dismukes committed
    • a-stzunb.adb, [...] (Realloc_For_Chunk): New implementation which is slightly more efficient. · 0ba5b393
      2005-06-14  Pascal Obry  <obry@adacore.com>
      
      	* a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
      	implementation which is slightly more efficient.
      
      From-SVN: r101023
      Pascal Obry committed
    • ali-util.adb, [...]: Remove references to Force_RM_Elaboration_Order. · 00109226
      2005-06-14  Robert Dewar  <dewar@adacore.com>
      
      	* ali-util.adb, gnatbind.adb: Remove references to
      	Force_RM_Elaboration_Order.
      
      	* switch-b.adb: Remove recognition of -f switch
      
      From-SVN: r101022
      Robert Dewar committed
    • a-except.adb (Exception_Identity): return Null_Id for null occurrence instead of… · a3a95769
      a-except.adb (Exception_Identity): return Null_Id for null occurrence instead of raising CE (AI-241) Add warnings...
      
      2005-06-14  Robert Dewar  <dewar@adacore.com>
      
      	* a-except.adb (Exception_Identity): return Null_Id for null occurrence
      	instead of raising CE (AI-241)
      	Add warnings off to allow categorization violations for AI-362
      
      From-SVN: r101021
      Robert Dewar committed
    • adaint.c (__gnat_to_canonical_file_spec): Check for error returns in call to decc$translate_vms. · 99b97b2e
      2005-06-14  Doug Rupp  <rupp@adacore.com>
      	    Pascal Obry  <obry@adacore.com>
      
      	* adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
      	call to decc$translate_vms.
      	(__gnat_locate_regular_file): Check if the path_val contains quotes. We
      	need to remove those quotes before catenating the filename.
      	(__gnat_locate_exec_on_path): improvements to the Win32 section:
      	* avoid allocating the memory twice for better efficiency;
      	* allocate 32K buffer for environment expansion as suggested by MSDN;
      	* prepend ".;" to the path so that current directory is searched too.
      
      From-SVN: r101020
      Doug Rupp committed
    • mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous implementation. · 1e813ab6
      2005-06-14  Pascal Obry  <obry@adacore.com>
      
      	* mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
      	implementation. This new version generates the proper DllMain routine
      	to initialize the SAL. The DllMain is generated in Ada and compiled
      	before being added as option to the library build command.
      
      From-SVN: r101019
      Pascal Obry committed
    • gnatsym.adb: Adapt to modification of package Symbols... · 65b10832
      2005-06-14  Vincent Celier  <celier@adacore.com>
      
      	* gnatsym.adb: Adapt to modification of package Symbols: procedure
      	Process is now in package Processing.
      
      	* symbols.ads, symbols.adb:
      	(Processing): New package, containing procedure Process
      
      	* symbols-vms-alpha.adb:
      	Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
      
      	* symbols-vms.adb, symbols-processing-vms-alpha.adb,
      	symbols-processing-vms-ia64.adb: New files.
      
      From-SVN: r101018
      Vincent Celier committed
    • s-parame-vms.ads, [...]: Default_Exception_Msg_Max_Length: new parameter. · df0db19f
      2005-06-14  Doug Rupp  <rupp@adacore.com>
      
      	* s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
      	s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
      	Default_Exception_Msg_Max_Length: new parameter.
      
      	* a-except.ads: (Exception_Msg_Max_Length): Set to
      	System.Parameters.Default_Exception_Msg_Max_Length
      	Add pragma Preelaborate_05 for AI-362
      	Add warnings off to allow categorization violations for AI-362
      
      From-SVN: r101017
      Doug Rupp committed
    • system-unixware.ads, [...]: Minor comment update for AI-362 (unit is Pure). · 6d158291
      2005-06-14  Robert Dewar  <dewar@adacore.com>
      
      	* system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
      	system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
      	system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
      	system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
      	system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
      	system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
      	system-os2.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.ads,
      	system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
      	system-linux-hppa.ads, system-vms_64.ads,
      	system-vxworks-alpha.ads: Minor comment update for
      	AI-362 (unit is Pure).
      
      	* a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
      	Add pragma Pure_05 for AI-362
      	Make remaining conversion functions obsolescent in Ada 95
      
      	* impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
      	Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
      	Add entries for a-wichun and a-zchuni
      	Add a-widcha a-zchara for AI-395
      	Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
      
      	* Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
      	Add entries for a-wichun.o and a-zchuni.o
      	Entries for a-widcha.o and a-zchara.o
      	Add entry for a-chacon.o
      
      	* a-ztenau.adb: Add with of Ada.Characters.Conversions
      
      	* a-chacon.ads, a-chacon.adb: New files.
      
      	* a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
      	categorization violations.
      
      	* a-strmap.ads: Add pragma Pure_05 for AI-362
      	* a-strmap.ads: Add note on implicit categorization for AI-362
      
      	* a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
      
      	* par-prag.adb: Dummy entry for pragma Persistent_BSS
      	Set Ada_Version_Explicit, for implementation of AI-362
      	Add processing for pragma Pure_05 and Preelaborate_05
      	Add entry for Assertion_Policy pragma
      
      	* sem.adb: Make sure predefined units are compiled with GNAT_Mode true
      	when needed for proper processing of categorization stuff
      
      	* sem_cat.adb:
      	For several cases, make errors in preealborate units warnings,
      	instead of errors, if GNAT_Mode is set. For AI-362.
      
      	* sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
      	preelaborate unit is now warning if in GNAT mode
      
      	* s-stoele.ads: Document AI-362 for pragma preelaborate
      
      From-SVN: r101016
      Robert Dewar committed
    • a-sytaco.ads, [...] (Suspension_Object): These objects are no longer protected objects. · b497b460
      2005-06-14  Jose Ruiz  <ruiz@adacore.com>
      	    Arnaud Charlet  <charlet@adacore.com>
      
      	* a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
      	longer protected objects. They have been replaced by lower-level
      	suspension objects made up by a mutex and a condition variable (or
      	their equivalent given a particular OS) plus some internal data to
      	reflect the state of the suspension object.
      	(Initialize, Finalize): Add this initialization procedure for
      	Suspension_Object, which is a controlled type.
      	(Finalize): Add the finalization procedure for Suspension_Object,
      	which is a controlled type.
      
      	* a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
      	Ada.Synchronous_Task_Control because there is no longer a need for a
      	VxWorks specific version of this package. Target dependencies
      	has been moved to System.Task_Primitives.Operations.
      
      	* s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
      	longer needed.
      	(InitializeCriticalSection, EnterCriticalSection,
      	LeaveCriticalSection, DeleteCriticalSection): Replace the type
      	pCriticalSection by an anonymous access type so that we avoid problems
      	of accessibility to local objects.
      
      	* s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
      	s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
      	s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
      	s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
      	s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
      	set the environment task mask here.
      	(Current_State): Add this function that returns the state of the
      	suspension object.
      	(Set_False): Add this procedure that sets the state of the suspension
      	object to False.
      	(Set_True): Add this procedure that sets the state of the suspension
      	object to True, releasing the task that was suspended, if any.
      	(Suspend_Until_True): Add this procedure that blocks the calling task
      	until the state of the object is True. Program_Error is raised if
      	another task is already waiting on that suspension object.
      	(Initialize): Add this procedure for initializing the suspension
      	object. It initializes the mutex and the condition variable which are
      	used for synchronization and queuing, and it sets the internal state
      	to False.
      	(Finalize): Add this procedure for finalizing the suspension object,
      	destroying the mutex and the condition variable.
      
      	* s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
      	s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
      	s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
      	s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
      	which provides a low-level abstraction (using operating system
      	primitives) for Ada.Synchronous_Task_Control.
      	This object is made up by a mutex (for ensuring mutual exclusion), a
      	condition variable (for queuing threads until the condition is
      	signaled), a Boolean (State) indicating whether the object is open,
      	and a Boolean (Waiting) reflecting whether there is a task already
      	suspended on this object.
      
      	* s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
      	s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
      	s-intman-vms.ads, s-intman-mingw.adb,
      	(Initialize_Interrupts): Removed, no longer used.
      
      	* s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
      	(Setup_Interrupt_Mask): New procedure.
      
      	* s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
      
      	* s-inmaop.ads (Setup_Interrupt_Mask): New procedure
      
      	* s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
      	this is no longer done in the body of s-taprop
      	(Server_Task): Explicitely test for Pending_Action in case
      	System.Parameters.No_Abort is True.
      
      	* s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
      	is no longer done in the body of s-taprop
      
      From-SVN: r101015
      Jose Ruiz committed
    • a-strhas.ads, [...]: Fix header style (spaces in package name). · 3084fecd
      2005-06-14  Pascal Obry  <obry@adacore.com>
      
      	* a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
      	a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
      	a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
      	package name).
      
      	* a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
      	a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
      	a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
      	a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
      	a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
      	a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
      	a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
      	s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
      	s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
      	s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
      	s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
      	s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
      	s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
      	s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
      	s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
      	s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
      	s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
      	s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
      	s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
      	s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
      	s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
      	s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
      	s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
      	s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
      	s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
      	s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
      	s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
      	s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
      	s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
      	s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
      	a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
      	a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
      	a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
      	a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
      	a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
      	a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
      	a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
      	a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
      	a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
      	a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
      	a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
      	a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
      	a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
      	a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
      	a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
      	a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
      	a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
      	a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
      	a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
      	a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
      	a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
      	a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
      	a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
      	a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
      	a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
      	a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
      	a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
      	dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
      	g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
      	g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
      	g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
      	g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
      	g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
      	gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
      	g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
      	i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
      	s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
      	s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
      	s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
      	s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
      	s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
      	s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
      	s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
      	s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
      	s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
      	s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
      	s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
      	s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
      	s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
      	s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
      	s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
      	s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
      	s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
      	s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
      	s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
      	s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
      	s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
      	s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
      	s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
      	s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
      	s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
      	s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
      	s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
      	s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
      	s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
      	s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
      	s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
      	s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
      	s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
      	s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
      	s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
      	s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
      	s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
      	s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
      	s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
      	s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
      	s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
      	s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
      	s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
      	s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
      	s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
      	s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
      	s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
      	s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
      	s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
      	s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
      	s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
      	s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
      	s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
      	s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
      	s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
      	s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
      	s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
      	a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
      	a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
      	a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
      	a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
      	a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
      	a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
      	a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
      	a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
      	a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
      	"GNU Ada" to GNAT, use proper casing for RUN-TIME.
      
      From-SVN: r101014
      Pascal Obry committed
    • g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb · 06e49707
      2005-06-14  Doug Rupp  <rupp@adacore.com>
      
      	* g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
      
      	* g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
      
      From-SVN: r101013
      Doug Rupp committed
    • s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to exc_unwind... · 30f07d92
      2005-06-14  Olivier Hainque  <hainque@adacore.com>
      	    Eric Botcazou  <ebotcazou@adacore.com>
      
      	* s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
      	exc_unwind, now that we are generating proper .debug_frame output for
      	that target.
      
      	* tracebak.c: Remove the mips-irix section, as we are now using the
      	s-mastop based unwinder again.
      	Under SPARC/Solaris, take into account the stack bias to compute the
      	frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
      	ABI.
      
      From-SVN: r101012
      Olivier Hainque committed
    • rtti.c (get_tinfo_decl): Avoid caching tinfo_descs when it might change. · fe93f42f
      cp:
      	* rtti.c (get_tinfo_decl): Avoid caching tinfo_descs when it might
      	change.
      	(create_pseudo_type_info): First parameter is an int.
      testsuite:
      	* g++.dg/rtti/crash2.C: New.
      
      From-SVN: r101011
      Nathan Sidwell committed
    • configure.ac (USING_ECOS_PLATFORM): Remove and merge into... · 3d5a109a
      2005-06-15  Kelley Cook  <kcook@gcc.gnu.org>
      
      	* configure.ac (USING_ECOS_PLATFORM): Remove and merge into...
      	(USING_POSIX_PLATFORM): ... here.
      	* Makefile.am: Delete USING_ECOS_PLATFORM.
      	* configure, Makefile.in, include/Makefile.in, testsuite/Makefile.in,
      	external/Makefile.in, external/sax/Makefile.in,
      	external/w3c_dom/Makefile.in, gcj/Makefile.in: Regenerate.
      
      From-SVN: r101005
      Kelley Cook committed
    • Daily bump. · 7eaede52
      [[Split portion of a mixed commit.]]
      
      From-SVN: r101002.2
      GCC Administrator committed
  2. 15 Jun, 2005 21 commits
    • Makefile.in (cfg.o): Add new dependencies. · 6580ee77
      
      	* Makefile.in (cfg.o): Add new dependencies.
      	* basic-block.h (reorder_block_def): Kill
      	original/copy/duplicated/copy_number fields.
      	(BB_DUPLICATED): New flag.
      	(initialize_original_copy_tables, free_original_copy_tables,
      	set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New.
      	* cfg.c: Include hashtab.h and alloc-pool.h
      	(bb_original, bb_copy, original_copy_bb_pool): New static vars.
      	(htab_bb_copy_original_entry): New struct.
      	(bb_copy_original_hash, bb_copy_original_eq): New static functions.
      	(initialize_original_copy_tables, free_original_copy_tables,
      	set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New
      	global functions.
      	* cfghooks.c (duplicate_block): Update original/copy handling.
      	* cfglayout.c (fixup_reorder_chain): Likewise.
      	(cfg_layout_initialize): Initialize orignal_copy tables.
      	(cfg_layout_finalize): FInalize original_copy tables.
      	(can_copy_bbs_p): Use BB_DUPLICATED flag.
      	(copy_bbs): Likewise.
      	* cfgloopmanip.c (update-single_exits_after_duplication): Likewise.
      	(duplicate_loop_to_header_edge): Likewise; update handling of
      	copy_number.
      	(loop_version): Likewise.
      	* dominance.c (get_dominated_by_region): Use BB_DUPLICATED_FLAG.
      	* except.c (expand_resx_expr): Check that reg->resume is not set.
      	* loop-unroll.c (unroll_loop_constant_iterations,
      	unroll_loop_runtime_iterations, apply_opt_in_copies): Update
      	copy/original handling.
      	* loop-unwitch.c (unswitch_loop): Likewise.
      	* tree-cfg.c (create_bb): Do not initialize RBI.
      	(disband_implicit_edges): Do not kill RBI.
      	(add_phi_args_after_copy_bb): Use new original/copy mapping.
      	(add_phi_args_after_copy): Use BB_DUPLICATED flag.
      	(tree_duplicate_sese_region): Update original/copy handling.
      	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
      	* tree-ssa-loop-manip.c (copy_phi_node_args): Likewise.
      	* tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Likewise.
      
      From-SVN: r101000
      Jan Hubicka committed
    • re PR libgcj/17536 (wrong ClassLoader for int[]) · f652253b
      	PR libgcj/17536:
      	* testsuite/libjava.lang/pr17536.java: New file.
      	* testsuite/libjava.lang/pr17536.out: New file.
      
      From-SVN: r100999
      Tom Tromey committed
    • parse.y (function_invocation): Reverse parameter list. · aaffb27e
      2005-06-15  James A. Morrison  <phython@gcc.gnu.org>
      
              * parse.y (function_invocation): Reverse parameter list.
              * treetree.c (tree_code_get_expression): Don't reverse parameter list.
      
      From-SVN: r100998
      James A. Morrison committed
    • os_dep.c: Add FreeBSD/PowerPC bits. · 9af9e7fa
      2005-06-15  Andreas Tobler  <a.tobler@schweiz.ch>
      
      	* os_dep.c: Add FreeBSD/PowerPC bits.
      	(GC_SysVGetDataStart): Likewise.
      	* include/private/gcconfig.h: Likewise.
      
      From-SVN: r100997
      Andreas Tobler committed
    • re PR tree-optimization/21923 (Ada compiler fails to build on gcc 4.1) · 2decfada
      2005-06-15  Andrew Pinski  <pinskia@physics.uc.edu>
      
              PR tree-opt/21923
              * tree-ssa.c (tree_ssa_useless_type_conversion_1): Conversions between
              integer types whos ranges are different are not useless.
      
      From-SVN: r100996
      Andrew Pinski committed
    • re PR libgcj/21074 (Trivial bug in the method getHeaderFieldKey() in the file… · 3eee5bf4
      re PR libgcj/21074 (Trivial bug in the method  getHeaderFieldKey() in the file java/net/protocol/http/HTTPURLConnection.java)
      
      2005-06-15  Goffredo Baroncelli  <kreijack@inwind.it>
      
      	PR libgcj/21074:
      	* gnu/java/net/protocol/http/HTTPURLConnection.java
      	(getHeaderFieldKey): Check index.
      
      From-SVN: r100994
      Goffredo Baroncelli committed
    • re PR tree-optimization/22024 (ACATS ICE cxa5a07 cxa5a08 cxg2016 SEGV in… · 14643af3
      re PR tree-optimization/22024 (ACATS ICE cxa5a07 cxa5a08 cxg2016 SEGV in get_rank tree-ssa-reassoc.c:292)
      
      2005-06-15  Andrew Pinski  <pinskia@physics.uc.edu>
      
              PR tree-opt/22024
              * tree-ssa-reassoc.c (init_reassoc): Also give chain decl a distint
              rank.
      
      From-SVN: r100993
      Andrew Pinski committed
    • re PR libgcj/21906 (hang when invoking abstract method) · fbb4c46b
      gcc/java/:
      	PR libgcj/21906:
      	* class.c (make_method_value): Use soft_abstractmethod_node for
      	abstract method.
      	* java-tree.h (soft_abstractmethod_node): New define.
      	(JTI_SOFT_ABSTRACTMETHOD_NODE): New enum constant.
      	* decl.c (java_init_decl_processing): Initialize
      	soft_abstractmethod_node.
      libjava/:
      	PR libgcj/21906:
      	* defineclass.cc (handleMethodsEnd): Set ncode for abstract
      	methods.
      	* include/jvm.h (_Jv_ThrowAbstractMethodError): Declare.
      	* link.cc (_Jv_ThrowAbstractMethodError): Renamed.  No longer
      	static.
      	(append_partial_itable): Use it.
      	(set_vtable_entries): Likewise.
      
      From-SVN: r100992
      Tom Tromey committed
    • SystemClassLoader.java (init): Clear last_was_sep in loop. · 92b5fbc5
      	* gnu/gcj/runtime/SystemClassLoader.java (init): Clear
      	last_was_sep in loop.
      
      From-SVN: r100991
      Tom Tromey committed
    • hashtable: Trivial formatting fixes. · 7ffd2d94
      2005-06-15  Paolo Carlini  <pcarlini@suse.de>
      
      	* include/tr1/hashtable: Trivial formatting fixes.
      	* include/tr1/unordered_map: Likewise.
      	* include/tr1/unordered_set: Likewise.
      
      From-SVN: r100988
      Paolo Carlini committed
    • tree-ssa-structalias.c (dump_solution_for_var): Reformat output. · 63a4ef6f
      
      	* tree-ssa-structalias.c (dump_solution_for_var): Reformat
      	output.
      	(dump_sa_points_to_info): Make extern.
      	(debug_sa_points_to_info): New.
      	* tree-ssa-structalias.h (TREE_SSA_STRUCTALIAS_H): Rename from
      	TREE_ALIAS_COMMON.
      	(dump_sa_points_to_info): Declare.
      	(debug_sa_points_to_info): Declare.
      
      From-SVN: r100987
      Diego Novillo committed
    • Fix for uncaching bug reported by Herman ten Brugge. · e1f4adc9
      2005-06-15  Frank Ch. Eigler  <fche@redhat.com>
      
      	Fix for uncaching bug reported by Herman ten Brugge.
      	* mf-runtime.c (__mf_uncache_object): Search whole cache.
      	* testsuite/libmudflap.c/fail40-frag.c: New test.
      
      From-SVN: r100985
      Frank Ch. Eigler committed
    • c-tree.h (default_function_array_conversion): Declare. · 46bdb9cf
      	* c-tree.h (default_function_array_conversion): Declare.
      	* c-typeck.c (default_function_array_conversion): Export.  Correct
      	comment.
      	(default_conversion): Do not call
      	default_function_array_conversion.  Do not allow FUNCTION_TYPE.
      	(build_function_call): Call default_function_array_conversion on
      	the function.
      	(convert_arguments): Do not call it on the function arguments.
      	(build_unary_op): Do not allow ARRAY_TYPE or FUNCTION_TYPE for
      	TRUTH_NOT_EXPR.  Call default_function_array_conversion for taking
      	address of ARRAY_REF.
      	(build_compound_expr): Do not call
      	default_function_array_conversion.
      	(build_c_cast): Do not call default_function_array_conversion.
      	(convert_for_assignment): Do not call default_conversion.
      	(digest_init): Call default_function_array_conversion to convert
      	string constants and compound literals to pointers, but not
      	otherwise.
      	(output_init_element): Likewise.
      	(build_asm_expr): Do not call default_function_array_conversion.
      	(c_process_expr_stmt): Likewise.
      	(c_objc_common_truthvalue_conversion): Likewise.  Do not allow
      	FUNCTION_TYPE.
      	* c-parser.c (c_parser_expression_conv): New.
      	(c_parser_asm_operands, c_parser_expr_list): Add convert_p
      	argument.  All callers changed.  Call
      	default_function_array_conversion if convert_p.
      	(c_parser_initializer, c_parser_initval): Call
      	default_function_array_conversion except for string constants and
      	compound literals.
      	(c_parser_initelt): Call default_function_array_conversion for
      	ObjC expression received.
      	(c_parser_statement_after_labels): Call c_parser_expression_conv
      	for return and expression statements.
      	(c_parser_paren_condition, c_parser_for_statement,
      	c_parser_conditional_expression): Call c_parser_expression_conv.
      	(c_parser_expr_no_commas, c_parser_conditional_expression,
      	c_parser_binary_expression, c_parser_cast_expression,
      	c_parser_unary_expression): Call
      	default_function_array_conversion.
      
      objc:
      	* objc-act.c (my_build_string_pointer): New.
      	(objc_get_class_reference, get_super_receiver): Call
      	my_build_string_pointer instead of my_build_string when building
      	function arguments.
      
      testsuite:
      	* gcc.dg/noncompile/20040203-3.c: Update expected message.
      
      From-SVN: r100984
      Joseph Myers committed
    • tree-vrp.c (vrp_int_const_binop): Do not handle MAX_EXPR when the result overflows. · 38e19e4c
      
      	* tree-vrp.c (vrp_int_const_binop): Do not handle MAX_EXPR
      	when the result overflows.
      
      From-SVN: r100983
      Diego Novillo committed
    • mips.c (mips_rtx_cost_data): Add cost for 4kc, 4kp, 24k and 24kx. · 352364de
      * config/mips/mips.c (mips_rtx_cost_data): Add cost for 4kc, 4kp,
      24k and 24kx.
      
      From-SVN: r100982
      David Ung committed
    • * doc/invoke.texi (-mips16): Fix typo. · 71cb39e6
      From-SVN: r100981
      Richard Sandiford committed
    • mips16e-extends.c: New test for testing the generation of MIPS16e zeb/zeh, seb/seh instructions. · 18ea791f
      * gcc.target/mips/mips16e-extends.c: New test for testing the
      generation of MIPS16e zeb/zeh, seb/seh instructions.
      
      From-SVN: r100980
      David Ung committed
    • mips.h (GENERATE_MIPS16E): New definition. · 7cc63a88
      * config/mips/mips.h (GENERATE_MIPS16E): New definition.
      * config/mips/mips.md (zero_extend<SHORT:mode><GPR:mode>2):
      Changed expand condition to exclude generating of "and" if
      GENERATE_MIPS16E is true.
      (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): New pattern for
      matching mips16e zeb/zeh.
      (*extend<SHORT:mode><GPR:mode>2_mips16e): New pattern for matching
      mips16e seb/seh.
      (*extend<SHORT:mode><GPR:mode>2): Disable this pattern for
      GENERATE_MIPS16E.
      * doc/invoke.texi (MIPS Options): Add comment to -mips16
      indicating MIPS16e ASE is used if targetting for MIPS32 or MIPS64.
      
      From-SVN: r100979
      David Ung committed
    • re PR tree-optimization/22018 (VRP miscompiles multiply) · 9983270b
      
      	PR 22018
      	* tree-vrp.c (vrp_int_const_binop): New.
      	(extract_range_from_binary_expr): Call it.
      	Unify handling division and multiplication.
      
      testsuite/ChangeLog:
      
      	PR 22018
      	* gcc.dg/tree-ssa/vrp13.c: Add multiplication tests.
      	* gcc.dg/tree-ssa/pr22018.c: New test.
      
      From-SVN: r100978
      Diego Novillo committed
    • typeck.c (build_binary_op): Same. · f6d7e7d8
      	* typeck.c (build_binary_op): Same.
      	* testsuite/g++.dg/conversion/simd3.C: New.
      
      From-SVN: r100977
      Aldy Hernandez committed
    • c-common.h (same_scalar_type_ignoring_signedness): Protoize. · 5bed876a
      	* c-common.h (same_scalar_type_ignoring_signedness): Protoize.
      
      	* c-common.c (same_scalar_type_ignoring_signedness): New.
      
      	* c-typeck.c (build_binary_op): Check compatability of vector
      	types.  Move error report after switch.
      	Do not clobber code[01] on *_DIV_EXPR case.
      
      	* testsuite/gcc.dg/simd-1.c: Update error messages.
      	* testsuite/gcc.dg/simd-1b.c: Re-enable tests.  Update error
      	messages.
      	* testsuite/gcc.dg/simd-2.c: Update error messages.
      	* testsuite/gcc.dg/simd-4.c: New.
      
      From-SVN: r100976
      Aldy Hernandez committed