Commit Graph

65642 Commits

Author SHA1 Message Date
Arnaud Charlet
e05be4b4c7 s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len] fields for foreign threads.
* s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
	fields for foreign threads.

From-SVN: r94823
2005-02-10 14:56:32 +01:00
Arnaud Charlet
e703a483c4 s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
* s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
	Minor reformatting.

From-SVN: r94822
2005-02-10 14:56:20 +01:00
Arnaud Charlet
340b490d0b sem_ch7.adb (Uninstall_Declarations): Exchange full and private views of a private type after handling its private...
* sem_ch7.adb (Uninstall_Declarations): Exchange full and private
	views of a private type after handling its private dependents, to
	maintain proper stack discipline between entry and exit from the
	package.

From-SVN: r94821
2005-02-10 14:56:10 +01:00
Arnaud Charlet
7ffd93121c sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even with expansion disabled.
* sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
	with expansion disabled. The actual subtype is needed among other
	places when the selected component appears in the context of a loop
	bound, and denotes a packed array.
	(Operator_Check): Always use the first subtype in the
	error message, to avoid the appearance of internal base types.
	(Transform_Object_Operation): Copy each actual in full
	to the parameter associations of the constructed call, rather than
	using the shallow copy mechanism of New_Copy_List. This ensures that
	the chaining of named associations is done properly.
	(Complete_Object_Operation): Rewrite node, rather than
	replacing it, so that we can trace back to the original selected
	component.

	* sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
	and calls that use object notation, if the called function is not
	declared  in a withed unit, place the elaboration constraint on the
	unit in the context that makes the function accessible.
	(Check_Elab_Subtype_Declaration): Check whether a subtype declaration
	imposes an elaboration constraint between two packages.

From-SVN: r94820
2005-02-10 14:55:59 +01:00
Arnaud Charlet
a3a0db2eb9 prj-makr.adb (Process_Directory): Put file name in canonical case before matching against the patterns.
* prj-makr.adb (Process_Directory): Put file name in canonical case
	before matching against the patterns.
	If gnatname has been invoked as <prefix>-gnatname
	then invoke the compiler as <prefix>-gcc, not just "gcc".

