Commit Graph

54445 Commits

Author SHA1 Message Date
Joseph Myers 49a4172630 Makefile.in (lang_checks): Add.
gcc:
	* Makefile.in (lang_checks): Add.
	(check-c++, check-f77, check-java, check-g++, check-g77,
	check-objc): Remove hardcoded targets.
	* doc/sourcebuild.texi: Document testsuite hooks.
	* objc/Make-lang.in (check-objc, lang_checks): Add.

gcc/cp:
	* Make-lang.in (check-g++, lang_checks): Add.

gcc/f:
	* Make-lang.in (check-f77, lang_checks): Add.

gcc/java:
	* Make-lang.in (check-java): Add.

gcc/treelang:
	* Make-lang.in: Remove obsolete comment.

From-SVN: r73758
2003-11-20 09:59:59 +00:00
Arnaud Charlet 19f0526a54 [multiple changes]
2003-11-19  Arnaud Charlet  <charlet@act-europe.fr>

	* gnatmem.adb: Clean up verbose output.

	* gprcmd.adb: Change copyright to FSF.

2003-11-19  Vincent Celier  <celier@gnat.com>

	* symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
	and Version (ignored).

	* symbols.ads: (Policy): New type
	(Initialize): New parameter Reference, Symbol_Policy and
	Library_Version.
	Remove parameter Force.
	Minor reformatting.

	* snames.ads, snames.adbadb: New standard names
	Library_Reference_Symbol_File and Library_Symbol_Policy

	* mlib-prj.adb:
	(Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
	project.

	* mlib-tgt.adb:
	(Build_Dynamic_Library): New parameter Symbol_Data (ignored)

	* mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data

	* prj.adb: (Project_Empty): New component Symbol_Data

	* prj.ads: (Policy, Symbol_Record): New types
	(Project_Data): New component Symbol_Data

	* prj-attr.adb:
	New attributes Library_Symbol_File, Library_Symbol_Policy and
	Library_Reference_Symbol_File.

	* prj-nmsc.adb:
	(Ada_Check): When project is a Stand-Alone library project, process
	attribute Library_Symbol_File, Library_Symbol_Policy and
	Library_Reference_Symbol_File.

	* 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
	5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
	5sml-tgt.adb (Build_Dynamic_Library): New parameter
	Symbol_Data (ignored).

	* 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
	(Build_Dynamic_Library): New parameter Symbol_Data. New internal
	functions Option_File_Name and Version_String. Set new options of
	gnatsym related to symbol file, symbol policy and reference symbol
	file.

	* 5vsymbol.adb:
	Extensive modifications to take into account the reference symbol file,
	the symbol policy, the library version and to put in the symbol file the
	minor and major IDs.

	* bld.adb (Process_Declarative_Items): Put second argument of
	gprcmd to_absolute between single quotes, to avoid problems with
	Windows.

	* bld-io.adb: Update Copyright notice.
	(Flush): Remove last character of a line, if it is a back slash, to
	avoid make problems.

	* gnatsym.adb:
	Implement new scheme with reference symbol file and symbol policy.

	* g-os_lib.ads: (Is_Directory): Clarify comment

2003-11-19  Robert Dewar  <dewar@gnat.com>

	* atree.adb: Move New_Copy_Tree global variables to head of package

	* errout.adb: Minor reformatting

2003-11-19  Javier Miranda  <miranda@gnat.com>

	* sem_ch4.adb: (Diagnose_Call): Improve error message.
	Add reference to Ada0Y (AI-50217)

	* sem_ch6.adb, sem_ch8.adb, sem_type.adb,
	sem_util.adb: Add reference to AI-50217

	* sinfo.ads: (N_With_Clause): Document fields referred to AI-50217

	* sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)

	* sem_aggr.adb: Complete documentation of AI-287 changes

	* par-ch4.adb: Document previous changes.

	* lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
	sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
	Ada0Y (AI-50217)

	* exp_aggr.adb: Add references to AI-287 in previous changes

