* 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.
From-SVN: r17577
* 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.
From-SVN: r17575
* 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.
From-SVN: r17565
* 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.
From-SVN: r17563
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.
From-SVN: r17560
* configure.in: Check for declaration of abort.
* acconfig.h: Corresponding changes.
* toplev.c: Use NEED_DECLARATION_ABORT to determine if abort should
be declared.
From-SVN: r17556
* 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.
From-SVN: r17552
* 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.
From-SVN: r17548
* 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.
From-SVN: r17545
* 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.
From-SVN: r17544
* 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.
From-SVN: r17541
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.)
From-SVN: r17535
�
* 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.)
From-SVN: r17534
* 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.
From-SVN: r17531