From-SVN: r94819
2005-02-10 14:55:43 +01:00
Arnaud Charlet
3536d406b5 re PR ada/16592 (Ada tools don't use the newly built shared libraries)
* s-asthan-vms.adb: Removed.

	* s-asthan-vms-alpha.adb: Added.

	* Makefile.in [VMS] (LN,LN_S): Define as cp -p
	Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
	[VMS]: Add translations for g-enblsp.adb.
	(LIBGNAT_SRCS): Add seh_init.c.
	(LIBGNAT_OBJS): Add seh_init.o.

	PR ada/16592

	Link all gnat tools with -static-libgcc, since
	-shared-libgcc is now used by default on some systems (e.g. linux with
	recent binutils).
	Remove references to Makefile.prolog/generic, no longer used.

From-SVN: r94818
2005-02-10 14:55:33 +01:00
Arnaud Charlet
e06a584e59 make.adb (Gnatmake): Do not fail when the main project has no object directory.
* make.adb (Gnatmake): Do not fail when the main project has no object
	directory.

From-SVN: r94817
2005-02-10 14:54:58 +01:00
Arnaud Charlet
5f57ad3179 init.c (__gnat_initialize): Add a new parameter eh which contains the address of the exception registration.
* init.c (__gnat_initialize): Add a new parameter eh which contains the
	address of the exception registration. The Win32 version of this
	routine calls __gnat_install_SEH_handler() to initialize the SEH
	(Structured Exception Handling) handler.
	(__gnat_error_handler) [Win32]: Removed. Not needed as we use
	SEH (Structured Exception Handling) now.
	(__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
	(__gnat_initialize for ppc-vxworks): Adjust comments and the
	preprocessor condition protecting the call to the extra eh setup
	subprogram, which is only available for the ppc target.
	(__gnat_clear_exception_count): replaced reference to
	variable taskIdCurrent by call to taskIdSelf(), cleaner.

	* seh_init.c: New file.

	* Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
	(GNATBIND_OBJS): Idem.

	* misc.c (gnat_parse_file): Update call to __gnat_initialize. This
	routine takes a new parameter (a pointer to the exception registration
	for the SEH (Structured Exception Handling) support.

	* raise.h: (__gnat_install_SEH_handler): New prototype.
	Update copyright notice.

	* s-tassta.adb (Task_Wrapper): Declare the exception registration
	record and initialize it by calling __gnat_install_SEH_handler.

From-SVN: r94816
2005-02-10 14:54:45 +01:00
Arnaud Charlet
16e845ef3d gnatbl.c: [VMS] (_POSIX_EXIT): Define.
* gnatbl.c: [VMS] (_POSIX_EXIT): Define.
	[VMS] (#define exit hack): Remove.

From-SVN: r94815
2005-02-10 14:54:28 +01:00
Arnaud Charlet
8aceda6473 exp_ch4.adb (Expand_Composite_Equality): If a component is an unchecked union with no inferable discriminants...
* exp_ch4.adb (Expand_Composite_Equality): If a component is an
	unchecked union with no inferable discriminants, return a
	Raise_Program_Error node, rather than inserting it at the point the
	type is frozen.
	(Expand_Record_Equality, Component_Equality): Handle properly the case
	where some subcomponent is an unchecked union whose generated equality
	code raises program error.

From-SVN: r94814
2005-02-10 14:54:15 +01:00
Arnaud Charlet
3cf3e5c6a2 exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a component of an array of arrays in an...
* exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
	component of an array of arrays in an assignment context, and the
	aggregate has component associations that require sliding on
	assignment, force reanalysis of the aggregate to generate a temporary
	before the assignment.
	(Must_Slide): Make global to the package, for use in Gen_Assign.

From-SVN: r94813
2005-02-10 14:53:58 +01:00
Eric Botcazou
8afc118e11 Fix for c330001 - PR ada/19386
2005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
	    Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	Fix for c330001 - PR ada/19386

	* decl.c:
	(gnat_to_gnu_field): Do not necessarily invoke make_packable_type
	on the field if Pragma Component_Alignment (Storage_Unit).
	(gnat_to_gnu_entity, case object): Do not treat a renaming that has
	side-effects as if it were a constant; also make SAVE_EXPR to protect
	side-effects.
	(gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
	UNION_TYPE.
	(make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
	(components_to_record): Test it.
	Fix improper usage of REFERENCE_CLASS_P.

	* utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
	RECORD_TYPE.

	* utils2.c: Minor reformatting.

	* utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
	handle other cases like RECORD_TYPE.

	* utils.c (gnat_pushdecl): Set TREE_NO_WARNING.

From-SVN: r94812
2005-02-10 14:53:21 +01:00
Doug Rupp
cc892b2c91 adaint.c, [...] (to_ptr32): New function.
2005-02-09  Doug Rupp  <rupp@adacore.com>
	    Thomas Quinot  <quinot@adacore.com>

	* adaint.c, adaint.h
	[VMS] (to_ptr32): New function.
	(MAYBE_TO_PTR32): New macro.
	(__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
	for pointer size.
	[VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
	[VMS] (#define fork()): Remove since unneccessary.
	(__gnat_set_close_on_exec): New routine to support
	GNAT.OS_Lib.Set_Close_On_Exec.

	* g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
	the parent side as close-on-exec so that they are not inherited by the
	child.

	* g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
	set or clear the FD_CLOEXEC flag on a file descriptor.

From-SVN: r94811
2005-02-10 14:51:58 +01:00
Robert Dewar
4e45e7a930 a-strunb.ads, [...]: Add missing pragma Ada_05 statements Fix name of Set routine
2005-02-09  Robert Dewar  <dewar@adacore.com>

        * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
        Fix name of Set routine

	* a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
	fixed packages.

	* a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
	a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
	fixed packages

	* a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
	forms of Get_Line subprograms for AI-301.

	* a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
	a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
	a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
	a-stwima.ads: Minor reformatting.

From-SVN: r94810
2005-02-10 14:51:40 +01:00
Robert Dewar
82c8073471 g-zstspl.ads: New file.
2005-02-09  Robert Dewar  <dewar@adacore.com>
	    Thomas Quinot  <quinot@adacore.com>
	    Javier Miranda  <miranda@adacore.com>
	    Pascal Obry  <obry@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>
	    Doug Rupp  <rupp@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>
	    Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* g-zstspl.ads: New file.

	* a-chahan.ads, a-chahan.adb: Add declarations from AI-285

	* a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
	Ada 95 mode
	Add definition of Wide_Wide_Space for AI-285

	* impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
	interface (to support Ada 95 and Ada 2005 units).
	Add Unbounded_IO files
	Add entries for Wide_Wide packages for AI-285
	Add list of containers packages to Ada 2005 unit list

	* a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
	support new Unbounded_IO package cleanly.

	* g-utf_32.ads, g-utf_32.adb: New files.

	* Makefile.rtl: Add entry for g-utf_32
	Add new files for Unbounded_IO
	Adjust make file for new AI-285 wide wide packages
	Add AI-302 containers to the run time.

	* a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
	a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
	subprograms for AI-301.

	* a-stwiun.adb, a-stwiun.ads: Minor reformatting.

	* a-stunau.ads: Minor comment correction

	* rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
	etc.
	Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
	(Check_RPC): Update to match changes in expanded code.
	Clean up unused entity.

	* exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
	was not taken into account.
	This includes proper initialization with Normalize_Scalars.
	(Get_Simple_Init_Val): Major rewrite for initialize scalars and
	normalize scalars cases (particularly the latter) to do a better job
	of finding invalid representations.

	* s-scaval.ads, s-scaval.adb: Add values for zero invalid values

	* s-strops.ads, s-strops.adb: Remove string normalize routines, never
	used

	* exp_dist.adb: Add support for wide wide character type
	(Expand_Receiving_Stubs_Bodies): For a package declaration that has a
	private part, generate stub bodies at the end of the private part,
	not the visible part.
	(Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
	PolyORB support.
	(Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
	generic wrapper to execute final processing after completing the
	expansion of the RPC receiver for an RACW.

	* snames.h, snames.ads, snames.adb: Add definitions for wide_wide
	packages and attributes.
	(Preset_Names): Addition of the new reserved words of Ada 2005,
	that is interface, overriding and synchronized.
	(Get_Pragma_Id): Give support to the use of the new reserved word
	"interface" as a pragma name.
	(Is_Pragma_Name): Give support to the use of the new reserved word
	"interface" as a pragma name.
	(Preset_Names): Add stream_size string for the Stream_Size Ada2005
	attribute implementation.

	* exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
	checks to entities that are output parameters of Asm operations.
	Handle the Stream_Size attribute.
	Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width

	* exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type

	* sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
	for second parameter being 0.0.
	Add support for wide wide character type.
	(Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.

	* s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
	s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
	s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
	s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
	for wide wide character cases.

	* cstand.adb: Create entities for Wide_Wide_Character and
	Wide_Wide_String.

	* i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
	accordance with AI-258.
	Add new declarations for 16/32 bit C character types (Part of AI285)

	* einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
	(Obsolescent_Warning): New field
	(Rep_Clause): New local subprogram used to share code. Returns the rep
	clause for which the name is given in parameter.
	(Has_Stream_Size_Clause): New routine.
	(Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
	(Address_Clause): Implementation is now using Rep_Clause.
	(Alignment_Clause): Idem.
	(Size_Clause): Idem.

	* lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
	entity in non-Ada 2005 mode and generate warning.

	* par-prag.adb: Add handling of one argument form for pragma Ada_05.
	(Prag): Code cleanup. Remove old gnat pragma "overriding"

	* sem_prag.adb: Add handling of one argument form for pragma Ada_05
	(Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
	on the named unit if the pragma is not in the current compilation unit,
	so that elaboration calls in the current unit can set up an elaboration
	dependency on the named unit, as needed.
	(Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
	subprogram as well as for subprograms declared within a package.
	(Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
	pragma overriding.

	* krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
	to z) to avoid some instances of duplication for Wide_Wide packages.

	* namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
	characters.

	* scn.adb: Char_Literal_Value field is now a Uint

	* scng.adb: Significant rewrite to handle new Ada 2005 features
	allowing wide and wide wide characters in program text, e.g. for
	identifiers, as described in AI-285.
	(Set_Reserved): New procedure, makes setting up keywords cleaner.
	(Initialize_Scanner): Register the new reserved words of Ada 2005.
	(Scan): Give support to the new reserved words.

	* par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
	warning notifying that interface, overriding, and synchronized are
	new reserved words.
	(P_Pragma): Allow the use of the new reserved word "interface" as
	a pragma name.

	* gnatls.adb, gnatbind.adb,
	ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
	identifiers named "interface" to "SAL_Interface".

	* bindgen.adb (Gen_Main_Ada): Add support for the new SEH
	(Structured Exception handling).
	(Gen_Main_C): Idem.

	* bindgen.adb:
	(Gen_Main_Ada): Set the default exit code if specified.
	(Gen_Main_C): Likewise.
	Part of *DC20-006.
	(Gen_Output_File_C): Remove redundant output of gnat_exit_status.
	Code cleanup. Rename identifiers named "interface" to "SAL_Interface"

	* switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
	new -Xnnn switch.

	* mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
	has a collision with the new Ada 2005 "interface" reserved word.

	* par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
	generate a warning notifying that interface, overriding, and
	synchronized are new reserved words.

	* scans.ads (Token_Type): Addition of the tokens corresponding to the
	new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
	and Tok_Synchronized.

	* sem_res.adb (Resolve_Actuals): Change error messages to refer to
	"dispatching" rather than "primitive" operations, since dispatching
	calls are now allowed to abstract formal subprograms (which are not
	primitive).
	Char_Literal_Value field is now a Uint
	(Resolve_Slice): If the prefix is an access to an unconstrained array,
	compute the actual subtype of the designated object to impose the proper
	index constraints.
	(Resolve_Selected_Component): Do not insert an access check if the
	prefix is an access type: such a node is expanded into an explicit
	dereference, on which the access check is performed anyway. Removes
	expensive duplicate checks.
	(Resolve_Call): Use new flag Is_Obsolescent and field
	Obsolescent_Warning so that pragma Obsolescent works on library
	subprograms.
	Add support for wide wide character type
	(Resolve_Allocator): Replace the error message on wrong null-exclusion
	value by a warning message.
	(Resolve_Type_Conversion): If the mixed-mode expression is interpreted
	as fixed-point, and one of the operands is non-static and universal, it
	can only be an illegal exponentiation operation, in which case there is
	no real value to retrieve.

	* exp_strm.adb: Add support for wide wide character type
	(Build_Elementary_Input_Call): Compute the size of the stream element by
	querying the rep chain to find the Stream_Attribute attribute value.
	(Build_Elementary_Write_Call): Ditto.

	* sem_aggr.adb: Char_Literal_Value field is now a Uint
	Add support for wide wide character type
	Replace the error messages on wrong null-exclusion value by warnings
	as described in Ada 2005.
	(Resolve_Extension_Aggregate): Document the fact that the error
	message on class-wide expressions in extensions aggregates.

	* sem_case.adb: Add support for wide wide character type

	* sem_ch13.adb: Add support for wide wide character type
	(Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.

	* sem_ch3.adb: Add support for wide wide character type
	(Process_Subtype): If constraint is illegal for the type, set Ekind of
	now-useless Itype, to prevent cascaded errors on a compiler built
	without -gnatp.

	* sem_ch8.adb: Add with and use of Sem_Disp.
	(Analyze_Subprogram_Renaming): Replace unclean uses of
	Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
	of Corresponding_Spec to Empty).
	(Attribute_Renaming): Replace use of Corresponding_Spec with
	Corresponding_ Formal_Spec and simplify condition.
	(Use_One_Package): Check that scope of homonym of identifier is defined,
	before checking whether it is a wrapper package.
	Add support for wide wide character type

	* sem_eval.adb: Add support for wide wide character type.
	(Eval_Arithmetic_Op): Check for compile time known signed integer
	overflow in the non-static case.
	(Subtypes_Statically_Match): A formal scalar type and its base type do
	not statically match.

	* sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
	"not in" for test of N_Formal_Subprogram_Declaration (which is now a
	subtype).
	(Unit_Declaration_Node): Ditto.
	(Is_Variable_Prefix):  For the case of an indexed component whose prefix
	has a packed array type, the prefix has been rewritten into a type
	conversion. Determine variable-ness from the converted expression.
	Handle wide wide character cases.

	* stand.ads: Add types Wide_Wide_Character and Wide_Wide_String

	* stringt.ads, stringt.adb: Handle full UTF-32 range.
	Remove ["0A"] from comment, since it can look like a line terminator.
	Currently we don't permit this, but this is under discussion by the
	ARG, and it is easy enough to use a different example.

	* s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
	handling UTF-32 encoding for wide wide character.
	Implement new brackets coding ["hhhhhhhh"]
	Add UTF-8 encodings for full UTF-32 range

	* ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size

	* types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
	bit range Add full UTF-32 support.
	(RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
	notify that constraint error will be raised at run-time
	because a null value is assigned to a null-excluding object.
	Remove some obsolete declarations and make Char_Code
	unsigned.

	* a-except.adb (Rcheck_30): New subprogram. Addition of the message
	corresponding to CE_Null_Not_Allowed, and adjust the output of all the
	Rcheck subprograms.

	* checks.adb (Check_Null_Not_Allowed): Replace the error message on
	wrong null-exclusion value by a warning message.
	(Enable_Range_Check): Do range check if the prefix is an
	explicit dereference whose designated object is an unconstrained array.
	Current algorithm for removing duplicate checks is over-eager in this
	case.

	* sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
	null-exclusion value by a warning message

	* atree.h, atree.ads, atree.adb: Remove Char_Code field support
	completely. Add support for Uint2 field

	sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
	exp_prag.adb: Char_Literal_Value field is now a Uint.

	* exp_util.adb (Insert_Actions): Replace
	N_Formal_Subprogram_Declaration by
	N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
	Char_Literal_Value field is now a Uint.

	* sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
	defined for subprogram renaming declarations. When set, the field
	indicates the defining entity of a corresponding formal subprogram
	when the renaming corresponds to a formal subprogram association in an
	instantiation.
	(Set_Corresponding_Formal_Spec): New procedure to return
	Corresponding_Formal_Spec field.
	Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
	(which is now a subtype).
	Char_Literal_Value field is now a Uint

	* exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
	pointer to the base of the dispatch table.
	Minor changes to comments.
	(Controlling_Type): New function for determining the tagged type
	associated with a tagged primitive subprogram.
	(Expand_Dispatching_Call): Add support for a controlling actual that is
	directly a value of type Ada.Tag rather than a tagged object.

	* i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
	describing the new layout.
	(Dispatch_Table): The expander computes the actual array size, allocates
	the Dispatch_Table record accordingly, and generates code that displaces
	the base of the record after the Typeinfo_Ptr component. The access to
	these components is done by means of local functions.
	(Offset_To_Top): New function.
	(Typeinfo_Ptr): New function.
	(Get_TSD): Modified to access the new position of the TSD.
	(Set_TSD): Modified to save the TSD in its new position.

	* par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
	case of formal abstract subprograms. Add check and message for -gnat05.
	Update comments.

	* sem_ch12.adb: Add with and use for Sem_Disp.
	(Analyze_Associations): Minor change from "=" to "in" for use of
	N_Formal_Subtype_Declaration (which is now a subtype).
	(Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
	N_Formal_Subtype_Declaration (which is now a subtype).
	(Analyze_Formal_Subprogram): Add handling for
	N_Formal_Abstract_Subprogram, marking the formal as abstract and
	dispatching, setting the controlling status of the formal parameters
	and result, and issuing an error if there is no controlling type for
	the formal subprogram.
	(Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
	which is an unclean use of that field, we set the new field
	Corresponding_Formal_Spec to make the formal subprogram available to
	processing in Analyze_Subprogram_Declaration.
	(Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
	Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
	Constrained, so that it is is does not statically match its anonymous
	base type.

	* sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
	abstract formal subprograms in error check for functions returning
	abstract types. Set scope of new designator for
	a parameterless subprogram, so that it is available when checking the
	body for nested subprograms, before full analysis of said body.
	(Analyze_Subprogram_Body): Warn on inlining bodies with nested
	subprogram only if inner one comes from source.
	(Analyze_Function_Call): If the call is given in object notation, the
	analysis of the name rewrites the node and analyzes it with the proper
	argument list. After analyzing the name, if the call has been rewritten
	and the result type is set, no further analysis is needed.
	(Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
	mark in function specification, in a context where the formals are
	visible and hide outer homographs.

	* sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
	as the tagged type for the cases of abstract formal subprograms and
	renamings of those.  Clean up spec comments.
	(Check_Dispatching_Context): Add error message to indicate "abstract
	procedure", covering the case of a call to a formal abstract procedure
	that has statically tagged operands.
	(Check_Dispatching_Call): Check for the case of an actual given by
	a tag-indeterminate function call whose type is an ancestor of the
	containing call's associated tagged type. This situation can occur
	for inherited primitives with function defaults. In this case we
	use the tagged type's tag directly as the controlling argument for
	the calls.
	(Expand_Call): Name change on call to Expand_Dispatch_Call.

	* sprint.adb (Sprint_Node_Actual): Split
	N_Formal_Subprogram_Declaration into two alternatives for the new
	cases N_Formal_Abstract_Subprogram_Declaration and
	N_Formal_Concrete_Subprogram_Declaration.
	Char_Literal_Value field is now a Uint.

	* trans.c: Get rid of junk Uint2 reference.
	Char_Literal_Value field is now a Uint.
	(gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
	(gigi): Correct third arg to gimplify_body.

	* ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
	(TYPE_LANG_FLAG_0): Check for record or union.

	* treepr.adb: Char_Literal_Value field is now a Uint

	* uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
	UI_From_CC.

	* widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
	Add full UTF-32 support
	Char_Code is now 32 bits

	* sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
	wide character UTF_32 line terminators.
	Initialize Main_Source_File to avoid error when no main
	source is loaded.

	* errout.adb (Finalize): Do not check Num_SRef_Pragmas
	(Main_Source_File) when no main source has been loaded, to avoid
	potential crash.

From-SVN: r94809
2005-02-10 14:50:48 +01:00
Doug Rupp
125d500f84 s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
2005-02-09  Doug Rupp  <rupp@adacore.com>

	* s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.

From-SVN: r94808
2005-02-10 14:49:28 +01:00
Doug Rupp
70ad376e2f gnatchop.adb (dup, [...]): Reference via System.CRTL.
2005-02-09  Doug Rupp  <rupp@adacore.com>

	* gnatchop.adb (dup, dup2),
	g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.

	* gnatlbr.adb (mkdir),
	mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.

	* s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.

From-SVN: r94807
2005-02-10 14:49:15 +01:00
Doug Rupp
edc7394cad g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
2005-02-09  Doug Rupp  <rupp@adacore.com>

	* g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
	* g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.

From-SVN: r94806
2005-02-10 14:48:50 +01:00
Steven Bosscher
0d3e9f3569 re PR preprocessor/19309 (Wrong documentation of predefined __GNUC__ with cpp invocation)
PR documentation/19309
	* doc/cpp.texi: The __GNUC__ and related predefined macros
	are also defined for the "standalone" cpp.
	Some non-GCC compilers may also define __GNUC__.

From-SVN: r94805
2005-02-10 13:14:02 +00:00
Jakub Jelinek
ccf7f88061 re PR c/19342 (ICE in common_type, at c-typeck.c:490)
PR c/19342
	* c-typeck.c (common_type): New routine.  Old common_type renamed
	to...
	(c_common_type): ...this.
	(build_conditional_expr, build_binary_op): Use c_common_type instead
	of common_type.

	* gcc.c-torture/execute/20050119-1.c: New test.

From-SVN: r94803
2005-02-10 13:18:52 +01:00
Steven Bosscher
b49900cc93 * doc/md.texi: Replace @samp{length} with @code{length}.
From-SVN: r94800
2005-02-10 08:38:23 +00:00
Mark Mitchell
6e5bdc64c7 re PR c++/19811 (g++ 4.0: ICE on vector delete of undefined class)
PR c++/19811
	* call.c (build_op_delete_call): Check COMPLETE_TYPE_P before
	attempting name lookup.

	PR c++/19811
	* g++.dg/init/delete1.C: New test.

From-SVN: r94799
2005-02-10 07:55:04 +00:00
Bryce McKinlay
b2919b93c6 xfails: Updated to reflect current state of mauve and libjava.
2005-02-10  Bryce McKinlay  <mckinlay@redhat.com>

	* testsuite/libjava.mauve/xfails: Updated to reflect current state
	of mauve and libjava.

From-SVN: r94798
2005-02-10 05:54:07 +00:00
Mark Mitchell
e3754f9c23 * parser.c (cp_parser_unqualified_id): Initialize type_decl.
From-SVN: r94795
2005-02-10 04:39:41 +00:00
Tom Tromey
cbe24267f9 Connection.java (getJarFile): Open jar file with OPEN_DELETE.
* gnu/java/net/protocol/jar/Connection.java (getJarFile): Open
	jar file with OPEN_DELETE.
	* java/util/zip/ZipFile.java (ZipFile): Call deleteOnExit when
	OPEN_DELETE is used.

From-SVN: r94793
2005-02-10 02:43:45 +00:00
Tom Tromey
082e25bfb0 InflaterInputStream.java (markSupported): Override.
* java/util/zip/InflaterInputStream.java (markSupported):
	Override.
	(mark, reset): Likewise.

From-SVN: r94792
2005-02-10 01:39:53 +00:00
Andrew Pinski
5cb0baadb8 re PR c++/18470 (array bound rejected as non-constant in template)
2005-02-09  Andrew Pinski  <pinskia@physics.uc.edu>

        PR c++/18470
        * g++.dg/template/static12.C: New test.

From-SVN: r94789
2005-02-09 17:05:31 -08:00
Mark Mitchell
88e95ee385 re PR c++/19787 (Internal compiler error with ambiguous conversion functions)
PR c++/19787
	* call.c (initialize_reference): Robustify.

	PR ++/19732
	* decl.c (grokdeclarator): Check for invalid use of destructor
	names.

	PR c++/19762
	* parser.c (cp_parser_unqualified_id): Avoid creating destructor
	names with invalid types.

	PR c++/19826
	* parser.c (cp_parser_direct_declarator): Allow type-dependent
	expressions as array bounds.

	PR c++/19739
	* parser.c (cp_parser_attributes_list): Allow empty lists.

	PR c++/19787
	* g++.dg/conversion/ambig1.C: New test.

	PR c++/19739
	* g++.dg/ext/attrib19.C: New test.

	PR c++/19732
	* g++.dg/parse/dtor5.C: New test.

	PR c++/19762
	* g++.dg/template/dtor3.C: New test.

	PR c++/19826
	* g++.dg/template/static11.C: New test.
	* g++.dg/template/crash2.C: Remove dg-error marker.

From-SVN: r94788
2005-02-10 00:34:46 +00:00
Zdenek Dvorak
ca4c316991 re PR tree-optimization/18687 (>200% compile time regression compared to gcc-3.4)
PR tree-optimization/18687
	* tree-flow.h (find_loop_niter): Declare.
	* tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
	Try using scev even for loops with more than one exit.
	* tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
	(struct ivopts_data): Added niters field.
	(struct nfe_cache_elt): New.
	(nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
	functions.
	(tree_ssa_iv_optimize_init): Initialize niters cache.
	(determine_number_of_iterations): Removed.
	(find_induction_variables): Do not call determine_number_of_iterations.
	Access niters for single exit through niter_for_single_dom_exit.
	(add_iv_outer_candidates): Access niters for single exit through
	niter_for_single_dom_exit.
	(may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
	number_of_iterations_cond.
	(iv_period): New function.
	(determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
	(may_replace_final_value): Take data argument.  Use
	niter_for_single_dom_exit.
	(determine_use_iv_cost_outer): Pass data to may_replace_final_value.
	(rewrite_use_compare): Pass data to may_eliminate_iv.
	(rewrite_use_outer): Pass data to may_replace_final_value.
	(free_loop_data): Clean up the niters cache.
	(tree_ssa_iv_optimize_finalize): Free the niters cache.
	(tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
	* tree-ssa-loop-niter.c (find_loop_niter): New function.
	(find_loop_niter_by_eval): Use tree_int_cst_lt.
	(num_ending_zeros): Moved to tree.c.
	* tree.h (num_ending_zeros): Declare.
	* tree.c (num_ending_zeros): Moved from tree.c.

From-SVN: r94787
2005-02-10 00:32:47 +00:00
Janis Johnson
1bc83fd3bc * testsuite/ext/array_allocator/2.cc: XFAIL for powerpc*-*-linux*.
From-SVN: r94786
2005-02-10 00:23:49 +00:00
Richard Henderson
c6a912da40 builtins.c (DEF_BUILTIN): Add COND argument.
* builtins.c (DEF_BUILTIN): Add COND argument.
        * tree.h (DEF_BUILTIN): Likewise.
        * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
        DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
        match.
        (DEF_BUILTIN_STUB): New.
        (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
        BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
        BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
        * c-common.c (DEF_BUILTIN): Add COND argument.
        * tree.c (local_define_builtin): New.
        (build_common_builtin_nodes): New.
ada/
        * utils.c (gnat_define_builtin): Remove.
        (gnat_install_builtins): Use build_common_builtin_nodes.
fortran/
        * f95-lang.c (gfc_init_builtin_functions): Call
        build_common_builtin_nodes; do not define any functions handled
        by it.
java/
        * builtins.c (initialize_builtins): Call build_common_builtin_nodes.
        * decl.c (java_init_decl_processing): Initialize const_ptr_type_node.
treelang/
        * treetree.c (treelang_init_decl_processing): Call
        build_common_builtin_nodes.

From-SVN: r94785
2005-02-09 16:22:25 -08:00
GCC Administrator
af97771992 Daily bump.
From-SVN: r94783
2005-02-10 00:17:28 +00:00
Janis Johnson
5b00de71cb re PR testsuite/18491 (testsuite failure: WARNING: g++.old-deja/g++.mike/p10769a.C compilation failed to produce executable)
PR C++/18491
	* g++.old-deja/g++.mike/p10769a.C: Remove.

From-SVN: r94780
2005-02-09 23:35:18 +00:00
Roger Sayle
e3bb43c0fe fold-const.c (fold_strip_sign_ops): New function to simplify a floating point expression ignoring the sign of the...
* fold-const.c (fold_strip_sign_ops): New function to simplify a
	floating point expression ignoring the sign of the result.
	(fold) <ABS_EXPR>: Use it to simplify fabs(x).
	(fold) <MULT_EXPR>: Use it to simplify x*x.
	* tree.h (fold_strip_sign_ops): Prototype here.
	* builtins.c (fold_builtin_copysign): Take an additional FNDECL
	argument.  Use fold_strip_sign_ops to simplify the first argument.
	(fold_builtin_pow):  Use fold_strip_sign_ops to simplify the
	first argument when the second argument is an even integer
	constant, but only with -funsafe_math_optimizations.
	(fold_builtin_1): Update call to fold_builtin_copysign.

	* gcc.dg/builtins-48.c: New test case.
	* gcc.dg/builtins-49.c: New test case.
	* gcc.dg/builtins-50.c: New test case.
	* gcc.dg/builtins-51.c: New test case.

From-SVN: r94779
2005-02-09 21:56:35 +00:00
Ian Lance Taylor
08c2481a79 re PR middle-end/19583 (Incorrect diagnostic: control may reach end of non-void function '...' being inlined)
PR middle-end/19583
	* g++.dg/warn/Wreturn-type-3.C: New test.

From-SVN: r94778
2005-02-09 21:40:35 +00:00
Ian Lance Taylor
5eefcf2f00 re PR middle-end/19583 (Incorrect diagnostic: control may reach end of non-void function '...' being inlined)
PR middle-end/19583
	* gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
	just check whether EH_FILTER_FAILURE falls through.

From-SVN: r94777
2005-02-09 21:40:00 +00:00
Hans Boehm
328d1d4c1c allchblk.c (GC_allochblk_nth): Dont overlook available space if GC disabled...
* allchblk.c (GC_allochblk_nth): Dont overlook available space if
	  GC disabled, correctly convert GC_finalizer_mem_freed to byte,
  	  total_size to words.
  	* dyn_load.c (win32 GC_register_dynamic_libraries): Consider only
	  MEM_IMAGE regions.
  	* mach_dep.c (GC_with_callee_saves_pushed): separate into new function,
	  and indent appropriately.
  	* mark_rts.c (GC_approx_sp): Access stack.
	* pthread_stop_world.c: (GC_suspend_handler): Explicitly push
	  callee-saves registers when appropriate.
  	  (GC_stop_world): Handle EINTR from sem_wait (sync with Mono GC).

From-SVN: r94776
2005-02-09 21:33:02 +00:00
Andreas Krebbel
dab80c81c6 haifa-sched.c (schedule_block): Make queued sched group insns return to ready list in the next turn.
2005-02-09  Andreas Krebbel  <krebbel1@de.ibm.com>

	* gcc/haifa-sched.c (schedule_block): Make queued sched group
	insns return to ready list in the next turn.

From-SVN: r94775
2005-02-09 21:29:22 +00:00
Richard Guenther
17684d4629 re PR middle-end/19402 (__builtin_powi? still missing)
2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>

	PR middle-end/19402

	* builtins.def: New __builtin_powi[lf].
	* builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
	(expand_builtin_powi): New function.
	(expand_builtin): Dispatch to expand_builtin_powi.
	* libgcc2.h: Add prototypes for __builtin_powi[lf].
	* libgcc2.c: Add __builtin_powi[lf] implementation.
	* mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
	* optabs.h: Add powi_optab.
	* optabs.c (init_optabs): Initialize powi_optab.
	* doc/extend.texi: Document __builtin_powi[lf].

	* gcc.dg/pr19402-1.c: New testcase.
	* gcc.dg/pr19402-2.c: likewise.

From-SVN: r94774
2005-02-09 20:58:13 +00:00
Dorit Naishlos
8ca3515fbe tree-vectorizer.c (vect_set_dump_settings): Check that dump_file exists.
* tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
        exists.

From-SVN: r94768
2005-02-09 19:21:07 +00:00
Richard Guenther
0c6c135bb3 fold-const.c (try_move_mult_to_index): Remove redundant type argument.
2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>

	* fold-const.c (try_move_mult_to_index): Remove redundant
	type argument.  Create ADDR_EXPR with correct type.
	(fold): Update callers of try_move_mult_to_index.  Convert
	result to the appropriate type.

	* g++.dg/tree-ssa/tmmti.C: New testcase.

From-SVN: r94767
2005-02-09 18:15:40 +00:00
Roger Sayle
8f2bf9f18d re PR target/19597 (avr-gcc 4.0, multiplication by constant, very long code)
PR target/19597
	* config/avr/avr.c (default_rtx_costs): Delete.
	(avr_operand_rtx_cost): New function.
	(avr_rtx_costs): Completely rewrite.

From-SVN: r94766
2005-02-09 14:43:28 +00:00
Joseph Myers
3ee79d96d2 * g++.dg/rtti/tinfo1.C: Allow newline after assembler label.
From-SVN: r94765
2005-02-09 11:25:20 +00:00
Arnaud Charlet
4c2d6a700c a-rbtgso.adb, [...]: New files.
* a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
	a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
	a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
	a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
	a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
	a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
	a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
	a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
	a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
	a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
	a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
	a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
	a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
	a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
	a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
	a-stwiha.adb, a-strhas.ads, a-strhas.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-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
	a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
	a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
	a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
	a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
	a-szunha.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.adb, a-ztcstr.ads, a-ztdeau.adb,
	a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
	a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
	a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
	a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
	a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
	a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
	a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
	a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
	library.

From-SVN: r94764
2005-02-09 12:14:42 +01:00
Tom Tromey
e99e6d711d URI.java (AUTHORITY_REGEXP): Handle case where user name or port is missing.
* java/net/URI.java (AUTHORITY_REGEXP): Handle case where user
	name or port is missing.
	(AUTHORITY_USERINFO_GROUP, AUTHORITY_HOST_GROUP,
	AUTHORITY_PORT_GROUP): Updated.

From-SVN: r94760
2005-02-09 02:56:03 +00:00
Mark Mitchell
9f4faeaee1 re PR c++/19733 (ICE on invalid destructor call)
PR c++/19733
	* class.c (add_method): Don't set TYPE_HAS_DESTRUCTOR.
	(check_bases): Give warnings about a base class with a
	non-virtual destructor, even if it is implicit.
	(finish_struct_bits): Don't copy TYPE_HAS_DESTRUCTOR.
	(maybe_warn_about_overly_private_class): Don't use
	TYPE_HAS_DESTRUCTOR.
	(finish_struct_methods): Don't set TYPE_HAS_DESTRUCTOR.
	(check_for_override): Give it external linkage.
	(add_implicitly_declared_members): Generate destructors lazily.
	(check_field_decls): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not
	TYPE_HAS_DESTRUCTOR.
	(check_bases_and_members): Call check_methods before
	check_field_decls.
	(check_bases_and_members): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not
	TYPE_HAS_DESTRUCTOR.
	(finish_struct_1): Do not use TYPE_HAS_DESTRUCTOR.
	* cp-tree.def (PSEUDO_DTOR_EXPR): Document.
	* cp-tree.h (TYPE_HAS_DESTRUCTOR): Remove.
	(lang_type_class): Add lazy_destructor.
	(CLASSTYPE_LAZY_DESTRUCTOR): New macro.
	(CLASSTYPE_DESTRUCTORS): Robustify.
	(TYPE_HAS_DESTRUCTOR): Remove.
	(check_for_override): Declare.
	(build_vbase_delete): Remove.
	* cvt.c (convert_to_void): Issue errors about pseudo-destructor
	expressions.
	* decl.c (cxx_maybe_build_cleanup): Remove dead code.
	* except.c (dtor_nothrow): Lazily create destructors if necessary.
	(build_throw): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
	* init.c (build_delete): Lazily create destructors, if necessary.
	(build_vbase_delete): Remove.
	* method.c (locate_dtor): Simplify.
	(implicitly_declare_fn): Add support for destructors.
	* parser.c (cp_parser_lookup_name): Lazily create destructors, if
	necessary.
	* pt.c (check_explicit_specialization): Don't use
	TYPE_HAS_DESTRUCTOR.
	(instantiate_class_template): Likewise.
	* ptree.c (cxx_print_type): Don't print TYPE_HAS_DESTRUCTOR.
	* rtti.c (emit_support_tinfos): Robustify.
	* search.c (lookup_fnfields_1): Lazily create destructors.
	* typeck.c (build_class_member_access_expr): Remove
	PSEUDO_DTOR_EXPR handling.
	(lookup_destructor): Likewise.

	PR c++/19733
	* g++.dg/parse/crash23.C: New test.
	* g++.dg/warn/Weff1.C: New test.

From-SVN: r94759
2005-02-09 02:53:41 +00:00
Joseph Myers
ec2cd8b20c * gcc.dg/20050209-1.c: New test.
From-SVN: r94757
2005-02-09 02:05:52 +00:00
Joseph Myers
ec3d00a01b re PR target/19799 (sibcall-3.c and sibcall-4.c xfailed on hppa64-*-hpux*)
PR target/19799
	* gcc.dg/sibcall-3.c, gcc.dg/sibcall-4.c: XFAIL on hppa*64*-*.

From-SVN: r94756
2005-02-09 01:43:50 +00:00
Mike Stump
ecddfb399a files.c (pchf_adder): Remove.
* files.c (pchf_adder): Remove.
        (struct pchf_adder_info): Likewise.
        (_cpp_save_file_entries): Write out all files so that #import works.

From-SVN: r94755
2005-02-09 01:23:56 +00:00
Janis Johnson
996f05787d * gcc.dg/uninit-4.c: XFAIL bogus warning for powerpc64.
From-SVN: r94754
2005-02-09 00:17:32 +00:00