Commit Graph

56029 Commits

Author SHA1 Message Date
Mark Mitchell
6f69173e89 re PR c++/13663 (gcc segfaults on invalid use of member)
PR c++/13663
	* semantics.c (finish_for_expr): Check for unresolved overloaded
	functions.

	PR c++/13363
	* g++.dg/expr/for1.C: New test.

From-SVN: r76659
2004-01-26 20:11:46 +00:00
Andrew Pinski
044feeeba0 Add changelog entry for the testcase which was forgotten by Fariborz Jahanian.
From-SVN: r76657
2004-01-26 10:50:29 -08:00
Jeff Law
5cea9d5d0a contrib.texi: Minor cleanup for Paolo Carlini's entry.
* doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
        acute accents for Petur Runolfsson's entry.

From-SVN: r76655
2004-01-26 11:31:07 -07:00
Kazu Hirata
04e9daaf31 pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
* config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	* config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
	(RETURN_IN_MEMORY): Likewise.

From-SVN: r76654
2004-01-26 18:17:58 +00:00
Fariborz Jahanian
b2037eac29 Test case for PR middle-end/13779.
From-SVN: r76652
2004-01-26 17:48:49 +00:00
Fariborz Jahanian
6c8066b9ca rs6000.c, rs6000.md, function.c, expr.c checked in.
rs6000.c, rs6000.md, function.c, expr.c checked in. All related to -mcpu=G5
compilation mode.

From-SVN: r76651
2004-01-26 17:47:42 +00:00
Fariborz Jahanian
d3a16cbdaf re PR middle-end/13779 ([3.4 only] powerpc64: incorrect initialization of 'long long' with constant)
PR middle-end/13779
split constant correctly into register components of PARALLEL insn.
OKed by Roger Sayle.

From-SVN: r76649
2004-01-26 17:45:42 +00:00
Fariborz Jahanian
6e290f1155 Do not assign long long argument to memory in prologue if loaded in register.
OKed by Richard Henderson.

From-SVN: r76648
2004-01-26 17:43:46 +00:00
Mark Mitchell
c353b8e3fb class.c (add_method): Just check processing_template_decl to determine whether or not we are within a...
* class.c (add_method): Just check processing_template_decl to
	determine whether or not we are within a template.
	* decl2.c (maybe_retrofit_in_chrg): Likewise.
	* init.c (decl_constant_value): Check the type of the declaration,
	not TREE_READONLY.
	* name-lookup.c (maybe_push_to_top_level): Rename to ...
	(push_to_top_level): ... this.
	* name-lookup.h (maybe_push_to_top_level): Do not declare it.
	* pt.c (push_template_decl_real): Reorder condition for speed.
	(convert_template_argument): Use dependency-checking functions in
	place of uses_template_parms.
	(lookup_template_class): Avoid calling uses_template_parms more
	than once.
	(uses_template_parms): Reimplement, using dependency-checking
	functions.
	(instantiate_class_template): Use push_to_top_level, not
	maybe_push_to_top_level.
	(type_unification_real): Simplify.
	(type_dependent_expression_p): Handle OFFSET_REFs and
	TEMPLATE_DECLs.
	(any_dependent_template_arguments_p): Handle multiple levels of
	template argument.
	* semantics.c (expand_or_defer_fn): Do not check
	uses_template_parms for template instantiations.
	* typeck.c (comptypes): Avoid calling cp_type_quals.

From-SVN: r76647
2004-01-26 17:41:50 +00:00
Fariborz Jahanian
d9b7db1265 Split slow unaligned load/store into smaller loads and stores.
OKed by David Edelsohn.

From-SVN: r76646
2004-01-26 17:40:06 +00:00
Fariborz Jahanian
11b2571676 Use adjust_address_nv directly with appropriate mode.
OKed by David Edelsohn.