2003-11-19  Ed Schonberg  <schonberg@gnat.com>

	* exp_ch6.adb:
	(Add_Call_By_Copy_Node): Do not original node of rewritten expression
	in the rewriting is the result of an inlined call.

	* exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
	parameter is a type conversion, use original node to construct the
	post-call assignment, because expression may have been rewritten, e.g.
	if it is a packed array.

	* sem_attr.adb:
	(Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
	body, just as it is in an instance.
	Categorization routines

	* sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
	Instantiate_Object): Set proper sloc reference for message on missing
	actual.

2003-11-19  Thomas Quinot  <quinot@act-europe.fr>

	* Makefile.in: Add FreeBSD libgnat pairs.

	* usage.adb: Fix typo in usage message.

2003-11-19  Jerome Guitton  <guitton@act-europe.fr>

	* Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
	s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
	pragma Thread_Body.
	Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.

	* s-thread.adb: This file is now a dummy implementation of
	System.Thread.

2003-11-19  Sergey Rybin  <rybin@act-europe.fr>

	* rtsfind.adb (Initialize): Add initialization for RTE_Is_Available

2003-11-19  Emmanuel Briot  <briot@act-europe.fr>

	* xref_lib.adb (Parse_Identifier_Info): Add handling of generic
	instanciation references in the parent type description.

From-SVN: r73757
2003-11-20 10:54:03 +01:00
Scott Snyder 371e8c4f52 re PR target/13131 (internal compiler error: in AT_flag, at dwarf2out.c:4480)
PR target/13131
	* dwarf2out.c (gen_array_type_die): DW_AT_declaration should be a
	flag, not a constant.

From-SVN: r73756
2003-11-20 00:52:48 -08:00
Kelley Cook 2b49e0aaff arc-protos.h: Update to C90 prototypes.
2003-11-19  Kelley Cook  <kcook@gcc.gnu.org>

	* config/arc/arc-protos.h: Update to C90 prototypes.
	* config/arc/arc.c: Likewise.
	* config/arc/initfini.c: Likewise.

