Commit Graph

70382 Commits

Author SHA1 Message Date
James E Wilson 90e0c734fa Fix misoptimization of mask and shift.
PR target/21684
* config/mcore/mcore.h (SHIFT_COUNT_TRUNCATED): Define to 0.

Co-Authored-By: Kevin Winchester <winchester@amirix.com>

From-SVN: r103228
2005-08-17 14:43:49 -07:00
Tom Tromey 97b51fd08e class.c (make_class_data): Always emit JV_STATE_PRELOADING for class' initial state.
gcc/java:
	* class.c (make_class_data): Always emit JV_STATE_PRELOADING for
	class' initial state.
libjava:
	* java/lang/Class.h (_Jv_IsBinaryCompatibilityABI): Declare as
	friend.
	* include/jvm.h (_Jv_IsBinaryCompatibilityABI): New function.
	* testsuite/libjava.lang/bclink.java: New file.
	* testsuite/libjava.lang/bclink.out: New file.
	* link.cc (print_class_loaded): Changed ABI test to look at
	various _syms fields.

From-SVN: r103225
2005-08-17 20:44:10 +00:00
Uros Bizjak 87bb8864f6 re PR target/23268 (ICE using math functions log & rint, -ffast-math, -O1 (,2,3,s))
PR target/23268
	* config/i386/i386.md ("*fist<mode>2_1"): New pattern.
	("lrint<mode>2"): Change expander to use "*fist<mode>2_1" pattern.

From-SVN: r103224
2005-08-17 13:44:01 -07:00
Joern Rennecke c26104e494 sh.c (sh_gimplify_va_arg_expr): Don't substitute a RECORD_TYPE record with the type of its only member if...
* sh.c (sh_gimplify_va_arg_expr): Don't substitute a RECORD_TYPE
	record with the type of its only member if the modes don't match.

