Mark Mitchell [Tue, 3 Feb 1998 23:55:27 +0000 (23:55 +0000)]
cvt.c (ocp_convert): Obtain the constant values from constant decls even if...
* cvt.c (ocp_convert): Obtain the constant values from constant
decls even if the destination type is the same as the type of the
decl.
* decl2.c (finish_file): Make sure that static inlines with
definitions are not marked DECL_EXTERNAL before returning.
error.c (dump_decl): Fix type of default arguments for template template parameters and nontype...
* error.c (dump_decl): Fix type of default arguments for template
template parameters and nontype template parameters.
* parse.y (template_parm): Handle invalid default template
template arguments here.
* parse.y (template_parm): Use template_arg instead of PTYPENAME
for default template template argument.
* pt.c (coerce_template_parms): Merge default template argument
codes. Can treat RECORD_TYPE as template name if it is implicitly
created. Fix argument index in error message.
* typeck.c (comptypes): Merge template argument comparison codes in
TEMPLATE_TEMPLATE_PARM and RECORD_TYPE.
Mark Mitchell [Mon, 2 Feb 1998 23:44:19 +0000 (23:44 +0000)]
call.c (add_template_candidate_real): Pass extra parameter to fn_type_unification.
* call.c (add_template_candidate_real): Pass extra parameter to
fn_type_unification.
* cp-tree.h (fn_type_unification): Add parameter.
* pt.c (fn_type_unification): Add additional parameter to deal with
static member functions.
(get_bindings): Deal with static member functions.
expr.c (expand_builtin_setjmp): Accept two new arguments for the labels to branch to on first and subsequent...
* expr.c (expand_builtin_setjmp): Accept two new arguments for
the labels to branch to on first and subsequent executions. Don't
play with __dummy. Rename `setjmp' insn to `builtin_setjmp_setup',
and provide it with the jmp_buf. Use only one of
`builtin_setjmp_receiver' or `nonlocal_goto_receiver',
and provide the former with the target label.
(expand_builtin) [BUILTIN_SETJMP]: Generate a label for use by setjmp.
(expand_builtin) [BUILTIN_LONGJMP]: Split out to ...
(expand_builtin_longjmp): ... here. Recognize a `builtin_longjmp'
insn to replace all of the normal nonlocal_goto code. Don't play
with __dummy. Correct arguments to nonlocal_goto.
* expr.h (expand_builtin_setjmp): Update prototype.
* except.c (start_dynamic_handler): When using builtin_setjmp,
generate more accurate flow information.
* alpha.md (nonlocal_goto_receiver_osf): Delete.
(nonlocal_goto_receiver_vms): Rename to nonlocal_goto_receiver.
(builtin_longjmp, builtin_setjmp_receiver): New.
* sparc.md (update_return): Disambiguate unspec number.
(nonlocal_goto): Rearrange arguments to match caller in except.c.
(builtin_setjmp_setup): Rename from setjmp. Match and ignore the
jmp_buf operand.
* mips.md (nonlocal_goto_receiver, builtin_setjmp_receiver): Remove.
(builtin_setjmp_setup*, builtin_longjmp): New.
Mark Mitchell [Mon, 2 Feb 1998 11:41:39 +0000 (11:41 +0000)]
cp-tree.h (DECL_NONSTATIC_MEMBER_FUNCTION_P): New macro.
* cp-tree.h (DECL_NONSTATIC_MEMBER_FUNCTION_P): New macro.
(revert_static_member_fn): Declare.
* decl.c (revert_static_member_fn): Remove declaration. Change
linkage from internal to external.
(cp_finish_decl): Deal with virtual functions in classes local to
template functions.
* decl2.c (finish_file): Don't forget to emit increment/decrement
expressions in initializers for file-scope variables.
* parse.y (typename_sub2): If the typename doesn't names a
template, rather than a type, issue an error message.
* pt.c (check_explicit_specialization): Handle specializations of
static member functions.
(coerce_template_parms): Handle offset references to lists of
member functions.
* search.c (note_debug_info_needed): Don't crash when handed a
type which is being defined.
* typeck.c (complete_type): Don't crash when handed NULL_TREE;
that can happen with some illegal code.
Toon Moene [Sun, 1 Feb 1998 23:08:28 +0000 (00:08 +0100)]
x-next: Remove /NextDeveloper/Headers from the directories to fixinclude - /usr/include...
* config/m68k/x-next: Remove /NextDeveloper/Headers from
the directories to fixinclude - /usr/include is a link
to it and hence its contents are fixed by default.
Andreas Schwab [Sun, 1 Feb 1998 12:44:52 +0000 (12:44 +0000)]
iostream.cc (istream::operator>>(long double&)): Scan value into separate variable, in case long double is bigger than double.
* iostream.cc (istream::operator>>(long double&))
[!_G_HAVE_LONG_DOUBLE_IO]: Scan value into separate variable, in
case long double is bigger than double.
(ostream::operator<<(double)) [_G_HAVE_PRINTF_FP]: Fix order of
initializers of struct printf_info to match declaration order,
to work around g++ bug.
(ostream::operator<<(long double)) [_G_HAVE_PRINTF_FP]: Likewise.
* gen-params: Add missing quotes. Avoid useless use of command
substitution.
J"orn Rennecke [Sun, 1 Feb 1998 11:47:59 +0000 (11:47 +0000)]
expr.c (get_inner_reference): Use sbitsizetype for type sizes.
* expr.c (get_inner_reference): Use sbitsizetype for type sizes.
* fold-const.c (size_int): Replace with
(size_int_wide).
(make_bit_field_ref): Use bitsize_int for bit position.
* stor-layout.c (sizetype): Delete.
(sizetype_tab, sbitsizetype, ubitsizetype): Declare.
(layout_record, layout_union, layout_type):
Use bitsize_int for bit size.
(set_sizetype): New function.
(make_signed_type, make_unsigned_type): Use it.
* c-decl.c (init_decl_processing): Likewise.
* tree.h (size_int): Don't delcare, #define.
(size_int_wide, sizetype_tab, sbitsize, ubitsize): Declare.
(set_sizetype): Declare.
(bitsize_int, size_int_2, BITS_PER_UNIT_LOG, sizetype, bitsizetype):
Define.
* c-typeck.c (c_sizeof, c_sizeof_nowarn, c_size_in_bytes):
Convert result to sizetype.
(really_start_incremental_init, push_init_level):
Set type of constructor_bit_index to sbitsizetype.
(push_init_level): Use unsigned arithmetic to determine padding.
(output_init_element): Likewise.
J"orn Rennecke [Sun, 1 Feb 1998 11:43:05 +0000 (11:43 +0000)]
com.c (ffecom_tree_canonize_ptr_): Place bitsizetype typed expr as first agument in MULT_EXPR.
* com.c (ffecom_tree_canonize_ptr_): Place bitsizetype typed expr
as first agument in MULT_EXPR.
Use bitsize_int (0L, 0L) as zero for bitsizes.
(ffecom_tree_canonize_ref_):
Use bitsize_int (0L, 0L) as zero for bitsizes.
(ffecom_init_0): Use set_sizetype.
alpha.c (alpha_expand_unaligned_load): Use expand_binop properly.
* alpha.c (alpha_expand_unaligned_load): Use expand_binop properly.
Make sure result winds up in TGT.
(alpha_expand_unaligned_store): Use expand_binop properly. Allow
src to be other than DImode.
(alpha_expand_unaligned_load_words): Tidy. Take an offset argument.
(alpha_expand_unaligned_store_words): Likewise.
(alpha_expand_block_move): Use REGNO_POINTER_ALIGN. Restructure so
that source and destination are separately optimized for alignment.
(alpha_expand_block_clear): Use REGNO_POINTER_ALIGN.
Kaveh R. Ghazi [Sun, 1 Feb 1998 00:48:06 +0000 (00:48 +0000)]
aclocal.m4 (GCC_NEED_DECLARATION): Modify macro to accept a shell variable argument instead of only hard coded...
* aclocal.m4 (GCC_NEED_DECLARATION): Modify macro to accept a
shell variable argument instead of only hard coded functions.
(GCC_NEED_DECLARATIONS): New macro to accept multiple functions.
* configure.in: Collapse multiple calls to AC_CHECK_FUNCS into one
call. Collapse multiple calls to GCC_NEED_DECLARATION into one
call to GCC_NEED_DECLARATIONS (new macro.) Check if we need
declarations for bcopy, bcmp and bzero.
* acconfig.h: Add stubs for bcopy, bcmp and bzero declarations.
* gansidecl.h: If we have bcopy but don't declare it, then do so.
Likewise for bcmp and bzero. Only define macros for bcopy, bcmp,
bzero, index and rindex if they aren't already present.
John Carr [Fri, 30 Jan 1998 23:34:15 +0000 (23:34 +0000)]
sparc.c (sparc_override_options): Make v8plus and ultrasparc set MASK_V8PLUS.
Fri Jan 30 22:30:39 1998 John Carr <jfc@mit.edu>
* sparc.c (sparc_override_options): Make v8plus and ultrasparc set
MASK_V8PLUS.
(output_function_epilogue): Omit epilogue if nothing drops through.
(output_move_double): Supress int ldd usage on ultrasparc and v9.
(registers_ok_for_ldd_peep): Likewise.
(print_operand): Supress b,a on ultrasparc. Let Y accept a constant.
(ultrasparc_adjust_cost): New function.
(sparc_issue_rate): New function.
* sparc.h (MASK_VIS, TARGET_VIS): New
(MASK_V8PLUS, TARGET_V8PLUS): New.
(TARGET_HARD_MUL32, TARGET_HARD_MUL): New.
(TARGET_SWITCHES): Add vis and v8plus.
(REG_CLASS_FROM_LETTER): Accept d and b for VIS.
(REGISTER_MOVE_COST): FP<->INT move cost 12 for ultrasparc.
(RTX_COSTS): Use TARGET_HARD_MUL
(ADJUST_COST): Call ultrasparc_adjust_cost.
(ISSUE_RATE): New.
* sparc.md (attr type): Add sload, fpmove, fpcmove. Adjust users
of load & fp appropritely.
(supersparc function units): Adjust for Haifa.
(ultrasparc function units): Likewise.
(get_pc_via_rdpc): All v9, not just arch64.
(movdi_v8plus, movdi_v8plus+1): New.
(adddi3_sp32+1): New.
(subdi3_sp32+1): New.
(movsi_insn, movsf_const_insn, movdf_const_insn): Know VIS.
(addsi3, subsi3, anddi3_sp32, andsi3, and_not_di_sp32): Likewise.
(and_not_si, iordi3_sp32, iorsi3, or_not_di_sp32, or_not_si): Likewise.
(xorsi3_sp32, xorsi3, xor_not_di_sp32, xor_not_si): Likewise.
(one_cmpldi2_sp32, one_cmplsi2): Likewise.
(ldd peepholes): Suppress for v9.
(return_adddi): Kill redundant test. Arg1 may be arith_operand.
(return_subsi): Revmove.
Jeffrey A Law [Fri, 30 Jan 1998 08:08:31 +0000 (08:08 +0000)]
configure.in: Check for declaration of abort.
* configure.in: Check for declaration of abort.
* acconfig.h: Corresponding changes.
* toplev.c: Use NEED_DECLARATION_ABORT to determine if abort should
be declared.
Mark Mitchell [Thu, 29 Jan 1998 11:06:22 +0000 (11:06 +0000)]
pt.c (convert_nontype_argument): Move check for is_overloaded_fn early to avoid bogus error.
* pt.c (convert_nontype_argument): Move check for is_overloaded_fn
early to avoid bogus error. Handle overloaded function
names provided as template arguments correctly.
(coerce_template_parms): Don't mishandle overloaded functions when
dealing with template template parameters.
(lookup_template_class): Issue an error message, rather than
crashing, when the TYPE_DECL provided is not a template type.
Jeffrey A Law [Thu, 29 Jan 1998 09:14:37 +0000 (09:14 +0000)]
configure.in: Check for atoq and atoll.
* configure.in: Check for atoq and atoll.
* rtl.c (read_rtx): Use HAVE_ATOLL and HAVE_ATOQ to select the
proper routine for converting ascii into long long values.
Jason Merrill [Thu, 29 Jan 1998 00:08:53 +0000 (19:08 -0500)]
class.c (instantiate_type): Don't just return a known type if it's wrong.
* class.c (instantiate_type): Don't just return a known type if
it's wrong.
* class.c (instantiate_type): Remove handling of FUNCTION_DECL
since that code could never be reached.
* error.c (dump_decl): Avoid aborting in the midst of printing an
error message about an illegal template declaration.
* parse.y (structsp): Print an error message, rather than crashing,
when a class-head does not name a class.
* pt.c (convert_nontype_argument): Allow REAL_TYPE and COMPLEX_TYPE
template arguments as a g++ extension.
* cp-tree.def (ALIGNOF_EXPR): New tree code.
* decl2.c (grok_alignof): If processing_template_decl, just store
the expression.
* typeck.c (c_alignof): Likewise.
* decl2.c (build_expr_from_tree): Handle ALIGNOF_EXPR.
* error.c (dump_expr): Likewise.
* pt.c (tsubst_copy): Likewise.
* tree.c (cp_tree_equal): Likewise.
* pt.c (uses_template_parms): Correctly determine whether or not a
SIZEOF_EXPR/ALIGNOF_EXPR uses template parameters so that constant
folding can be done.
Jeff Law [Wed, 28 Jan 1998 23:25:15 +0000 (16:25 -0700)]
rtl.c (read_rtx): Use atol/atoq based upon disposition of HOST_WIDE_INT.
* rtl.c (read_rtx): Use atol/atoq based upon disposition of
HOST_WIDE_INT.
* genattrtab.c (write_test_expr): Use HOST_WIDE_INT_PRINT_DEC
as needed.
* genemit.c (gen_exp): Likewise.
* genpeep.c (match_rtx): Likewise.
* genrecog.c (write_tree_1): Likewise.
* c-lex.c (yyprint): Use proper format string based upon
disposition of HOST_BITS_PER_WIDE_INT.
(yylex): Put casts in right place for args to build_int_2.
* combine.c: Fix typos in Jan27 changes.
J"orn Rennecke [Wed, 28 Jan 1998 19:09:41 +0000 (19:09 +0000)]
reload.c (push_reload): If WORD_REGISTER_OPERATIONS...
* reload.c (push_reload): If WORD_REGISTER_OPERATIONS, reload the
SUBREG_REG if the word count is unchanged, also in the input reload
case. Disable non-applicable sanity checks.
Per Bothner [Wed, 28 Jan 1998 17:07:24 +0000 (09:07 -0800)]
dbxout.c (dbxout_type): For a RECORD_TYPE...
d
* dbxout.c (dbxout_type): For a RECORD_TYPE, check that TYPE_BINFO
is a TREE_VEC before trying to use it for baseclasses.
(Chill uses the same field for a different purpose.)
Per Bothner [Wed, 28 Jan 1998 17:07:23 +0000 (09:07 -0800)]
dbxout.c (dbxout_type): For a RECORD_TYPE...
�
* dbxout.c (dbxout_type): For a RECORD_TYPE, check that TYPE_BINFO
is a TREE_VEC before trying to use it for baseclasses.
(Chill uses the same field for a different purpose.)
Jason Merrill [Wed, 28 Jan 1998 11:43:39 +0000 (06:43 -0500)]
cp-tree.h (grok_enum_decls): Remove type parameter.
* cp-tree.h (grok_enum_decls): Remove type parameter.
* decl.c (grok_enum_decls): Likewise.
* decl2.c (grok_x_components): Call grok_enum_decls
unconditionally, since it will do nothing if there is no
current_local_enum. Use the new calling sequence.
* pt.c (tsubst_enum): Use the new calling sequence for
grok_enum_decls.
* decl.c (start_function): Make member functions of local classes
in extern inline functions have comdat linkage here...
(grokdeclarator): Rather than here.
* pt.c (convert_nontype_argument): Use decl_constant_value.
configure.in (package_makefile_rules_frag): New variable which is used in the call to config.shared...
* configure.in (package_makefile_rules_frag): New variable
which is used in the call to config.shared; redirect file descriptor 2
to ${package_makefile_rules_frag}.
config.shared: Emit everything which needs to be re-definable via file descriptor 1...
* config.shared: Emit everything which needs to be re-definable
via file descriptor 1; the generic stuff is emitted using redirection
onto fd 2.
* configure.in (package_makefile_rules_frag): New variable
which is used in the call to config.shared; redirect file descriptor 2
to ${package_makefile_rules_frag}.
configure (package_makefile_rules_frag): New variable, which names a file with generic rules, ...
* configure (package_makefile_rules_frag): New variable, which names
a file with generic rules, ...
Change comment to mention we now have FIVE parts.
* configure: Undo last change.