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.
Per Bothner [Thu, 20 Aug 1998 16:44:03 +0000 (09:44 -0700)]
Handle new'ing of Java classes.
�
Handle new'ing of Java classes.
* init.c (build_class_classref): New function.
(build_new_1): If type is TYPE_FOR_JAVA: Call _Jv_AllocObject;
constructor does not return this; don't need to exception-protect.
* pt.c (lookup_template_class): Copy TYPE_FOR_JAVA flag.
* decl2.c (acceptable_java_type): Handle template-derived types.
Per Bothner [Thu, 20 Aug 1998 16:44:01 +0000 (09:44 -0700)]
Handle new'ing of Java classes.
Handle new'ing of Java classes.
* init.c (build_class_classref): New function.
(build_new_1): If type is TYPE_FOR_JAVA: Call _Jv_AllocObject;
constructor does not return this; don't need to exception-protect.
* pt.c (lookup_template_class): Copy TYPE_FOR_JAVA flag.
* decl2.c (acceptable_java_type): Handle template-derived types.
Per Bothner [Thu, 20 Aug 1998 16:43:59 +0000 (09:43 -0700)]
Handle new'ing of Java classes.
(
Handle new'ing of Java classes.
* init.c (build_class_classref): New function.
(build_new_1): If type is TYPE_FOR_JAVA: Call _Jv_AllocObject;
constructor does not return this; don't need to exception-protect.
* pt.c (lookup_template_class): Copy TYPE_FOR_JAVA flag.
* decl2.c (acceptable_java_type): Handle template-derived types.
Per Bothner [Thu, 20 Aug 1998 16:43:58 +0000 (09:43 -0700)]
Handle new'ing of Java classes.
d
Handle new'ing of Java classes.
* init.c (build_class_classref): New function.
(build_new_1): If type is TYPE_FOR_JAVA: Call _Jv_AllocObject;
constructor does not return this; don't need to exception-protect.
* pt.c (lookup_template_class): Copy TYPE_FOR_JAVA flag.
* decl2.c (acceptable_java_type): Handle template-derived types.
Mark Mitchell [Thu, 20 Aug 1998 13:46:53 +0000 (13:46 +0000)]
decl.c (duplicate_decls): Always merge the old and new patterns for templates...
* decl.c (duplicate_decls): Always merge the old and new patterns
for templates, regardless of whether or not the new one has
DECL_INITIAL. Don't throw away specializations. Merge
DECL_SAVED_TREE.
* pt.c (tsubst_decl): Use the right pattern when calculating the
complete args for a new template instance.
(do_decl_instantiation): Fix typo in comment.
(regenerate_decl_from_template): Deal with tricky friend template
case.
(instantiate_decl): Likewise.
Dave Brolley [Thu, 20 Aug 1998 10:29:22 +0000 (10:29 +0000)]
stor-layout.c (layout_type): Compute TYPE_SIZE_UNIT correctly for arrays of bits.
Thu Aug 20 13:15:11 1998 Dave Brolley <brolley@cygnus.com>
* stor-layout.c (layout_type): Compute TYPE_SIZE_UNIT correctly for
arrays of bits.
* cpplib.c (cpp_define): Handle macros with parameters.
David Edelsohn [Wed, 19 Aug 1998 19:43:19 +0000 (19:43 +0000)]
rs6000.c (rs6000_output_load_toc_table): Use ld for 64-bit.
* rs6000.c (rs6000_output_load_toc_table): Use ld for 64-bit.
(output_toc): Use single TOC slot or llong minimal-toc for DFmode
and DImode 64-bit. Use llong for minimal-toc SFmode and
SYMBOL_REF / LABEL_REF 64-bit.
(output_function_profiler): Use llong for profiler label and ld to
load 64-bit label address.
Mark Mitchell [Wed, 19 Aug 1998 18:48:58 +0000 (18:48 +0000)]
typeck.c (build_binary_op_nodefault): Warn on use of NULL in arithmetic.
* typeck.c (build_binary_op_nodefault): Warn on use of NULL in
arithmetic.
* except.c (build_throw): Warn when NULL is thrown, even with
-ansi. Use ansi_null_node, rather than integer_zero_node, in the
thrown expression.
Nick Clifton [Wed, 19 Aug 1998 16:31:30 +0000 (10:31 -0600)]
�
From Nick Clifton
* execute/ieee/930529-1.c (main): Check to see if __thumb__ is
defined, and test for ARM style doubles if so.
* execute/comp-goto-1.c (main): Make main() return an int.
Nick Clifton [Wed, 19 Aug 1998 16:31:28 +0000 (10:31 -0600)]
8
From Nick Clifton
* execute/ieee/930529-1.c (main): Check to see if __thumb__ is
defined, and test for ARM style doubles if so.
* execute/comp-goto-1.c (main): Make main() return an int.
Mark Mitchell [Wed, 19 Aug 1998 15:14:58 +0000 (15:14 +0000)]
cp-tree.h (ansi_null_node): New variable.
* cp-tree.h (ansi_null_node): New variable.
* decl.c (ansi_null_node): New variable.
(init_decl_processing): Initialize its type.
* lex.c (init_parse): Initialize its value. Use ansi_null_node
for null_node in non-ANSI mode.
* typeck.c (build_binary_op_nodefault): Use ansi_null_node in
place of null_node to avoid spurious errors.
tm.texi (Caller Saves): Say that DEFAULT_CALLER_SAVES has no effect when -O2 and higher.
* tm.texi (Caller Saves): Say that DEFAULT_CALLER_SAVES has no
effect when -O2 and higher.
* invoke.texi (Optimize Options): Likewise for -fcaller-saves.
Michael Hayes [Wed, 19 Aug 1998 12:49:17 +0000 (12:49 +0000)]
regclass.c: Changed register set documentation to be consistent with GCC behaviour.
* regclass.c: Changed register set documentation to be consistent
with GCC behaviour.
* final.c (final_start_function) Removed redundant test for
call_fixed_regs.
Mark Mitchell [Wed, 19 Aug 1998 12:30:47 +0000 (12:30 +0000)]
rtl.h (rtx_function): New type.
* rtl.h (rtx_function): New type.
(for_each_rtx): New function.
* rtlanal.c (for_each_rtx): Define it.
* recog.c (change_t): New type.
(change_objects, change_old_codes, change_locs, change_olds):
Replace with ...
(changes): New variable.
(validate_change): Dynamically allocate room for more changes, if
necessary. Uses changes array instead of change_objects, etc.
(apply_change_group): Use changes array instead of
change_objects, etc.
* loop.c (loop_mem_info): New type.
(loop_mems): New variable.
(loop_mems_idx): Likewise.
(looop_mems_allocated): Likewise.
(scan_loop): Remove nregs parameter.
(next_insn_in_loop): New function.
(load_mems_and_recount_loop_regs_set): Likewise.
(load_mems): Likewise.
(insert_loop_mem): Likewise.
(replace_loop_mem): Likewise.
(replace_label): Likewise.
(INSN_IN_RANGE_P): New macro.
(loop_optimize): Don't pass max_reg_num() to scan_loop.
(scan_loop): Remove nregs parameter, compute it after any new
registers are created by load_mems. Use INSN_IN_RANGE_P and
next_insn_in_loop rather than expanding them inline. Call
load_mems to load memory into pseudos, if appropriate.
(prescan_loop): Figure out whether or not there are jumps from the
loop to targets other than the label immediately following the
loop. Call insert_loop_mem to notice all the MEMs used in the
loop, if it could be safe to pull MEMs into REGs for the duration
of the loop.
(strength_reduce): Use next_insn_in_loop. Tweak comments.
David S. Miller [Wed, 19 Aug 1998 08:14:26 +0000 (08:14 +0000)]
sparc.c (finalize_pic): Check for the correct nonlocal_goto_receiver UNSPEC number.
* config/sparc/sparc.c (finalize_pic): Check for the correct
nonlocal_goto_receiver UNSPEC number.
* config/sparc/sparc.md (nonlocal_goto_receiver): Add comment
making note of this dependency existing in sparc.c