From-SVN: r103223
2005-08-17 20:44:24 +01:00
J"orn Rennecke dd0ae678ee * varasm.c (decode_reg_name): Skip empty aqdditional register names.
From-SVN: r103222
2005-08-17 20:25:12 +01:00
Mark Kettenis e89b6c1c1e floatformat.c (floatformat_always_valid): Change type of last argument to `void *'.
[libiberty]
* floatformat.c (floatformat_always_valid): Change type of last
argument to `void *'.
(floatformat_i387_ext_is_valid): Likewise.
(floatformat_to_double): Change type of second argument to `const
void *'.
(floatformat_from_double): Change type of last argument to `void
*'.
(floatformat_is_valid): Change type of last argument to `const
void *'.
(ieee_test): Remove redundant casts.
[include]
* floatformat.h (struct floatformat): Change type of large
argument for is_valid member to `const void *'.
(floatformat_to_double): Change type of second argument to `const
void *'.
(floatformat_from_double): Change type of last argument to `void
*'.
(floatformat_is_valid): Change type of last argument to `const
void *'.

From-SVN: r103218
2005-08-17 13:30:47 -04:00
Christian Groessler 0f029d398b Makefile.tpl: (USUAL_CC_FOR_TARGET): Add missing trailing slash.
2005-08-17  Christian Groessler  <chris@groessler.org>

	* Makefile.tpl: (USUAL_CC_FOR_TARGET): Add missing trailing slash.
	* Makefile.in: Regenerate.

From-SVN: r103216
2005-08-17 15:59:29 +00:00
Zdenek Dvorak d28cbb0767 tree-ssa-loop-im.c (MAX_LSM_NAME_LENGTH, [...]): New.
* tree-ssa-loop-im.c (MAX_LSM_NAME_LENGTH, lsm_tmp_name,
	lsm_tmp_name_length): New.
	(lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): New functions.
	(schedule_sm): Use get_lsm_tmp_name instead of "lsm_tmp".

From-SVN: r103215
2005-08-17 14:00:52 +00:00
Ulrich Weigand 39bd07e86e Added missing Changelog entry.
From-SVN: r103212
2005-08-17 11:27:03 +00:00
Ulrich Weigand ec24698eaa config.gcc: Added z9-109 switch.
2005-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
	    Andreas Krebbel  <krebbel1@de.ibm.com>

	* config.gcc: Added z9-109 switch.
	* config/s390/2084.md ("x_int", "x_agen", "x_lr", "x_la", "x_larl",
	"x_load", "x_store", "x_branch", "x_call", "x_mul_hi", "x_mul_sidi",
	"x_div", "x_sem", "x_cs", "x_vs", "x_stm", "x_lm", "x_other",
	"x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
	"x_floadsf", "x_fstore_df", "x_fstoresf", "x_ftoi", "x_itof"): Enable
	for "z9_109" cpu attribute.
	* config/s390/s390.c (z9_109_cost): New processor cost structure.
	(CONST_OK_FOR_Os, CONST_OK_FOR_Op, CONST_OK_FOR_On): New macros.
	(s390_handle_arch_option): Added z9-109 switch.
	(override_options): Set respective cost function for z9-109.
	(s390_const_ok_for_constraint_p): New constraints Os, Op, On.
	(legitimate_reload_constant_p): Accept extended immediates.
	(print_operand): Three new output modifiers added: k, m and o.
	(s390_adjust_priority, s390_issue_rate): Handle Z9_109 like Z990.
	(s390_output_mi_thunk): Use extended immediate when possible.
	* config/s390/s390.h (processor_flags): Added PF_EXTIMM.
	(TARGET_CPU_EXTIMM, TARGET_EXTIMM): New macros.
	(CONSTRAINT_LEN): Added length of O constraint.
	(CLZ_DEFINED_VALUE_AT_ZERO): Definition added.
	* config/s390/s390.md ("cpu"): New value z9_109 added.
	("*tstdi_extimm", "*tstdi_ccconly_extimm", "*tstsi_extimm",
	"*tstsi_cconly_extimm", "*movdi_64extimm", "*extendhidi2_extimm",
	"*extendqidi2_extimm", "*extendhisi2_extimm", "*extendqisi2_extimm",
	"*zero_extend<mode>si2_extimm", "*anddi3_extimm", "*iordi3_extimm",
	"*xordi3_extimm", "clzdi2", "clztidi2"): New patterns.
	("*tstdi", "*tstsi", "*movdi_64", "*extendhisi2", "*extendqisi2",
	"*zero_extend<mode>si2_64", "zero_extendqihi2", "*zero_extendqihi2_64",
	"*anddi3", "*iordi3", "*xordi3"): Disable for TARGET_EXTIMM.
	("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs", "*cmpsi_ccs", "*cmpdi_ccu",
	"*cmpsi_ccu", "*movsi_zarch", "*adddi3_imm_cc", "*adddi3_carry1_cc",
	"*adddi3_carry2_cc", "*adddi3_cc", "*adddi3_64", "*addsi3_imm_cc",
	"*addsi3_carry1_cc", "*addsi3_carry2_cc", "*addsi3_cc", "addsi3",
	"*andsi3_cc", "*andsi3_cconly", "*andsi3_zarch", "*iorsi3_cc",
	"*iorsi3_cconly", "*iorsi3_zarch", "*xorsi3_cc", "*xorsi3_cconly",
	"*xorsi3", "*xorhi3", "*xorqi3"): Added instruction using extended
	immediates.
	("extend<mode>di2", "extend<mode>si2", "zero_extend<mode>di2",
	"zero_extend<mode>si2"): Allow memory operands and don't manually emit
	insns for TARGET_EXTIMM.

From-SVN: r103211
2005-08-17 11:11:05 +00:00
Andreas Krebbel 33d2e547c2 20020926-1.c: Added "-mesa" to dg-options.
2005-08-17  Andreas Krebbel  <krebbel1@de.ibm.com>

	* testsuite/gcc.dg/20020926-1.c: Added "-mesa" to dg-options.

From-SVN: r103210
2005-08-17 08:55:30 +00:00
Nick Clifton e5eb9a5226 stormy16.c (xstormy16_encode_section_info): Call default_encode_section_info.
* config/stormy16/stormy16.c (xstormy16_encode_section_info): Call
default_encode_section_info.

From-SVN: r103207
2005-08-17 08:11:51 +00:00
Steven Bosscher a318e3acf8 re PR tree-optimization/21574 (store_ccp doesn't see through a store.)
PR tree-optimization/21574
	* tree-ssa-ccp.c (likely_value): If the right hand side is a
	constant, return CONSTANT.
	(ccp_lattice_meet): Use operand_equal_p instead of simple_cst_equal.
	(ccp_fold, visit_assignment): Likewise.
	(evaluate_stmt): Handle UNDEFINED and UNKNOWN_VAL the same way.

From-SVN: r103206
2005-08-17 07:27:47 +00:00
Andreas Tobler a7edd66b06 jacks.xfail: Remove 15.21-assoc-7, 15.21-assoc-8, 15.21-equal-3, 15.28-string-11.
2005-08-17  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/libjava.jacks/jacks.xfail: Remove 15.21-assoc-7,
	15.21-assoc-8, 15.21-equal-3, 15.28-string-11.

From-SVN: r103205
2005-08-17 08:53:01 +02:00
James A. Morrison 00d1b1d675 c-typeck.c (build_function_call): Call fold_buildN_initializer or fold_buildN instead of buildN then...
2005-08-16  James A. Morrison  <phython@gcc.gnu.org>

        * c-typeck.c (build_function_call): Call fold_buildN_initializer or
        fold_buildN instead of buildN then fold_initializer or fold.
        (build_unary_op): Likewise.
        (build_binary_op): Likewise.
        * fold-const.c (fold_initializer): Remove.
        (fold_build1_initializer): New function.
        (fold_build2_initializer): New function.
        (fold_build3_initializer): New function.
        * tree.h (fold_initializer): Remove.
        (fold_build1_initializer): New function.
        (fold_build2_initializer): New function.
        (fold_build3_initializer): New function.

From-SVN: r103201
2005-08-17 04:00:21 +00:00
James A. Morrison f457cf402e fold-const.c (optimize_bit_field_compare): Remove extra fold call.
2005-08-16  James A. Morrison  <phython@gcc.gnu.org>

        * fold-const.c (optimize_bit_field_compare): Remove extra fold call.
        (try_move_mult_to_index): Call fold_build2 instead of build2.
        (fold_binary): Don't call fold after calls to try_move_mult_to_index.
        * tree-ssa-loop-niter.c (inverse): Call int_const_binop instead of
        fold_binary_to_constant.
        (infer_loop_bounds_from_undefined): Call fold_build2 instead of
        fold (build.
        * tree-data-ref.c (tree_fold_divides_p): Use tree_int_cst_equal to
        check if A == gcd (A, B).  Remove TYPE argument.
        (analyze_offset) Use fold_build2 instead of fold (build.
        (create_data_ref): Likewise.
        (analyze_siv_subscript_cst_affine): Update calls to tree_fold_divides_p.        * tree-ssa-ccp.c (widen_bitfield): Call fold_build2 instead of build2
        then fold.

From-SVN: r103200
2005-08-17 03:56:20 +00:00
Kelley Cook 0cbe2a6862 strverscmp.c: Update FSF address.
2005-08-17  Kelley Cook  <kcook@gcc.gnu.org>

	* strverscmp.c: Update FSF address.
	* testsuite/Makefile.in: Likewise.
	* testsuite/test-demangle.c: Likewise.
	* testsuite/test-pexecute.c: Likewise.

From-SVN: r103199
2005-08-17 03:31:04 +00:00
Kelley Cook cf398b1e1c ALL: Update FSF address.
2005-08-17  Kelley Cook  <kcook@gcc.gnu.org>

	* ALL: Update FSF address.

From-SVN: r103198
2005-08-17 03:26:45 +00:00
Kelley Cook f9d09c4359 All files: Update FSF address.
2005-08-17  Kelley Cook  <kcook@gcc.gnu.org>

	* All files: Update FSF address.

From-SVN: r103197
2005-08-17 03:21:42 +00:00
Kelley Cook 4c617d120c crtfastmath.c, [...]: Update FSF address.
2005-08-17  Kelley Cook  <kcook@gcc.gnu.org>

	* config/arm/unaligned-funcs.c,config/i386/crtfastmath.c,
	ipa-cp.c,ipa-prop.c,ipa-prop.h: Update FSF address.

From-SVN: r103196
2005-08-17 03:07:06 +00:00
James E Wilson 1f28a07aa6 Fix stupidity.
* gcc.dg/large-size-array.c (DIM): Use USHRT_MAX not USHORT_MAX.

From-SVN: r103195
2005-08-16 20:00:13 -07:00
Kelley Cook fe2ae685a1 All files: Update FSF address.
2005-08-17  Kelley Cook  <kcook@gcc.gnu.org>

	* All files: Update FSF address.

From-SVN: r103194
2005-08-17 02:49:08 +00:00
Kelley Cook 83f517994d All files: Update FSF address.
2005-08-17  Kelley Cook  <kcook@gcc.gnu.org>

	* All files: Update FSF address.

From-SVN: r103192
2005-08-17 02:28:44 +00:00
Andrew Pinski d06526b797 re PR tree-optimization/23402 (error: statement makes a memory store, but has no V_MAY_DEFS nor V_MUST_DEFS)
2005-08-16  Andrew Pinski  <pinskia@physics.uc.edu>

        PR tree-opt/23402
        * gcc.c-torture/compile/zero-strct-3.c: New test.
        * gcc.c-torture/compile/zero-strct-4.c: New test.

2005-08-16  Andrew Pinski  <pinskia@physics.uc.edu>

        PR tree-opt/23402
        * gimplify.c (zero_sized_type): New function.
        (gimplify_modify_expr_rhs): If we have a zero sized type,
        replace the statement with an empty statement.

From-SVN: r103191
2005-08-16 18:55:05 -07:00
H.J. Lu e9e68ae334 crtfastmath.c (set_fast_math): Add "=m" for fxsave.
2005-08-16  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/crtfastmath.c (set_fast_math): Add "=m" for
	fxsave.

From-SVN: r103189
2005-08-16 17:32:17 -07:00
GCC Administrator f34e103d2c Daily bump.
[[Split portion of a mixed commit.]]

From-SVN: r103186.2
2005-08-17 00:17:02 +00:00
Ian Lance Taylor e374d5c9a4 * doc/tm.texi (Label Output): Correct typo.
From-SVN: r103182
2005-08-16 22:29:09 +00:00
Steven Bosscher f2dd440f45 re PR target/23376 (ICE on GCC 4.x with -O1 -funroll-loops -fvariable-expansion-in-unroller)
PR target/23376
	* loop-unroll.c (analyze_insn_to_expand_var): Make sure that
	force_operand will work later on using have_insn_for.

From-SVN: r103181
2005-08-16 22:24:30 +00:00
Volker Reichelt 196f5a8dcd * fold-const.c (tree_expr_nonnegative_p): Regroup cases.
From-SVN: r103178
2005-08-16 22:13:37 +00:00
Ian Lance Taylor cf0efa6a76 re PR c++/23337 (ICE initializing array of vectors in C++)
./	PR c++/23337
	* gimplify.c (gimplify_init_ctor_eval): If we see an element of
	vector type, don't try to construct it element by element.  Add an
	assertion that we use a FIELD_DECL when building a COMPONENT_REF.
testsuite/
	PR c++/23337
	* g++.dg/ext/vector2.C: New.

From-SVN: r103177
2005-08-16 22:07:44 +00:00
Volker Reichelt 3a69437a55 * fold-const.c (fold_ternary): Simplify folding of a CALL_EXPR.
From-SVN: r103176
2005-08-16 22:05:14 +00:00
Thomas Koenig 8e1c3891ce re PR libfortran/23428 (inquire(iolength= ) for complex give incorrect value)
2005-08-16  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/23428
	* gfortran.dg/inquire-complex.f90:  Correct mangled testcase.

From-SVN: r103173
2005-08-16 21:30:32 +00:00
Thomas Koenig 950ad21d34 re PR libfortran/23428 (inquire(iolength= ) for complex give incorrect value)
2005-08-16  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/23428
	* io/transfer.c (iolength_transfer):  Remove __attribute__ ((unused))
	from type.  Return correct length for inquire(iolength=)
	for complex variables.

2005-08-16  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/23428
	* gfortran.dg/inquire-complex.f90:  New test case.

From-SVN: r103168
2005-08-16 20:26:04 +00:00
Ranjit Mathew 17b456229e re PR java/22113 (Buffer overflow in the lexical analyser while reading FP literals)
PR java/22113
	* lex.c (do_java_lex): Define MAX_TOKEN_LEN. Avoid overflowing
	`literal_token' for large numeric input tokens.