From-SVN: r73753
2003-11-20 03:35:57 +00:00
Jeff Sturm c2a141a0f3 re PR rtl-optimization/13024 (gcj can't build current rhug)
Fix PR java/13024.
* except.c (prepare_eh_table_type): Allocate variable-sized
buffer `buf' with alloca.

From-SVN: r73752
2003-11-20 03:34:59 +00:00
Mark Mitchell 6df5a5c72a cp-demangle.c (demangle_type): Correct thinko in substitution processing.
* cp-demangle.c (demangle_type): Correct thinko in substitution
	processing.

From-SVN: r73751
2003-11-20 01:48:41 +00:00
Andreas Krebbel 3d4f0dab09 stmt.c (expand_goto): Memory clobbers added.
2003-11-19  Andreas Krebbel  <krebbel1@de.ibm.com>

	* stmt.c (expand_goto): Memory clobbers added.

From-SVN: r73749
2003-11-20 00:28:39 +00:00
Andreas Krebbel b04a1b3b0c reload.c (find_reloads): Added missing type casts.
2003-11-19  Andreas Krebbel  <krebbel1@de.ibm.com>

	* reload.c (find_reloads): Added missing type casts.

From-SVN: r73748
2003-11-20 00:18:46 +00:00
GCC Administrator fd21a1eb28 Daily bump.
From-SVN: r73746
2003-11-20 00:16:08 +00:00
James E Wilson f2d89bc90c * combine.c (sets_function_arg_p): Delete unused function.
From-SVN: r73744
2003-11-19 16:10:27 -08:00
Eric Christopher 1f663989d2 reload1.c (reload): Revert 2 previous checkins.
2003-11-19  Eric Christopher  <echristo@redhat.com>

        * reload1.c (reload): Revert 2 previous checkins.

From-SVN: r73742
2003-11-19 20:01:10 +00:00
Eric Christopher b0e667aafc reload1.c (reload): Revert 2 previous checkins.
2003-11-19  Eric Christopher  <echristo@redhat.com>

        * reload1.c (reload): Revert 2 previous checkins.

From-SVN: r73741
2003-11-19 19:51:35 +00:00
Nathanael Nerode dd2cc6dc8f cpptrad.c (_cpp_scan_out_logical_line): Improve test for whether directive begins at the beginning of a line.
* cpptrad.c (_cpp_scan_out_logical_line): Improve test for
	whether directive begins at the beginning of a line.

	(testsuite)
	* gcc.dg/cpp/trad/xwin1.c: New test case.

From-SVN: r73740
2003-11-19 18:48:53 +00:00
Richard Sandiford 09c5572008 * config/frv/frv.c (frv_init_libfuncs): Correct ufix_optab entries.
From-SVN: r73739
2003-11-19 16:15:34 +00:00
Gerald Pfeifer 4550b19eb2 install.texi (Specific): Remove information on old versions of glibc versus old versions of GCC.
* doc/install.texi (Specific): Remove information on old versions
	of glibc versus old versions of GCC.

From-SVN: r73738
2003-11-19 16:13:44 +00:00
Arnaud Charlet e9b926d1cc * Makefile.tpl (EXTRA_GCC_FLAGS): Pass BOOT_ADAFLAGS.
From-SVN: r73736
2003-11-19 14:28:51 +01:00
Guilhem Lavaux c618b5f802 [multiple changes]
2003-11-19  Guilhem Lavaux <guilhem@kaffe.org>
	    Jim Pick  <jim@kaffe.org>

	* java/text/DecimalFormat.java (getCurrency, setCurrency): New
	methods.

2003-11-19  Guilhem Lavaux  <guilhem@kaffe.org>

	* java/text/DecimalFormatSymbols.java (getCurrency,
	setCurrency): New methods.

Co-Authored-By: Jim Pick <jim@kaffe.org>

From-SVN: r73735
2003-11-19 12:06:38 +00:00
Sascha Brawer b6b8f69047 FlatteningPathIterator.java: Entirely re-written.
2003-11-19  Sascha Brawer  <brawer@dandelis.ch>

	* java/awt/geom/FlatteningPathIterator.java: Entirely re-written.
	* java/awt/geom/doc-files/FlatteningPathIterator-1.html:
	Describe how the implementation works.

From-SVN: r73734
2003-11-19 12:02:11 +00:00
Paolo Carlini 1f33554abb codecvt_members.cc (do_out): If we can upper bound the total number of external chars to something smaller...
2003-11-19  Paolo Carlini  <pcarlini@suse.de>

	* config/locale/gnu/codecvt_members.cc (do_out): If
	we can upper bound the total number of external chars
	to something smaller than __to_end - __to, avoid the
	temporary buffer, the memcopy and simplify the loop.
	* config/locale/generic/codecvt_members.cc (do_out):
	Likewise.

From-SVN: r73733
2003-11-19 11:38:40 +00:00
Michael Koch edfe1ac771 2003-11-19 Michael Koch <konqueror@gmx.de>
* java/net/Socket.java
	(implCreated): New variable that indicates created impl.
	(getImpl): New method.
	(toString): Return more SUN compliant string representation.
	(various): Use getImpl() instead of impl.

From-SVN: r73732
2003-11-19 08:34:21 +00:00
Richard Sandiford 90db942b27 emit-rtl.c (gen_lowpart): Don't force MEMs into a register unless the register lowpart is a...
* emit-rtl.c (gen_lowpart): Don't force MEMs into a register unless
	the register lowpart is a TRULY_NOOP_TRUNCATION.

From-SVN: r73731
2003-11-19 08:23:43 +00:00
Richard Henderson d4c32b6fca i386.c (print_reg): Handle QI and HI modes for non Q regs.
* config/i386/i386.c (print_reg): Handle QI and HI modes for
        non Q regs.

From-SVN: r73730
2003-11-18 23:59:08 -08:00
Andreas Tobler 43d8d958ce libtool.m4: Sync darwin bits from libtool cvs to build a gcc with shared/dylibed libraries.
2003-11-19  Andreas Tobler  <a.tobler@schweiz.ch>

	* libtool.m4: Sync darwin bits from libtool cvs to build a gcc with
	shared/dylibed libraries.
	* ltmain.sh: Likewise.
	* ltcf-c.sh: Likewise, disable shared library build for OS-X < 10.3.
	* ltcf-cxx.sh: Likewise.
	* ltcf-gcj.sh: Likewise.
	* ltconfig: Likewise.

From-SVN: r73729
2003-11-19 06:29:32 +01:00
Andreas Tobler f7a75b82d2 config.gcc (powerpc-*-darwin*): Add libgcc build specification file.
2003-11-19  Andreas Tobler  <a.tobler@schweiz.ch>

	* config/config.gcc (powerpc-*-darwin*): Add libgcc build
	specification file.
	* config/t-slibgcc-darwin: New file, libgcc build specification.
	* config/t-darwin: Add libgcc2 flag -fPIC.
	* config/rs6000/t-darwin: Multilib matches float.
	* libgcc-darwin.ver: New file, contains libgcc symbols.

From-SVN: r73728
2003-11-19 06:17:15 +01:00
Andreas Tobler 5153e857f7 compat.exp: Add DYLD_LIBRARY_PATH for darwin.
2003-11-19  Andreas Tobler  <a.tobler@schweiz.ch>

	* g++.dg/compat/compat.exp: Add DYLD_LIBRARY_PATH for darwin.
	* lib/g77.exp: Likewise.
	* lib/objc.exp: Likewise.
	* lib/g++.exp: Likewise, add -multiply_defined suppress flag
	for darwin.

From-SVN: r73727
2003-11-19 05:58:34 +01:00
Andreas Tobler 70d8f2a1b2 libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
2003-11-19  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
	Add -lgcc_s to additional flags.

From-SVN: r73726
2003-11-19 05:55:32 +01:00
Andreas Tobler d6fcadb293 libjava.exp: Add DYLD_LIBRARY_PATH for darwin.
2003-11-19  Andreas Tobler  <a.tobler@schweiz.ch>

	* lib/libjava.exp: Add DYLD_LIBRARY_PATH for darwin. Look for
	the right libgcc. Add -multiply_defined suppress and -bind_at_load
	flags.

From-SVN: r73725
2003-11-19 05:53:29 +01:00
Andreas Tobler 90635952d1 libstdc++.exp: Add DYLD_LIBRARY_PATH for darwin.
2003-11-19  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/lib/libstdc++.exp: Add DYLD_LIBRARY_PATH for darwin.
	* testsuite/libstdc++-dg/normal.exp: Add -multiply_defined suppress
	flag.

From-SVN: r73724
2003-11-19 05:51:18 +01:00
Ian Lance Taylor 820555e6f9 cp-demangle.c (demangle_operator_name): Remove space before "sizeof".
* cp-demangle.c (demangle_operator_name): Remove space before
	"sizeof".
	(demangle_type_ptr): Put qualifiers in the right place.  Handle
	qualifiers in pointer to member specially.
	(demangle_type): Handle qualifiers for pointer or reference
	specially.  Handle function type.
	(demangle_local_name): Save and restore caret around demangling of
	initial encoding.

From-SVN: r73723
2003-11-19 04:06:50 +00:00
Tom Tromey e2534315a1 re PR libgcj/13026 (libgcj verifier failure)
PR libgcj/13026:
	* verify.cc (state::copy): Only set local_changed if we're in a
	subroutine.  Correctly copy local variables which were modified
	by the subroutine.
	(push_jump_merge): Added more debugging output.

From-SVN: r73722
2003-11-19 03:09:30 +00:00
Nathanael Nerode e2657a6707 * config/ns32k/ns32k.h: Remove obsolete comment.
From-SVN: r73720
2003-11-19 01:06:50 +00:00
GCC Administrator 9a95dbe435 Daily bump.
From-SVN: r73718
2003-11-19 00:16:10 +00:00
Jonathan Wakely bc225f98dd configopts.html, [...]: Add <link> tags.
2003-11-18  Jonathan Wakely  <redi@gcc.gnu.org>

	* docs/html/configopts.html, docs/html/debug.html,
	docs/html/documentation.html, docs/html/explanations.html,
	docs/html/install.html, docs/html/17_intro/contribute.html,
	docs/html/17_intro/howto.html, docs/html/17_intro/license.html,
	docs/html/18_support/howto.html, docs/html/19_diagnostics/howto.html,
	docs/html/20_util/howto.html, docs/html/21_strings/howto.html,
	docs/html/22_locale/codecvt.html, docs/html/22_locale/ctype.html,
	docs/html/22_locale/howto.html, docs/html/22_locale/locale.html,
	docs/html/22_locale/messages.html, docs/html/23_containers/howto.html,
	docs/html/24_iterators/howto.html, docs/html/25_algorithms/howto.html,
	docs/html/26_numerics/howto.html, docs/html/27_io/howto.html,
	docs/html/ext/howto.html, docs/html/ext/sgiexts.html: Add <link> tags.

From-SVN: r73712
2003-11-18 20:56:12 +00:00
Ian Lance Taylor c4328d32dd test-demangle.c (main): Don't pass DMGL_VERBOSE to cplus_demangle.
* testsuite/test-demangle.c (main): Don't pass DMGL_VERBOSE to
	cplus_demangle.

From-SVN: r73709
2003-11-18 18:29:30 +00:00
Ian Lance Taylor a9b571f241 * testsuite/Makefile.in (test-demangle): Depend upon libiberty.a.
From-SVN: r73708
2003-11-18 18:29:02 +00:00
Tom Tromey 6c363de7ea jni.cc (_Jv_JNI_GetStringUTFChars): Fail gracefully if string is null.
* jni.cc (_Jv_JNI_GetStringUTFChars): Fail gracefully if string
	is null.

From-SVN: r73707
2003-11-18 17:56:33 +00:00
Roger Sayle b9c5315018 re PR middle-end/11821 (Operator implementation as a library call fails with constants)
PR middle-end/11821
	* config/arm/arm.c (arm_rtx_costs_1): Improve estimate of the code
	size for calls to libgcc's div & mod subroutines when using -Os.

From-SVN: r73706
2003-11-18 17:28:02 +00:00
Kriang Lerdsuwanakij c44e68a5f7 re PR c++/12932 (ICE with use of ptr-to-function as template arg)
PR c++/12932
	* class.c (currently_open_derived_class): Check if
	current_class_type is NULL_TREE.
	* semantics.c (finish_call_expr): Check if
	currently_open_derived_class returns NULL_TREE.
	* cp-tree.h (DERIVED_FROM_P): Add parenthesis around PARENT
	parameter.

	* g++.dg/template/static5.C: New test.

From-SVN: r73705
2003-11-18 15:54:22 +00:00
Jan Hubicka df964a183f * cgraph.c (change_decl_assembler_name): Avoid bogus warnings.
From-SVN: r73703
2003-11-18 14:52:28 +00:00
Marc Espie 457ef7975c sysv4.h: OpenBSD hooks.
2003-11-18  Marc Espie  <espie@openbsd.org>

	* config/rs6000/sysv4.h: OpenBSD hooks.

From-SVN: r73702
2003-11-18 12:56:44 +00:00
Joseph Myers fc6d6d62cf * gcc.dg/nested-func-1.c: New test.
From-SVN: r73701
2003-11-18 12:04:04 +00:00
Arnaud Charlet 0d77ab84bb [multiple changes]
2003-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".

	* decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
	TYPE_PRECISION directly from esize.

2003-11-18  Thomas Quinot  <quinot@act-europe.fr>

	* cstreams.c:
	Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.

	* init.c: Initialization routines for FreeBSD

	* link.c: Link info for FreeBSD

	* sysdep.c: Add the case of FreeBSD

From-SVN: r73700
2003-11-18 11:00:43 +01:00
Richard Henderson beb0c2e0ca expr.c (expand_expr): Don't look through constant arrays if they don't bind locally.
* expr.c (expand_expr): Don't look through constant arrays if
        they don't bind locally.

From-SVN: r73698
2003-11-18 00:37:15 -08:00
Paolo Carlini 2934246345 re PR libstdc++/12868 (basic_filebuf::imbue fails too easily)
2003-11-18  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/12868
	* include/bits/fstream.tcc (imbue): For encodings != -1 it's
	always ok to imbue a new locale, provided seekoff(0, cur, ...)
	doesn't fail, of course.
	(underflow): In order for the above to work, deal gracefully
	with _M_codecvt->in returning codecvt_base::error while
	(__ilen = __iend - this->eback()) > 0: it just means __ilen
	correctly converted internal characters before an error.
	* testsuite/27_io/basic_filebuf/imbue/wchar_t/12868.cc: New.

From-SVN: r73697
2003-11-18 08:21:38 +00:00
Andreas Tobler 0ec5fef218 jar.exp: Cleanup files and reset CLASSPATH.
2003-11-18  Andreas Tobler  <a.tobler@schweiz.ch>

	* libjava.jar/jar.exp: Cleanup files and reset CLASSPATH.

From-SVN: r73696
2003-11-18 08:17:01 +01:00
Jeff Sturm 217ec3ae92 * libjava.compile/PR12857.java: New test case.
From-SVN: r73692
2003-11-18 04:19:24 +00:00
Jeff Sturm b8ca854ad1 re PR java/12857 (Illegal method modifier when loading a generated .class)
Fix PR java/12857.

decl.c (java_init_decl_processing): Don't initialize
class_not_found_type_node, no_class_def_found_type_node.

java-tree.h (JTI_CLASS_NOT_FOUND_TYPE_NODE,
JTI_NO_CLASS_DEF_FOUND_TYPE_NODE): Remove from java_tree_index.
(class_not_found_type_node, no_class_def_found_type_node):
Don't define.

parse.y (build_dot_class_method_invocation): Add this_class
argument.  Qualify method invocations to a different class.
(create_new_parser_context): Initialize saved_data_ctx to 0.
(java_parser_context_save_global): Initialize saved_data_ctx to 1.
(build_dot_class_method): Don't load classes.  Register
incomplete types.
(build_incomplete_class_ref): Special cases for interfaces
and inner classes.  Move build_dot_class_method call to here...
(patch_incomplete_class_ref): ...from here.  Pass current_class
to build_dot_class_method_invocation.
(build_assertion): Pass class_type to
build_dot_class_method_invocation.
(encapsulate_with_try_catch): Handle EXPR_WITH_FILE_LOCATION node.

From-SVN: r73691
2003-11-18 03:57:08 +00:00
Jeff Sturm a78e4fa764 re PR java/12739 (gcj emits dead bytecode)
Fix PR java/12739.
* java-tree.h (BLOCK_EMPTY_P): Define.
* parse.y (java_complete_lhs): Check for empty blocks
in TRY_FINALLY_EXPR case.

From-SVN: r73690
2003-11-18 03:42:30 +00:00
Richard Kenner e44846d6cc expr.c (convert_move): Use GET_MODE_PRECISION instead of bitsize when seeing if truncation or extension.
* expr.c (convert_move): Use GET_MODE_PRECISION instead of bitsize
	when seeing if truncation or extension.

From-SVN: r73689
2003-11-17 21:05:29 -05:00
Graydon Hoare ccdf1a46ee BasicDefaults.java: Rewrite to spec.
2003-11-17  Graydon Hoare  <graydon@redhat.com>

	* javax/swing/plaf/basic/BasicDefaults.java: Rewrite to spec.
	* javax/swing/UIDefaults.java: Modify to reflect rewrite.

From-SVN: r73688
2003-11-18 01:36:56 +00:00