From-SVN: r76645
2004-01-26 17:38:51 +00:00
Kazu Hirata
4c45af42f5 xtensa-protos.h: Remove the prototype for xtensa_builtin_saveregs.
* config/xtensa/xtensa-protos.h: Remove the prototype for
	xtensa_builtin_saveregs.
	* config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
	(TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
	(TARGET_PROMOTE_PROTOTYPES): Likewise.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
	(xtensa_builtin_saveregs): Make it static.
	(xtensa_return_in_memory): New.
	* config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
	(PROMOTE_FUNCTION_RETURN): Likewise.
	(PROMOTE_PROTOTYPES): Likewise.
	(STRUCT_VALUE): Likewise.
	(RETURN_IN_MEMORY): Likewise.
	(EXPAND_BUILTIN_SAVEREGS): Likewise.

From-SVN: r76644
2004-01-26 17:33:37 +00:00
Kazu Hirata
1cc9f5f5f9 arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
* config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
	(arm_setup_incoming_varargs): Likewise.
	* config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.

From-SVN: r76643
2004-01-26 16:35:44 +00:00
Kazu Hirata
558d352a12 cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
* config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
	(cris_setup_incoming_varargs): Likewise.
	* config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.

From-SVN: r76640
2004-01-26 15:54:45 +00:00
Ian Lance Taylor
044701ce86 20040124-1.c: Moved test from here...
* gcc.dg/20040124-1.c: Moved test from here...
	* gcc.c-torture/compile/20040124-1.c: ...to here.

From-SVN: r76639
2004-01-26 15:52:38 +00:00
Kazu Hirata
2001a5cf1f ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
* config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
	(ns32k_struct_value_rtx): Likewise.
	* config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
	NS32K_STRUCT_VALUE_REGNUM.

From-SVN: r76638
2004-01-26 15:50:55 +00:00
Kazu Hirata
f9ba5949c9 arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
* config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
	(TARGET_PROMOTE_PROTOTYPES): Likewise.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(arm_struct_value_rtx): Likewise.
	* config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
	(STRUCT_VALUE): Likewise.
	(STRUCT_VALUE_REGNUM): Likewise.
	(PROMOTE_PROTOTYPES): Likewise.

From-SVN: r76636
2004-01-26 15:40:04 +00:00
Kazu Hirata
351a758bd9 ia64-protos.h: Remove the prototype for ia64_setup_incoming_varargs and ia64_return_in_memory.
* config/ia64/ia64-protos.h: Remove the prototype for
	ia64_setup_incoming_varargs and ia64_return_in_memory.
	* config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(TARGET_SETUP_INCOMING_VARARGS): Likewise.
	(TARGET_STRICT_ARGUMENT_NAMING): Likewise.
	(ia64_setup_incoming_varargs): Adjust the arguments to meet
	the requirement of TARGET_SETUP_INCOMING_VARARGS.
	(ia64_return_in_memory): Make it static.  Change the return
	type to bool from int.  Add an argument.
	(ia64_struct_value_rtx): New.
	* config/ia64/ia64.h: Remove commented-out definitions of
	PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
	PROMOTE_PROTOTYPES.
	(RETURN_IN_MEMORY): Remove.
	(STRUCT_VALUE_REGNUM): Likewise.
	(STRICT_ARGUMENT_NAMING): Likewise.

From-SVN: r76635
2004-01-26 15:32:42 +00:00
Arnaud Charlet
26fd4eae69 [multiple changes]
2004-01-26  Ed Schonberg  <schonberg@gnat.com>

	* exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
	one-dimensional array an slice assignments, when component type is
	controlled.

	* exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
	component type is controlled, and control_actions are in effect, use
	TSS procedure rather than generating inline code.

	* exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
	arrays with controlled components.

2004-01-26  Vincent Celier  <celier@gnat.com>

	* gnatcmd.adb (GNATCmd): Add specification of argument file on the
	command line for the non VMS case.

	* gnatlink.adb (Process_Binder_File): When building object file, if
	GNU linker is used, put all object paths between quotes, to prevent ld
	error when there are unusual characters (such as '!') in the paths.

	* Makefile.generic: When there are sources in Ada and the main is in
	C/C++, invoke gnatmake with -B, instead of -z.

	* vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
	from VMS_Conversion.
	(Process_Argument): New procedure, extracted from VMS_Conversion. Add
	specification of argument file on the command line.

2004-01-26  Bernard Banner  <banner@gnat.com>

	* Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64

2004-01-26  Ed Schonberg  <schonberg@gnat.com>

	* snames.adb: Update copyright notice.
	Add info on slice assignment for controlled arrays.

From-SVN: r76634
2004-01-26 15:47:48 +01:00
Kim Ho
ecf67f46ef GtkFramePeer.java (menuBarHeight): Mark private.
2004-01-26  Kim Ho  <kho@redhat.com>

        * gnu/java/awt/peer/gtk/GtkFramePeer.java (menuBarHeight): Mark
        private.
        (setMenuBar): Grab MenuBar height and change insets.
        (setBounds): Account for MenuBar height.
        (postInsetsChangedEvent): Ditto.
        (postSizeAllocateEvent): Remove.
        * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
        (menubar_resize_cb): Remove
        (setMenuBarPeer): Remove callback.
        (getMenuBarHeight): Use size requisition instead of
        allocation.

From-SVN: r76633
2004-01-26 13:56:59 +00:00
Paolo Carlini
4d39d873e0 basic_string.h (replace(iterator, iterator, const basic_string&)): Remove _GLIBCXX_DEBUG_PEDASSERT.
2004-01-26  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/basic_string.h (replace(iterator, iterator,
	const basic_string&)): Remove _GLIBCXX_DEBUG_PEDASSERT.
	(replace(iterator, iterator, const _CharT*)): Ditto.
	(replace(iterator, iterator, const _CharT*, size_type)):
	Add missing _GLIBCXX_DEBUG_PEDASSERT.

From-SVN: r76630
2004-01-26 12:58:53 +00:00
Eric Botcazou
a7bba6ca0e re PR target/13666 (deviation from the psABI for small unions)
PR target/13666
	* config/sparc/sparc.c (function_arg_union_value): New function.
	(function_arg): Use it to deal with unions.
	(function_value): Likewise.  Define 'regbase' only for ARCH64.
	Replace a conditional statement by a simpler one.

From-SVN: r76628
2004-01-26 11:11:11 +00:00
Paolo Carlini
2cb612d1b0 basic_string.tcc (replace(size_type, size_type, const _CharT*, size_type)): Implement optimized in-place algorithm for non-overlapping ranges.
2004-01-26  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/basic_string.tcc (replace(size_type,
	size_type, const _CharT*, size_type)): Implement optimized
	in-place algorithm for non-overlapping ranges.
	* testsuite/21_strings/basic_string/replace/char/6.cc: New.
	* testsuite/21_strings/basic_string/replace/wchar_t/6.cc: New.

	* include/bits/basic_string.tcc (insert(size_type,
	const _CharT*, size_type)): Tweak slightly.

From-SVN: r76625
2004-01-26 09:07:18 +00:00
Richard Sandiford
6865f4cd9f mips.c (mips16_optimize_gp): Delete.
* config/mips/mips.c (mips16_optimize_gp): Delete.
	(mips_reorg): Don't call it.

From-SVN: r76623
2004-01-26 08:07:01 +00:00
Eric Botcazou
f210a0077b sparc-ret.c: Run only in 32-bit mode.
* gcc.dg/sparc-ret.c: Run only in 32-bit mode.  Don't scan
	the assembly output if -m64 is passed.

From-SVN: r76621
2004-01-26 07:39:29 +00:00
Ian Lance Taylor
5254fd7b55 configure.ac: Add m4_pattern_allow(LIBOBJS).
* configure.ac: Add m4_pattern_allow(LIBOBJS).
	* configure: Regenerate.

From-SVN: r76619
2004-01-26 04:44:11 +00:00
Michael Hayes
2d6d0eb56c c4x.md (addqi3_noclobber): Move up pecking order.
* config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
	(floatunsqihf2): Remove operand 6.
	(fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
	fix patterns.
	(ldi_conditional, ldf_conditional): Validate operands.

From-SVN: r76618
2004-01-26 03:36:07 +00:00
Michael Hayes
8f42219220 c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
* config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
	(HAVE_GAS_HIDDEN): Undefine as interim measure.

From-SVN: r76617
2004-01-26 03:24:39 +00:00
Mark Mitchell
b7c707d1d9 re PR c++/13833 (Conversion problem in template function)
PR c++/13833
	* call.c (build_over_call): Do not convert arguments when
	processing a template.
	* pt.c (build_non_dependent_expr): Do not build a
	NON_DEPENDENT_EXPR for arithmetic constants.

	PR c++/13833
	* g++.dg/template/cond3.C: New test.

From-SVN: r76616
2004-01-26 03:13:49 +00:00
Michael Hayes
9c3602e40f c4x.c (c4x_legitimate_address_p): Invalidate direct memory references if TARGET_EXPOSE_LDP nonzero.
* config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
	memory references if TARGET_EXPOSE_LDP nonzero.

From-SVN: r76611
2004-01-26 00:40:05 +00:00
Michael Hayes
a026b9d64d * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
From-SVN: r76610
2004-01-26 00:31:50 +00:00
Michael Hayes
b6ab76d653 Fix last commit.
From-SVN: r76608
2004-01-26 00:28:33 +00:00
Michael Hayes
b7bbb57472 c4x.c (c4x_valid_operands): More aggressively reject invalid operand combinations.
* config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
	invalid operand combinations.

From-SVN: r76607
2004-01-26 00:20:07 +00:00
GCC Administrator
3a03ba7473 Daily bump.
From-SVN: r76604
2004-01-26 00:16:15 +00:00
Michael Hayes
1e903c616e c4x.c (c4x_check_legit_addr): Rename to c4x_legitimate_address_p.
* config/c4x/c4x.c (c4x_check_legit_addr): Rename to
	c4x_legitimate_address_p.  Fix post_modify check.
	* config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
	* config/c4x/c4x.h (c4x_check_legit_addr): Adjust.

From-SVN: r76601
2004-01-26 00:12:05 +00:00
Kazu Hirata
3f12cd9b3c pa-protos.h: Remove the prototype for hppa_builtin_saveregs.
* config/pa/pa-protos.h: Remove the prototype for
	hppa_builtin_saveregs.  Add a prototype for
	pa_return_in_memory.
	* config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
	(TARGET_PROMOTE_PROTOTYPES): Likewise.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
	(pa_struct_value_rtx): Likewise.
	(pa_return_in_memory): Likewise.
	* config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
	PA_STRUCT_VALUE_REGNUM.
	(INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
	(EXPAND_BUILTIN_SAVEREGS): Remove.
	(PROMOTE_PROTOTYPES): Likewise.
	(PROMOTE_FUNCTION_RETURN): Likewise.

From-SVN: r76600
2004-01-26 00:09:47 +00:00
Kazu Hirata
f289e226f1 vax.c (TARGET_PROMOTE_PROTOTYPES): New.
* config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(vax_struct_value_rtx): Likewise.
	* config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
	VAX_STRUCT_VALUE_REGNUM.
	(PROMOTE_PROTOTYPES): Remove.

From-SVN: r76599
2004-01-26 00:05:38 +00:00
Michael Hayes
12fb52cf27 * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS): Handle symref.
From-SVN: r76598
2004-01-25 23:58:39 +00:00
Chris Demetriou
fdcf1e1ed5 mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2, and MIPS64 have HI/LO interlocks.
2003-04-25  Chris Demetriou  <cgd@broadcom.com>

        * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
        and MIPS64 have HI/LO interlocks.  Update comment.

From-SVN: r76597
2004-01-25 15:45:48 -08:00
Andreas Schwab
f942e78de9 monetary_members.cc: Restore locale before rethrowing exception.
* config/locale/gnu/monetary_members.cc: Restore locale before
rethrowing exception.

From-SVN: r76595
2004-01-25 23:31:43 +00:00
Giovanni Bajo
bbcd2439ba re PR c++/13810 (ICE on invalid default templates)
PR c++/13810
	* g++.dg/template/ttp7.C: New test.

From-SVN: r76594
2004-01-25 22:46:48 +00:00
Giovanni Bajo
a3a503a572 re PR c++/13810 (ICE on invalid default templates)
PR c++/13810
	* parser.c (cp_parser_type_parameter): When cp_parser_id_expression
	returns a TYPE_DECL. no further lookup is required.
	* semantics.c (check_template_template_default_arg): A TYPE_DECL
	is invalid. Rework to give better diagnostics.

From-SVN: r76593
2004-01-25 22:43:08 +00:00
Paolo Carlini
91eab3788d basic_string.h (_M_replace_aux, [...]): Define inline here.
2004-01-25  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/basic_string.h (_M_replace_aux, _M_replace_safe):
	Define inline here.
	* include/bits/basic_string.tcc (_M_replace_aux, _M_replace_safe):
	Move inline.

	* include/bits/basic_string.tcc: Very minor tweaks.

From-SVN: r76592
2004-01-25 22:43:07 +00:00
Kazu Hirata
7e43c821f0 stormy16-protos.h: Remove the prototype for xstormy16_setup_incoming_varargs.
* config/stormy16/stormy16-protos.h: Remove the prototype for
	xstormy16_setup_incoming_varargs.
	* config/stormy16/stormy16.c
	(xstormy16_setup_incoming_varargs): Remove.
	(xstormy16_return_in_memory): New.
	(TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
	(TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
	(TARGET_PROMOTE_PROTOTYPES): Likewise.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	* config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
	(PROMOTE_FUNCTION_RETURN): Likewise
	(PROMOTE_PROTOTYPES): Likewise
	(RETURN_IN_MEMORY): Likewise
	(STRUCT_VALUE): Likewise
	(SETUP_INCOMING_VARARGS): Likewise

From-SVN: r76590
2004-01-25 22:20:15 +00:00
Joseph Myers
01b84e139b EXCLUDES: Update.
* EXCLUDES: Update.
	* gcc.pot: Regenerate.

From-SVN: r76588
2004-01-25 21:50:01 +00:00
Richard Sandiford
62973ffe06 mips.c (mips_offset_within_object_p): New function.
* config/mips/mips.c (mips_offset_within_object_p): New function.
	(mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
	SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
	ABI has 64-bit pointers and the object file only allows 32-bit symbols.

From-SVN: r76586
2004-01-25 21:27:37 +00:00
Kazu Hirata
8e67da213d sh.h (PROMOTE_FUNCTION_ARGS): Remove.
* config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
	(PROMOTE_FUNCTION_RETURN): Likewise.

From-SVN: r76584
2004-01-25 20:23:09 +00:00
Kazu Hirata
9024ea92ac mn10300-protos.h: Remove the prototype for mn10300_builtin_saveregs.
* config/mn10300/mn10300-protos.h: Remove the prototype for
	mn10300_builtin_saveregs.
	* config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
	(mn10300_return_in_memory): Likewise.
	(mn10300_builtin_saveregs): Make it static.
	* config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
	(RETURN_IN_MEMORY): Likewise.
	(STRUCT_VALUE): Likewise.
	(EXPAND_BUILTIN_SAVEREGS): Likewise.

From-SVN: r76581
2004-01-25 20:17:44 +00:00
Eric Botcazou
20b4e8aea1 re PR bootstrap/13853 (Bootstrap fails when compiled with gcc 2.8.1 (gnat-3.14p))
PR bootstrap/13853
	* cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.

From-SVN: r76579
2004-01-25 20:09:27 +00:00
Thomas Fitzsimmons
062732fd2b TextArea.java: Fix indentation.
2004-01-25  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/TextArea.java: Fix indentation.  Flesh out javadocs.
	(getMinimumSize (int, int)): Fix FIXME -- return Dimension (0,0)
	when peer is null.
	(setColumns): Remove FIXME -- peer will retrieve number of
	columns by calling getColumns.
	(setRows): Likewise for number of rows.
	(next_text_number): New field.
	(paramString): Fix param string.
	(generateName): New method.
	(getUniqueLong): New method.

From-SVN: r76577
2004-01-25 18:36:04 +00:00