From-SVN: r103167
2005-08-16 18:46:18 +00:00
Geoffrey Keating 17ccdd2c51 invoke.texi (Precompiled Headers): Document some more options which are known to be safe.
* doc/invoke.texi (Precompiled Headers): Document some more options
	which are known to be safe.

From-SVN: r103166
2005-08-16 18:43:10 +00:00
Ranjit Mathew 8a14e6e1ac More testsuite adjustments for PR java/19870.
* testsuite/libjava.lang/PR19870_2.java: New testcase.
	* testsuite/libjava.lang/PR19870_2.out: Expected output for the
	new testcase.
	* testsuite/libjava.jacks/jacks.xfail: Remove
	8.5.2-non-static-member-usage-2 and add 15.12.3-explicit-constructor-9.

From-SVN: r103165
2005-08-16 18:32:14 +00:00
James E Wilson 355a9e437d Emit an error for too large arrays instead of an ICE.
PR tree-optimization/21105
* c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
TREE_OVERFLOW check.
* gcc.dg/large-size-array.c: New.

From-SVN: r103164
2005-08-16 11:23:58 -07:00
Ranjit Mathew 3881a11b4a re PR java/19870 (gcj -C doesn't generate accessors for private members across nested class boundaries)
PR java/19870
	* parse.y (nested_field_access_p): Rename to nested_member_access_p
	and expand to handle method accesses across nested classes.
	(build_outer_method_access_method): Rename to
	build_nested_method_access_method.  Minor adjustments to comments.
	(resolve_expression_name): Use the newly-renamed
	nested_member_access_p method.
	(resolve_qualified_expression_name): Likewise.
	(patch_method_invocation): Also consider static methods for access
	method generation.  Minor adjustments to comments.
	(maybe_use_access_method): Use the more general
	nested_memeber_access_p to determine access across nested class
	boundaries.  Allow THIS_ARG to be NULL (for static methods).

From-SVN: r103163
2005-08-16 18:22:31 +00:00
Tom Tromey 6ab9469a15 * gnu/xml/xpath/XPathParser.y: Removed.
From-SVN: r103162
2005-08-16 17:22:57 +00:00
Tom Tromey 33173fd40f re PR java/23300 (DECL_FIELD_OFFSET == 0 versus build_field_ref)
PR java/23300.
	* expr.c (build_field_ref): Don't generate otable reference when
	DECL_FIELD_OFFSET is 0.
	* class.c (maybe_layout_super_class): Pass outer class to
	do_resolve_class.

From-SVN: r103160
2005-08-16 16:06:43 +00:00
David Edelsohn ce45ef468c rs6000.md (ltu<mode>): Convert to mode macro.
* config/rs6000/rs6000.md (ltu<mode>): Convert to mode macro.
        (neg_ltu<mode>): Same.
        (gtu<mode>): Same.
        (neg_gtu<mode>): Same.

From-SVN: r103159
2005-08-16 11:13:40 -04:00
Dorit Nuzman d110b74089 vect-40: Use aligned arrays instead of arrays to aligned type.
* gcc.dg/vect/vect-40: Use aligned arrays instead of arrays to aligned
        type.
        * gcc.dg/vect/vect-41: Likewise.
        * gcc.dg/vect/vect-42: Likewise.
        * gcc.dg/vect/vect-43: Likewise.
        * gcc.dg/vect/vect-44: Likewise.
        * gcc.dg/vect/vect-46: Likewise.
        * gcc.dg/vect/vect-47: Likewise.
        * gcc.dg/vect/vect-48: Likewise.
        * gcc.dg/vect/vect-52: Likewise.
        * gcc.dg/vect/vect-53: Likewise.
        * gcc.dg/vect/vect-54: Likewise.
        * gcc.dg/vect/vect-55: Likewise.
        * gcc.dg/vect/vect-56: Likewise.
        * gcc.dg/vect/vect-57: Likewise.
        * gcc.dg/vect/vect-58: Likewise.
        * gcc.dg/vect/vect-59: Likewise.
        * gcc.dg/vect/vect-60: Likewise.
        * gcc.dg/vect/vect-61: Likewise.
        * gcc.dg/vect/vect-85: Likewise.
        * gcc.dg/vect/vect-87: Likewise.
        * gcc.dg/vect/vect-88: Likewise.
        * gcc.dg/vect/vect-93.c: Likewise.
        * gcc.dg/vect/vect-74: Likewise, and also added documentation.
        * gcc.dg/vect/vect-75: Likewise.
        * gcc.dg/vect/vect-76: Likewise.
        * gcc.dg/vect/vect-77: Likewise.
        * gcc.dg/vect/vect-78: Likewise.
        * gcc.dg/vect/vect-80: Likewise.
        * gcc.dg/vect/vect-35: Likewise, and also check that the test wasn't
        vectorized for the expected reason, rather than checking how alignment
        was handled.
        * gcc.dg/vect/vect-92.c: Use aligned arrays instead of arrays to aligned
        type and also instead of aligned pointers. Added documentation.

From-SVN: r103158
2005-08-16 15:02:39 +00:00
Feng Wang 20fe2233a7 [multiple changes]
2004-08-16  Huang Chun  <chunhuang73@hotmail.com>

	* trans-expr.c (gfc_conv_power_op): Evaluate the expression before
	expand.

2005-08-16  Feng Wang  <fengwang@nudt.edu.cn>

	* gfortran.dg/power.f90: New test.

From-SVN: r103155
2005-08-16 12:58:46 +00:00
Volker Reichelt 543e2cc3e4 builtins.c (expand_builtin_strcat): Remove superfluous call to fold.
* builtins.c (expand_builtin_strcat): Remove superfluous call to fold.
	(fold_builtin_isdigit): Use fold_buildN.
	(build_function_call_expr): Likewise.
	* c-typeck.c (c_finish_loop): Likewise.

From-SVN: r103154
2005-08-16 12:14:10 +00:00
J"orn Rennecke 28f52a4d8e re PR middle-end/20396 (TRULY_NOOP_TRUNCATION ignored)
2005-08-16  J"orn Rennecke <joern.rennecke@st.com>
            Richard Shann <rshann@superh.com>

	PR middle-end/20396:
	* optabs.c (expand_binop): Take TRULY_NOOP_TRUNCATION into account.

Co-Authored-By: Richard Shann <rshann@superh.com>

From-SVN: r103153
2005-08-16 12:57:07 +01:00
Sebastian Pop 546ad2d9fc * tree-ssa-loop-niter.c (scev_probably_wraps_p): Reword a comment.
From-SVN: r103152
2005-08-16 09:41:33 +00:00
Richard Earnshaw 39c39be09e re PR target/23355 (size optimizer did not eliminateing useless Push and pop instructions at ARM/Thumb machine)
PR target/23355
	* arm.c (thumb_compute_save_reg_mask): Use similar logic to
	arm_compure_save_reg0_reg12_mask to determine when the PIC register
	must be saved.

From-SVN: r103151
2005-08-16 09:27:52 +00:00
Jakub Jelinek 7c83bbb109 re PR rtl-optimization/23299 ("classic" GCSE caused miscompilation)
PR rtl-optimization/23299
	* g++.dg/opt/pr23299.C: New test.

From-SVN: r103148
2005-08-16 10:38:15 +02:00
John David Anglin f60c951c84 re PR middle-end/23369 (build_range_check generates wrong code for funcptr comparison)
PR middle-end/23369
	* fold-const.c (build_range_check): Disable optimization for function
	pointer expressions on targets that require function pointer
	canonicalization.

From-SVN: r103145
2005-08-16 02:20:40 +00:00
Ulrich Weigand 5b5dc47588 simplify-rtx.c (simplify_const_relational_operation): When extracting arguments of a COMPARE, recompute the mode as well.
* simplify-rtx.c (simplify_const_relational_operation): When
	extracting arguments of a COMPARE, recompute the mode as well.

From-SVN: r103143
2005-08-16 02:01:27 +00:00