Commit Graph

69848 Commits

Author SHA1 Message Date
J"orn Rennecke 9fd0c419ab * sh.c (output_ieee_ccmpeq): Replace "\\;" with "\n\t".
From-SVN: r101600
2005-07-04 15:49:42 +01:00
Arnaud Charlet 7d300a99e3 resync
From-SVN: r101599
2005-07-04 15:59:49 +02:00
Arnaud Charlet 4edb2be07d [multiple changes]
2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
	    Thomas Quinot  <quinot@adacore.com>

	* Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
	new target gen-soccon.

2005-07-04  Robert Dewar  <dewar@adacore.com>

	* s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting

2005-07-04  Thomas Quinot  <quinot@adacore.com>

	* g-socket.ads (Check_Selector): Minor rewording of comment.

2005-07-04  Vincent Celier  <celier@adacore.com>

	* vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=

2005-07-04  Thomas Quinot  <quinot@adacore.com>

	* gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.

2005-07-04  Sergey Rybin  <rybin@adacore.com>

        * gnat_ugn.texi: Add description of --eol gnatpp option

2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
	    Thomas Quinot  <quinot@adacore.com>

        * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
	if the user wants all calls of a subprogram to be flagged,
	independently of whether they are made from within the same unit or
	another unit.
        Mention restriction for pragma Linker_Alias on some platforms.
        Document pragma Linker_Constructor and Linker_Destructor.
        Rewrite documentation of Weak_External, Linker_Section and
        Linker_Alias pragmas.

From-SVN: r101598
2005-07-04 15:31:43 +02:00
Matthew Heaney d43d5ef7b5 a-convec.ads, [...]: Declaration of subtype Extended_Index was changed.
2005-07-04  Matthew Heaney  <heaney@adacore.com>

	* a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
	was changed.
	* a-coinve.adb: Perform constraint checks explicitly.

