Mark Mitchell [Wed, 26 Aug 1998 13:55:47 +0000 (13:55 +0000)]
cp-tree.h (finish_enum): Change prototype.
* cp-tree.h (finish_enum): Change prototype.
* decl.c (finish_enum): Use TYPE_VALUES, rather than taking a
VALUES parameter. Don't try to compute mins/maxs if
processing_template_decl.
* parse.y (structsp): Use new calling sequence for finish_enum.
* pt.c (tsubst_enum): Likewise. Take the new type as input.
(lookup_template_class): Remove unused variables. Tweak.
Register enums on instantiation list before substituting
enumeration constants.
(tsubst_decl): Remove unused variables.
(regenerate_decl_from_template): Likewise.
* decl.c (duplicate_decls): Don't obliterate the
DECL_TEMPLATE_INFO for a template if we're not replacing it with
anything.
Jakub Jelinek [Wed, 26 Aug 1998 06:19:46 +0000 (08:19 +0200)]
sparc.c (sparc_override_options): If not TARGET_FPU, turn off TARGET_VIS.
* config/sparc/sparc.c (sparc_override_options): If not
TARGET_FPU, turn off TARGET_VIS.
* config/sparc/sparc.h (TARGET_SWITCHES): Add no-vis.
(LEGITIMATE_CONSTANT_P): Allow SF/DF mode zero when TARGET_VIS.
* config/sparc/sparc.md (movsi_insn): Use fzeros not fzero.
(movdi_insn_sp64): Add VIS fzero alternative.
(clear_sf, clear_df): New VIS patterns.
(movsf, movdf expanders): Allow fp_zero_operand flat out when
TARGET_VIS.
(one_cmpldi2_sp64): Provide new fnot1 VIS alternative.
David S. Miller [Tue, 25 Aug 1998 20:25:02 +0000 (20:25 +0000)]
sparc.c (sparc_absnegfloat_split_legitimate): New function.
* config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): New
function.
* config/sparc/sparc.h: Declare it.
* config/sparc/sparc.md (float abs/neg splits): Use it.
(all other splits): Handle SUBREGs properly where necessary.
(unnamed (1<<x)-1 V8PLUS pattern): Disable for now.
Brendan Kehoe [Tue, 25 Aug 1998 18:52:45 +0000 (18:52 +0000)]
pt.c (tsubst_copy): Only do typename overloading on an IDENTIFIER_NODE that happens to look like a...
* pt.c (tsubst_copy): Only do typename overloading on an
IDENTIFIER_NODE that happens to look like a typename if it actually
has a type for us to use.
avoid problems w/ SGI STL headers that have variables like __opr or __op1
Jeffrey A Law [Tue, 25 Aug 1998 18:50:26 +0000 (18:50 +0000)]
reorg.c (fill_simple_delay_slots): Do not abort if we encounter an insn on the unfilled_slots_list that has no...
* reorg.c (fill_simple_delay_slots): Do not abort if we encounter
an insn on the unfilled_slots_list that has no delay slots.
(fill_eager_delay_slots): Similarly.
Jason Merrill [Tue, 25 Aug 1998 17:17:51 +0000 (17:17 +0000)]
typeck.c (comp_cv_target_types): Split out...
* typeck.c (comp_cv_target_types): Split out...
(comp_target_types): From here. Don't allow cv-qual changes under
a pointer if nptrs == 0. Fix OFFSET_TYPE handling.
(build_ptrmemfunc): Pass 1 to nptrs.
* cvt.c (perform_qualification_conversions): Use comp_ptr_ttypes.
* reload.c (operands_match_p): Handle rtvecs.
* i386.c (legitimate_pic_address_disp_p): New.
(legitimate_address_p): Use it.
(legitimize_pic_address): Use unspecs to represent @GOT and @GOTOFF.
Handle constant pool symbols just like statics.
(emit_pic_move): Use Pmode not SImode for clarity.
(output_pic_addr_const) [SYMBOL_REF]: Remove @GOT and @GOTOFF hacks.
[UNSPEC]: New, handling what we killed above.
[PLUS]: Detect and abort on invalid symbol arithmetic.
* i386.h (CONSTANT_ADDRESS_P): Remove HIGH.
Mark Mitchell [Tue, 25 Aug 1998 12:01:52 +0000 (12:01 +0000)]
alias.c: Include output.h.
* alias.c: Include output.h.
(DIFFERENT_ALIAS_SETS_P): Don't treat alias sets as
different if we're in a varargs function.
* Makefile.in (alias.o): Depend on output.h
Jason Merrill [Tue, 25 Aug 1998 01:48:47 +0000 (01:48 +0000)]
typeck.c (convert_for_assignment): Converting from pm of vbase to derived is an error, not a sorry.
* typeck.c (convert_for_assignment): Converting from pm of vbase
to derived is an error, not a sorry.
* call.c (build_over_call): Use convert_pointer_to_real for 'this'.
* class.c (fixed_type_or_null): Rename from
resolves_to_fixed_type_p. Return the dynamic type of the
expression, if fixed, or null.
(resolves_to_fixed_type_p): Use it. Return 0 if the dynamic type
does not match the static type.
(build_vbase_path): Rename 'alias_this' to 'nonnull'. Use
resolves_to_fixed_type_p again.
David S. Miller [Tue, 25 Aug 1998 00:37:12 +0000 (00:37 +0000)]
loop.c (scan_loop): Allocate some slop to handle pseudos generated by move_movables.
* loop.c (scan_loop): Allocate some slop to handle pseudos
generated by move_movables.
(load_mems_and_recount_loop_regs_set): Honor AVOID_CC_MODE_COPIES
here too.
J"orn Rennecke [Mon, 24 Aug 1998 17:19:55 +0000 (17:19 +0000)]
reload1.c (reload_reg_free_before_p): New argument EQUIV; Changed all callers.
* reload1.c (reload_reg_free_before_p): New argument EQUIV; Changed
all callers. Abort for RELOAD_FOR_INSN. RELOAD_FOR_OUTADDR_ADDR:
conflicts will all RELOAD_FOR_OUTPUT reloads.
* decl.c (start_decl): Remove redundant linkage check.
* typeck.c (c_expand_return): Handle the case that valtype
is wider than the functions return type.
David Edelsohn [Mon, 24 Aug 1998 12:32:03 +0000 (12:32 +0000)]
rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Use TARGET_POWERPC64 when testing LEGITIMATE_INDEXED_ADDRESS_P DFmode and DImode.
* rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Use TARGET_POWERPC64
when testing LEGITIMATE_INDEXED_ADDRESS_P DFmode and DImode.
(LEGITIMIZE_ADDRESS): Use TARGET_POWERPC64 for INDEXED fixup.
* rs6000.c (print_operand, case 'L'): Add UNITS_PER_WORD, not 4.
(print_operand, cases 'O' and 'T'): Fix typos in lossage strings.
* rs6000.md (fix_truncdfsi2_store): Remove %w from non-CONST_INT
operand.
(movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64): Change
'o' to 'm' for GPR variant constraints.
Benjamin Kosnik [Mon, 24 Aug 1998 11:57:04 +0000 (11:57 +0000)]
cp-tree.h: Declare.
h
1998-08-24 Benjamin Kosnik <bkoz@cygnus.com>
* cp-tree.h: Declare.
* pt.c (decl_template_parm_p): New function.
* decl.c (pushdecl): Check decls for redeclaring template parms.
(xref_tag): Make redeclaration an error, print decl.
* decl2.c (grokfield): Check field_decls for redeclaration as well.
Jason Merrill [Mon, 24 Aug 1998 02:00:27 +0000 (22:00 -0400)]
lex.c (real_yylex): Don't warn about long long constants if we're allowing long long.
* lex.c (real_yylex): Don't warn about long long constants if
we're allowing long long.
* decl.c (pushdecl): Use IDENTIFIER_NAMESPACE_VALUE instead of
accessing bindings directly.
* lang-specs.h: Remove __HONOR_STD.
* inc/exception, inc/new, inc/new.h, inc/typeinfo: Likewise.
David S. Miller [Sun, 23 Aug 1998 19:48:11 +0000 (19:48 +0000)]
sparc.c (sparc_emit_set_const32): If outputting a CONST_INT...
* config/sparc/sparc.c (sparc_emit_set_const32): If outputting a
CONST_INT, not a symbolic reference, don't use a HIGH/LO_SUM
sequence, use SET/IOR instead so CSE can see it.
* config/sparc/sparc.md (movhi_const64_special,
movsi_const64_special): New patterns necessitated by that change.
(movhi_high): Remove.
(movhi_lo_sum): Change to match an IOR.
(movdf_insn_sp32): Test TARGET_V9 not TARGET_ARCH64.
(movdf_insn_v9only): New pattern for when V9 but not ARCH64.
(movdf_insn_sp64): Test both TARGET_V9 and TARGET_ARCH64.
(movdf splits): Allow when not V9 or when not ARCH64 and integer
registers are involved.
(snesi_zero_extend split): Remove reload_completed test.
(unnamed plus and minus zero_extend sidi splits): Add it.
Mark Mitchell [Sun, 23 Aug 1998 12:47:24 +0000 (12:47 +0000)]
iomanip.h: Use __extension__ for `extern' explicit template instantiations.
* iomanip.h: Use __extension__ for `extern' explicit template
instantiations.
* sinst.cc: Don't explicitly instantiation string_char_traits<char>.
* cinst.cc: Likewiwse, for complex<float>, complex<double>,
complex<long double>.
* extend.texi: Remove description of extension to explicit
instantiation that is now endorsed by standard C++.
* decl2.c (grok_array_decl): Add comment.
(mark_used): Don't instantiate an explicit instantiation.
* friend.c (make_friend_class): Remove bogus comment. Fix check
for partial specializations.
* pt.c (check_explicit_specialization): Don't
SET_DECL_EXPLICIT_INSTANTIATION here.
(mark_decl_instantiated): Or here.
(do_decl_instantiation): Do it here, instead. Add checks for
duplicate explicit instantiations, etc. Tidy.
(do_type_instantiation): Likewise.
(instantiate_decl): Improve comments. Complain about explicit
instantiations where no definition is available.
* cp-tree.h (ansi_null_node): Remove.
* call.c (build_over_call): Warn about converting NULL to an
arithmetic type.
* cvt.c (build_expr_type_conversion): Likewise. Use
null_ptr_cst_p instead of expanding it inline.
* decl.c (ansi_null_node): Remove.
(init_decl_processing): Make null_node always have integral type.
* except.c (build_throw): Warn about converting NULL to an
arithmetic type.
* lex.c (init_parse): Remove handling of ansi_null_node.
* pt.c (type_unification_real): Don't convert NULL to void* type.
* typeck.c (build_binary_op_nodefault): Fix NULL warnings.
(convert_for_assignment): Warn about converting NULL to an
arithmetic type.
(convert_for_initialization): Likewise.
David S. Miller [Sun, 23 Aug 1998 10:43:54 +0000 (10:43 +0000)]
arc.c (arc_initialize_pic): Remove.
* config/arc/arc.c (arc_initialize_pic): Remove.
* config/arc/arc.h (INITIALIZE_PIC): Similarly, this routine does
nothing on any platform and is invoked by no-one, it does not even
appear in the documentation.
* config/sparc/sparc.h (INITIALIZE_PIC): Likewise.
* config/sparc/sparc.c (initialize_pic): Likewise.
(find_addr_reg): Remove this as well, no longer referenced after
my rewrite.
Jeff Law [Sat, 22 Aug 1998 23:21:24 +0000 (17:21 -0600)]
recog.c (validate_replace_rtx_group): New function.
�
* recog.c (validate_replace_rtx_group): New function.
* recog.h (validate_replace_rtx_group): Declare it.
* regmove.c (optimize_reg_copy_3): If any substitution fails, then undo
the entire group of substitutions.
Jeff Law [Sat, 22 Aug 1998 23:21:23 +0000 (17:21 -0600)]
recog.c (validate_replace_rtx_group): New function.
�
* recog.c (validate_replace_rtx_group): New function.
* recog.h (validate_replace_rtx_group): Declare it.
* regmove.c (optimize_reg_copy_3): If any substitution fails, then undo
the entire group of substitutions.
Jeff Law [Sat, 22 Aug 1998 23:21:19 +0000 (17:21 -0600)]
recog.c (validate_replace_rtx_group): New function.
�
* recog.c (validate_replace_rtx_group): New function.
* recog.h (validate_replace_rtx_group): Declare it.
* regmove.c (optimize_reg_copy_3): If any substitution fails, then undo
the entire group of substitutions.
Jeffrey A Law [Fri, 21 Aug 1998 23:30:36 +0000 (23:30 +0000)]
memtst.c: Reduce size of array when STACK_SIZE is defined.
* gcc.c-torture/unsorted/memtst.c: Reduce size of array when
STACK_SIZE is defined.
* gcc.c-torture/unsorted/stuct.c: Similarly.
Makes targets with 16bit address spaces happy.
Jeffrey A Law [Thu, 20 Aug 1998 23:48:14 +0000 (23:48 +0000)]
mn10200.h (REG_OK_FOR_INDEX_P): Do not check the mode of the register (it could be accessed via an outer SUBREG).
* mn10200.h (REG_OK_FOR_INDEX_P): Do not check the mode of the
register (it could be accessed via an outer SUBREG).
(REG_OK_FOR_BASE_P): Likewwise.
(GO_IF_LEGITIMATE_ADDRESS): Consistently use REGNO_OK_FOR_BASE_P.