From-SVN: r101597
2005-07-04 15:31:24 +02:00
Vincent Celier c8effb4f39 makegpr.adb (Build_Global_Archive): Make sure the list of sources is correctly computed and the main project data...
2005-07-04  Vincent Celier  <celier@adacore.com>

	* makegpr.adb (Build_Global_Archive): Make sure the list of sources is
	correctly computed and the main project data is not modified while
	doing so.
	(Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
	(Choose_C_Plus_Plus_Link_Process): Do not generate shell script
	c++linker as this does not work on some platforms.

From-SVN: r101596
2005-07-04 15:31:15 +02:00
Vincent Celier 65d5180d8c vms_conv.adb (Initialize): Allow multiple ALI files to be given to the GNAT BIND command...
2005-07-04  Vincent Celier  <celier@adacore.com>

	* vms_conv.adb (Initialize): Allow multiple ALI files to be given to
	the GNAT BIND command, as gnatbind accepts multiples ALI files with
	the -L or -n switches.

From-SVN: r101595
2005-07-04 15:31:04 +02:00
Matthew Gingell 55d4360971 tracebak.c: Enable tracebacks on ia64 platforms
2005-07-04  Matthew Gingell  <gingell@adacore.com>

	* tracebak.c: Enable tracebacks on ia64 platforms

From-SVN: r101594
2005-07-04 15:30:55 +02:00
Robert Dewar ef82b92b13 re PR ada/22039 (special functions for string concat of 3/4/5 args doc'ed to concat two)
2005-07-04  Robert Dewar  <dewar@adacore.com>

	PR ada/22039

	* s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix

From-SVN: r101593
2005-07-04 15:30:45 +02:00
Ed Schonberg ac0ed7268a sem_util.adb (Is_Object_Reference): An indexed or selected component whose prefix is an implicit dereference is an...
2005-07-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.adb (Is_Object_Reference): An indexed or selected component
	whose prefix is an implicit dereference is an object reference. Removes
	spurious errors when compiling with -gnatc.

From-SVN: r101592
2005-07-04 15:30:32 +02:00
Ed Schonberg 21ff92b4e3 sem_type.adb (Covers): Verify that Corresponding_Record_Type is present before checking whether an...
2005-07-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_type.adb (Covers): Verify that Corresponding_Record_Type is
	present before checking whether an interface type covers a synchronized
	type.

From-SVN: r101591
2005-07-04 15:30:21 +02:00
Thomas Quinot 16397eff06 sem_res.adb (Resolve_Actuals): Do not resolve the expression of an actual that is a view conversion of a bit...
2005-07-04  Thomas Quinot  <quinot@adacore.com>

	* sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
	actual that is a view conversion of a bit packed array reference.

From-SVN: r101590
2005-07-04 15:30:10 +02:00
Gary Dismukes c2bf339e6b sem_eval.adb (Subtypes_Statically_Match): Use the discriminant constraint of full view of a private view T1 if present...
2005-07-04  Gary Dismukes  <dismukes@adacore.com>

	* sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
	constraint of full view of a private view T1 if present, when T2 is a
	discriminated full view.

From-SVN: r101589
2005-07-04 15:29:58 +02:00
Ed Schonberg 9dcb52e145 sem_ch6.adb (Conforming_Types): If the types are anonymous access types check whether some designated type is a...
2005-07-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Conforming_Types): If the types are anonymous access
	types check whether some designated type is a limited view, and use
	the non-limited view if available.

From-SVN: r101588
2005-07-04 15:29:47 +02:00
Thomas Quinot d3e65aad2c sem_ch4.adb (Transform_Object_Operation): For an actual that is an overloaded function call...
2005-07-04  Thomas Quinot  <quinot@adacore.com>

	* sem_ch4.adb (Transform_Object_Operation): For an actual that is an
	overloaded function call, carry interpretations from the original tree
	to the copy.

From-SVN: r101587
2005-07-04 15:29:36 +02:00
Ed Schonberg d5f09c91bf sem_ch10.adb (Build_Limited_Views): A type declared with a private type extension needs a limited view.
2005-07-04  Ed Schonberg  <schonberg@adacore.com>
	    Javier Miranda  <miranda@adacore.com>

	* sem_ch10.adb (Build_Limited_Views): A type declared with a private
	type extension needs a limited view.
	Remove previous restriction on private types available through the
	limited-view (only tagged private types were previously allowed).
	(Install_Withed_Unit): In the code that implements the
	legality rule given in AI-377, exclude a child unit with the name
	Standard, because it is a homonym of the Standard environment package.

From-SVN: r101586
2005-07-04 15:29:19 +02:00
Robert Dewar 323b59c470 scng.adb: Do not consider Mod used as an attribute to be a keyword
2005-07-04  Robert Dewar  <dewar@adacore.com>

	* scng.adb: Do not consider Mod used as an attribute to be a keyword

From-SVN: r101585
2005-07-04 15:29:08 +02:00
Javier Miranda 60050a2df1 par-load.adb: Load the context items in two rounds.
2005-07-04  Javier Miranda  <miranda@adacore.com>

	* par-load.adb: Load the context items in two rounds.

From-SVN: r101584
2005-07-04 15:28:59 +02:00
Ed Schonberg c6bbcfff03 par-ch9.adb (P_Task, [...]): Indicate that single task and single protected declarations can have an...
2005-07-04  Ed Schonberg  <schonberg@adacore.com>

	* par-ch9.adb (P_Task, P_Protected): Indicate that single task and
	single protected declarations can have an interface list.
	(P_Entry_Declaration): Add handler for Error_Resync, which can be raised
	with seriously malformed entry declarations, and lead to compilation
	abandoned messages.

From-SVN: r101583
2005-07-04 15:28:50 +02:00
Vincent Celier df95677353 mlib-prj.adb (Auto_Initialize): New constant String
2005-07-04  Vincent Celier  <celier@adacore.com>

	* mlib-prj.adb (Auto_Initialize): New constant String
	(SALs_Use_Constructors): New Boolean function
	(Build_Library): Call gnatbind with Auto_Initialize switch when
	SALs_Use_Constructors returns True.

	* mlib-tgt.ads: Minor reformatting

	* mlib-utl.ads: Minor reformatting

	* opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag

From-SVN: r101582
2005-07-04 15:28:39 +02:00
Matthew Gingell f4657cf513 Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
2005-07-04  Matthew Gingell  <gingell@adacore.com>

	* Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb

	* indepsw-linux.adb: Replace by...

	* indepsw-gnu.adb: ...this new file

From-SVN: r101581
2005-07-04 15:28:28 +02:00
Vincent Celier ecca38c467 make.adb (Change_To_Object_Directory): When unable to change the current dir to the object directory...
2005-07-04  Vincent Celier  <celier@adacore.com>

	* make.adb (Change_To_Object_Directory): When unable to change the
	current dir to the object directory, output the full path of the
	directory.

From-SVN: r101580
2005-07-04 15:28:11 +02:00
Ed Schonberg 4a2ddf6697 exp_intr.adb (Expand_Unc_Deallocation): If the designated type is controlled...
2005-07-04  Ed Schonberg  <schonberg@adacore.com>

	* exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
	controlled, indicate the expected type of the dereference that is
	created for the call to Deep_Finalize, to prevent spurious errors when
	the designated type is private and completed with a derivation from
	another private type.

From-SVN: r101579
2005-07-04 15:28:00 +02:00
Thomas Quinot 64dd539571 exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for Itypes.
2005-07-04  Thomas Quinot  <quinot@adacore.com>

	* exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
	Itypes. Itypes are really unexpected there.
	(Build_TypeCode_Function): Generalise special processing for Itypes to
	handle the case of numeric implicit base types as well as enumerated
	ones.

From-SVN: r101578
2005-07-04 15:27:43 +02:00
Ed Schonberg 3b641023b3 exp_attr.adb (Mod): Evaluate condition expression with checks off, to prevent spurious warnings.
2005-07-04  Ed Schonberg  <schonberg@adacore.com>

	* exp_attr.adb (Mod): Evaluate condition expression with checks off,
	to prevent spurious warnings.

From-SVN: r101577
2005-07-04 15:27:32 +02:00
Eric Botcazou d9e0a58787 decl.c (prepend_attributes): New case.
2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
	<Pragma_Linker_Destructor>: Likewise.

	* einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
	Pragma_Linker_Destructor.

	* gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
	ATTR_LINK_DESTRUCTOR.
	(static_ctors, static_dtors): New variables.

	* misc.c (gnat_expand_body): Output current function as constructor
	and destructor if requested.

	* par-prag.adb: Add processing for pragma Linker_Constructor and
	Linker_Destructor.

	* sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
	extracted from Check_Interrupt_Or_Attach_Handler.
	(Check_Interrupt_Or_Attach_Handler): Invoke it.
	Implement pragma Linker_Constructor and Linker_Destructor with the
	help of Find_Unique_Parameterless_Procedure.
	Replace Name_Alias with Name_Target for pragma Linker_Alias.

	* snames.h, snames.ads, snames.adb:
	Add Name_Linker_Constructor and Name_Linker_Destructor.
	Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
	* snames.adb: Remove Name_Alias.

	* trans.c: Include cgraph.h.
	(build_global_cdtor): New function.
	(Compilation_Unit_to_gnu): Build global constructor and destructor if
	needed.
	(tree_transform) <N_Identifier>: Substitute renaming of view-conversions
	of objects too.
	(addressable_p) <COMPONENT_REF>: Unconditionally test
	DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.

	* utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
	variable if it is external.

	(static_ctors, static_dtors): New global variables.
	(process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
	<ATTR_LINK_DESTRUCTOR>: Likewise.
	(end_subprog_body): Chain function as constructor and destructor
	if requested.

	* exp_util.adb (Force_Evaluation): Unconditionally invoke
	Remove_Side_Effects with Variable_Ref set to true.
	(Remove_Side_Effects): Handle scalar types first. Use a renaming
	for non-scalar types even if Variable_Ref is true and for class-wide
	expressions.

From-SVN: r101576
2005-07-04 15:27:21 +02:00
Gary Dismukes c73ae90f23 checks.adb (Null_Exclusion_Static_Checks): In the case of N_Object_Declaration...
2005-07-04  Gary Dismukes  <dismukes@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>
	    Javier Miranda  <miranda@adacore.com>

	* checks.adb (Null_Exclusion_Static_Checks): In the case of
	N_Object_Declaration, only perform the checks if the Object_Definition
	is not an Access_Definition.

        * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
        where the parent of an the access definition is an N_Object_Declaration
        when determining the Associated_Node_For_Itype and scope of an
        anonymous access-to-subprogram type.

	* exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
	Corresponding_Spec on the body created for a null procedure. Add ???
	comment. Remove New_Copy_Tree call on body argument to
	Set_Body_To_Inline.

	* exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
	discriminants, use the type of the actual as well, because the
	discriminants may be read by the called subprogram.

	* sem_ch3.adb (Access_Type_Declaration): If the designated type is an
	access type we do not need to handle non-limited views.
	(Build_Derived_Record_Type): Additional check to check that in case of
	private types, interfaces are only allowed in private extensions.

From-SVN: r101575
2005-07-04 15:26:45 +02:00
Joel Brobecker 3104eb4aac a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
2005-07-04  Joel Brobecker  <brobecker@adacore.com>

	* a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
	This prevents us from hitting a limitation during the debug info
	generation when using stabs.
	(Prims_Ptr): Likewise.

From-SVN: r101574
2005-07-04 15:26:28 +02:00
Vincent Celier b87520cd05 mlib-tgt-tru64.adb, [...] (Build_Dynamic_Library): Remove all auto-initialization code...
2005-07-04  Vincent Celier  <celier@adacore.com>

	* mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
	mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
	mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
	Remove all auto-initialization code, as this is now done through the
	constructor mechanism.

	* adaint.h, adaint.c (__gnat_binder_supports_auto_init,
	__gnat_sals_init_using_constructors): New functions.

	* bindgen.adb (Gen_Output_File_Ada): Generate pragmas
	Linker_Constructor and Linker_Destructor when switch -a is used.

	* bindusg.adb: Add line for new switch -a

	* gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
	(Gnatbind): When switch -a is used, check if it is allowed

	* switch-b.adb (Scan_Binder_Switches): Process new switch -a

From-SVN: r101573
2005-07-04 15:26:18 +02:00
Eric Botcazou 0556b70292 s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to fetch a code-range descriptor associated with...
2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>

	* s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
	fetch a code-range descriptor associated with the machine state. On
	failure set the machine state's PC to 0; on success, pass the
	descriptor to exc_virtual_unwind.

	* init.c (Tru64 section): New function __gnat_set_code_loc.

From-SVN: r101572
2005-07-04 15:26:02 +02:00
Thomas Quinot 1a79be3c00 2005-07-04 Thomas Quinot <quinot@adacore.com>
* g-expect-vms.adb, g-expect.ads, g-expect.adb
	(Get_Command_Output): New subprogram to launch a process and get its
	standard output as a string.

From-SVN: r101571
2005-07-04 15:25:47 +02:00
Arnaud Charlet fc64d83c6f * s-stausa.ads, s-stausa.adb: New files.
From-SVN: r101570
2005-07-04 12:11:35 +02:00
Arnaud Charlet f439901c10 New file.
From-SVN: r101569
2005-07-04 12:10:39 +02:00
GCC Administrator c4c756daf8 Daily bump.
[[Split portion of a mixed commit.]]

From-SVN: r101564.2
2005-07-04 00:16:22 +00:00
Andrew Pinski bbef4d4547 re PR testsuite/22288 (dg-final: couldn't compile regular expression pattern)
2005-07-03  Andrew Pinski  <pinskia@physics.uc.edu>

        PR testsuite/22288
        * gcc.dg/tree-ssa/pr14490-[1-4].c: Escape "+".

From-SVN: r101562
2005-07-03 16:55:04 -07:00
Joseph Myers ab532386bd bb-reorder.c, [...]: Avoid "." or "\n" at end of diagnostics and capital letters at start of diagnostics.
* bb-reorder.c, c-pch.c, c-pragma.c, c.opt, cfghooks.c, cfgloop.c,
	cfgrtl.c, cgraphunit.c, config/c4x/c4x.c, config/cris/cris.c,
	config/frv/frv.c, config/host-darwin.c, config/iq2000/iq2000.c,
	config/lynx.h, config/m68k/m68k.c, config/pa/pa.c, config/sh/sh.h,
	config/stormy16/stormy16.c, config/v850/v850.c,
	config/vax/netbsd-elf.h, coverage.c, dwarf2out.c, emit-rtl.c,
	except.c, gcc.c, tree-cfg.c, tree-eh.c, tree-ssa.c, xcoffout.c:
	Avoid "." or "\n" at end of diagnostics and capital letters at
	start of diagnostics.
	* combine.c, cse.c: Don't translate dump file output.
	* toplev.c (print_version): Only translate output if going to
	stderr.

From-SVN: r101561
2005-07-03 22:08:11 +01:00
Kazu Hirata 9bce667ce5 gfortran.texi, [...]: Fix typos.
* gfortran.texi, intrinsic.texi: Fix typos.
	* symbol.c: Fix a comment typo.

From-SVN: r101560
2005-07-03 18:40:25 +00:00
Kazu Hirata 5189dd41d8 gfortran.texi, [...]: Fix typo.
* gfortran.texi, intrinsic.texi: Fix typo.
	* symbol.c: Fix a comment typo.

From-SVN: r101559
2005-07-03 18:39:20 +00:00
Kazu Hirata 619519c89a c-decl.c, [...]: Fix comment typos.
* c-decl.c, tree-object-size.c, tree-vectorizer.c,
	config/arm/unwind-arm.c, config/arm/unwind-arm.h: Fix comment
	typos.

From-SVN: r101558
2005-07-03 16:11:42 +00:00
Steve Ellcey 6cbfa10eb5 re PR other/13906 (genmodes.c:964: internal compiler error: Bus error in md5_process_block)
PR other/13906
	* md5.c (md5_process_bytes): Check alignment.

From-SVN: r101557
2005-07-03 15:40:29 +00:00
Steve Ellcey 3fe725de2a re PR other/13906 (genmodes.c:964: internal compiler error: Bus error in md5_process_block)
PR other/13906
	* ansidecl.h (ATTRIBUTE_ALIGNED_ALIGNOF): New.
	* md5.h (md5_uintptr): New.
	(md5_ctx): Align buffer field.

From-SVN: r101556
2005-07-03 15:38:39 +00:00
John David Anglin 419df6a2ef * pa.c (fix_range): Fix typo in comment.
From-SVN: r101555
2005-07-03 15:08:44 +00:00
Kazu Hirata 184afc230f tree-vrp.c (extract_range_from_assert): Replace fold (build (...)) with fold_build2.
* tree-vrp.c (extract_range_from_assert): Replace
	fold (build (...)) with fold_build2.

From-SVN: r101554
2005-07-03 15:06:00 +00:00
Kazu Hirata f726bf47e3 Make-lang.in (cc1plus-checksum.c): Use build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
objc/
	* Make-lang.in (cc1plus-checksum.c): Use
	build/genchecksum$(build_exeext), not build/genchecksum$(exeext).

objcp/
	* Make-lang.in (cc1plus-checksum.c): Use
	build/genchecksum$(build_exeext), not build/genchecksum$(exeext).

From-SVN: r101553
2005-07-03 14:45:35 +00:00
Kaveh R. Ghazi 0ce0154c40 c-format.c (gcc_gfc_format_type, [...]): New.
* c-format.c (gcc_gfc_format_type, gcc_gfc_flag_pairs,
	gcc_gfc_char_table, init_dynamic_gfc_info): New.
	(format_types_orig, handle_format_attribute): Add support for
	format "gcc_gfc".

fortran:
	* error.c (error_printf, error_print): Use ATTRIBUTE_GCC_GFC.
	* gfortran.h (ATTRIBUTE_GCC_GFC): New.
	(gfc_warning, gfc_warning_now, gfc_error, gfc_error_now,
	gfc_fatal_error, gfc_internal_error, gfc_notify_std): Use
	ATTRIBUTE_GCC_GFC.

testsuite:
	* gcc.dg/format/gcc_gfc-1.c: New.

From-SVN: r101552
2005-07-03 14:28:03 +00:00
Gabriel Dos Reis 4c5bc6f819 forgot to commit Changelog entry for last commit.
From-SVN: r101551
2005-07-03 14:17:03 +00:00
Gabriel Dos Reis 3c25d6a8c1 * varasm.c (assemble_variable): Fix format specifier thinko.
From-SVN: r101550
2005-07-03 14:14:28 +00:00
Andrew Pinski dd0f37b575 pr14490-[1-4].c: Fix typos scan-tree-dump-times so they now pass.
2005-07-03  Andrew Pinski  <pinskia@physics.uc.edu>

        * pr14490-[1-4].c: Fix typos scan-tree-dump-times so they now pass.

From-SVN: r101549
2005-07-03 06:02:40 -07:00
Ira Rosen 7adaa46c7a PR tree-optimization/22029 (and 22135)
PR tree-optimization/22029 (and 22135)
        * tree-pretty-print.c (dump_generic_node): Check that the node is not
        a phi node before calling dump_vops.

From-SVN: r101548
2005-07-03 11:45:56 +00:00
Gabriel Dos Reis 1966af04b7 tree-dump.h (dump_string_field): Declare.
* tree-dump.h (dump_string_field): Declare.
        * tree-dump.c: Use it instead of dump_string.
        (dump_string_field): Make non-static.

cp/
        * dump.c: Use dump_string_field.

From-SVN: r101547
2005-07-03 06:50:51 +00:00
Kaz Kojima 384a87604e sh.c (sh_output_mi_thunk): Initialize and clean up the minimal CFG stuff always when optimize > 0.
* config/sh/sh.c (sh_output_mi_thunk): Initialize and clean
	up the minimal CFG stuff always when optimize > 0.  Call
	split_all_insns_noflow in PIC case if needed.

From-SVN: r101546
2005-07-03 05:21:42 +00:00