libgcc2.c (ia64_throw_helper): Use __builtin_return_address.
* libgcc2.c (ia64_throw_helper): Use __builtin_return_address.
(__throw): Don't pass the address of a label.
* config/ia64/ia64.c (ia64_compute_frame_size): Use
current_function_is_leaf.
(ia64_expand_prologue): Likewise. Modify return_address_pointer_rtx
instead of reg_names[RETURN_ADDRESS_REGNUM].
(ia64_init_machine_status): Reset return_address_pointer_rtx.
* config/ia64/ia64.h (RETURN_ADDRESS_POINTER_REGNUM): Rename
from RETURN_ADDRESS_REGNUM. Update all uses.
(RETURN_ADDR_RTX): Use return_address_pointer_rtx; return
zero instead of null on failure.
(ELIMINABLE_REGS): Add ra->b0 elimination.
(CAN_ELIMINATE): Update accordingly.
(INITIAL_ELIMINATION_OFFSET): Likewise.
(REGISTER_NAMES): Use an illegal assembler name for
RETURN_ADDRESS_POINTER_REGNUM.
Make-lang.in (c++.install-common): Install g++-cross in $(gcc_tooldir)/bin as g++ and c++...
* Make-lang.in (c++.install-common): Install g++-cross in
$(gcc_tooldir)/bin as g++ and c++; g++ in $(bindir) as
$(target_alias)-g++ and $(target_alias)-c++.
David O'Brien [Tue, 13 Jun 2000 16:09:51 +0000 (16:09 +0000)]
configure.in: Adjust FreeBSD bits to match changes to config.guess.
* configure.in: Adjust FreeBSD bits to match changes to config.guess.
We now default to ELF for the i386, and a.out is the special case.
* configure: Rebuilt.
Jeffrey A Law [Mon, 12 Jun 2000 23:08:05 +0000 (23:08 +0000)]
print-rtl.c (print_rtx, case MEM): Use HOST_WIDE_INT_PRINT_DEC to print the alias set.
* print-rtl.c (print_rtx, case MEM): Use HOST_WIDE_INT_PRINT_DEC
to print the alias set.
* print-tree.c (print_node, DECL_* nodes and case 't'): Similarly.
Mark Mitchell [Mon, 12 Jun 2000 20:46:28 +0000 (20:46 +0000)]
class.c (vcall_offset_data_s): Add last_init and fns.
* class.c (vcall_offset_data_s): Add last_init and fns.
(overrides): Rename to same_signature_p.
(dfs_find_final_overrider): Adjust accordingly.
(mark_overriders): Likewise.
(warn_hidden): Likewise.
(build_vtbl_initializer): Reorganize machinery for building things
at negative offsets.
(build_vcall_and_vbase_vtbl_entries): Likewise.
(build_vbase_offset_vtbl_entries): Likewise.
(dfs_build_vcall_offset_vtbl_entries): Correct order of vcall
offset entries. Do not create two entries for functions with the
same signature.
(build_vcall_offset_vtbl_entries): Initialize vod->fns.
(build_rtti_vtbl_entries): Reorganize machinery for building things
at negative offsets.
Richard Earnshaw [Mon, 12 Jun 2000 14:40:24 +0000 (14:40 +0000)]
flow.c (mark_used_regs): Revert last change.
* flow.c (mark_used_regs): Revert last change.
(life_analysis): Remove PROP_AUTOINC if running after reload.
(propagate_one_insn): PROP_AUTOINC is always off after reload.
Mark Mitchell [Mon, 12 Jun 2000 06:43:27 +0000 (06:43 +0000)]
mangle.c (NESTED_TEMPLATE_MATCH): Fix typo in comment.
* mangle.c (NESTED_TEMPLATE_MATCH): Fix typo in comment.
(is_std_substitution): Don't check CLASSTYPE_USE_TEMPLATE here.
(find_substitution): Only use the `Sa' substitution for
std::allocator, not instantiations of it.
(write_template_prefix): Move comment. Only use a TREE_LIST to
represent substitutions for a member template.
(write_array_type): Mangle array dimensions correctly.
* optimize.c (maybe_clone_body): Copy more information from the
cloned function.
* pt.c (regenerate_decl_from_template): Preserve DECL_USE_TEMPLATE
on the regenerated declaration.
Chip Salzenberg [Sun, 11 Jun 2000 03:57:18 +0000 (03:57 +0000)]
mangle.c (write_number): Take an unsigned HOST_WIDE_INT as an argument.
* mangle.c (write_number): Take an unsigned HOST_WIDE_INT as an
argument.
(write_signed_number): New macro.
(write_unsigned_number): Likewise.
(write_source_name): Use them.
(write_number): Handle signed and unsigned values.
(write_integer_cst): Use tree_int_cst_sgn, and use
write_unsigned_number or write_signed_number as appropriate.
(write_discriminator): Use write_unsigned_number or
write_signed_number as appropriate.
(write_template_arg_literal): Likewise.
(write_array_type): Use tree_low_cst.
(write_template_parm): Use write_unsigned_number or
write_signed_number as appropriate.
(write_substitution): Adjust call to write_number.
(write_type): Get the TYPE_MAIN_VARIANT before mangling it.
(write_expression): Handle non-type template arguments of
reference type correctly.
(mangle_thunk): Use write_signed_number.
* mangle.c (find_substition): Don't mangle objects with typename
substitutions (e.g. "cin" as "Si").
Co-Authored-By: Mark Mitchell <mark@codesourcery.com>
From-SVN: r34488
Zack Weinberg [Fri, 9 Jun 2000 21:47:40 +0000 (21:47 +0000)]
ggc-none.c, [...] (ggc_alloc_obj): Rename it ggc_alloc, drop second argument, never clear returned memory.
toplevel:
* ggc-none.c, ggc-simple.c, ggc-page.c (ggc_alloc_obj): Rename
it ggc_alloc, drop second argument, never clear returned memory.
* ggc-common.c (ggc_alloc_string): Use ggc_alloc.
(ggc_alloc_cleared): New.
* ggc.h: Prototype ggc_alloc and ggc_alloc_cleared, not
ggc_alloc_obj. Remove ggc_alloc macro.
(ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Use ggc_alloc.
* rtl.c (rtvec_alloc): Clear the vector always.
(rtx_alloc): Clear the first word always. Remove dirty
obstack tricks (this routine is no longer a bottleneck).
* tree.c (make_node): Clear the new node always.
(make_tree_vec): Likewise.
(tree_cons): Clear the common structure always.
(build1): Likewise; also, clear TREE_COMPLEXITY.
* gengenrtl.c: Use puts wherever possible. Remove extra
newlines.
(gendef): Clear the first word of an RTX in the generator
function, irrespective of ggc_p. Initialize '0' slots to
NULL.
(genlegend): Don't generate obstack_alloc_rtx routine, just a
thin wrapper macro around obstack_alloc.
* stmt.c (expand_fixup): Use ggc_alloc.
* c-typeck.c (add_pending_init): Use ggc_alloc.
* emit-rtl.c (init_emit_once): Clear CONST_DOUBLE_CHAIN(tem).
* varasm.c (immed_double_const): Set CONST_DOUBLE_MEM(r) to
const0_rtx when it is created.
(immed_real_const_1): Set CONST_DOUBLE_CHAIN(r) to NULL_RTX if
we are not in a function.
* tree.c (tree_class_check_failed): Make second arg an int.
* tree.h: Update prototype.
Mark Mitchell [Fri, 9 Jun 2000 16:41:10 +0000 (16:41 +0000)]
cp-tree.h (cp_tree_index): Remove Java types.
* cp-tree.h (cp_tree_index): Remove Java types.
(java_fundamental_type_kind): New enumeration type.
(java_fundamental_types): New array.
* class.c (push_lang_context): Use java_fundamental_types.
* decl.c (java_fundamental_types): Define it.
(initialize_java_fundamental_types): New function.
(init_decl_processing): Call it
* mangle.c (integer_type_codes): Make it const.
(java_fundamental_type_codes): New variable.
(write_source_name_from_string): New function.
(write_identifier): Constify.
(write_builtin_type): Handle Java types. Use same_type_p for type
comparison.
Jakub Jelinek [Fri, 9 Jun 2000 14:31:54 +0000 (16:31 +0200)]
configure.in: Check whether gas supports -relax.
* configure.in: Check whether gas supports -relax.
* configure, config.in: Rebuilt.
* config/sparc/sparc.h (ASM_RELAX_SPEC): Define.
(EXTRA_SPECS): Add asm_relax.
(ASM_SPEC): Add %(asm_relax).
(TARGET_SWITCHES): Add -mrelax and -mno-relax.
* config/sparc/linux64.h (LINK_ARCH_SPEC): Rename to LINK_SPEC.
(LINK_SPEC): Pass -relax to linker unless -mno-relax or -r.
(ASM_SPEC): Add %(asm_relax).
* config/sparc/linux.h (LINK_SPEC, ASM_SPEC): Likewise.
* config/sparc/sparc.c (output_sibcall): If HAVE_AS_RELAX_OPTION,
never use sethi/jmpl for leaf tail calls. Use or with rs2 %g0
instead of mov, so that gas can further optimize it.
Zack Weinberg [Thu, 8 Jun 2000 22:39:17 +0000 (22:39 +0000)]
noncompile.exp: Remove poison-1 block.
* gcc.c-torture/noncompile/noncompile.exp: Remove poison-1 block.
* gcc.c-torture/noncompile/poison-1.c: Move...
* gcc.dg/poison-1.c: ...here, and adapt to dg framework.
* gcc.dg/cpp-li1.c: Add a token after the #line.
James E. Wilson [Thu, 8 Jun 2000 22:33:18 +0000 (22:33 +0000)]
Emit correct debug info for 64-bit signed enums on 64-bit host.
* dwarf2out.c (size_of_die, case dw_val_class_const): Use
size_of_sleb128.
(value_format, case dw_val_class_const): Use sdata format.
(output_die): Call output_sleb128.
* dwarf2out.c (ASM_OUTPUT_DWARF_DATA8): Add new macro that uses
UNALIGNED_DOUBLE_INT_ASM_OP. Rename old macro to
ASM_OUTPUT_DWARF_CONST_DOUBLE.
(output_die, case dw_val_class_unsigned_const): Correct call to
ASM_OUTPUT_DWARF_DATA8.
(output_die, case dw_val_class_long_long): Use
ASM_OUTPUT_DWARF_CONST_DOUBLE.
* tree.c (host_integerp): Accept unsigned HOST_WIDE_INT values when
pos is zero.
cp-demangle.c (stdio.h): File included unconditionaly.
* cp-demangle.c (stdio.h): File included unconditionaly.
(template_arg_list_new): Parameter list is PARAMS ((void)), not ().
* dyn-string.c (stdio.h): File included.
* partition.c (partition_print): No `&' needed to take the address of
a function.
Zack Weinberg [Wed, 7 Jun 2000 22:43:44 +0000 (22:43 +0000)]
c-decl.c (pushdecl): Do not call COMPLETE_TYPE_P on error_mark_node.
* c-decl.c (pushdecl): Do not call COMPLETE_TYPE_P on
error_mark_node.
* print-tree.c (print_node): The transparent_union_flag means
different things for unions and arrays. Do not inspect it
with TYPE_TRANSPARENT_UNION.
* cp-demangle.c (demangle_char): Change parameter from char to int.
(demangle_expression, demangle_expr_primary): Remove extra
semi-colon in prototype.
* dyn-string.c (dyn_string_append_char): Change parameter from
char to int.
* memcmp.c (memcmp): Constify.
* mkstemps.c (gcc_uint64_t): Mark GNUC `long long' case with
__extension__.
Kaveh R. Ghazi [Wed, 7 Jun 2000 20:35:43 +0000 (20:35 +0000)]
Makefile.in (cp-demangle.o): Depend on $(INCDIR)/demangle.h.
* Makefile.in (cp-demangle.o): Depend on $(INCDIR)/demangle.h.
* cp-demangle.c: Include demangle.h.
(template_arg_list_new): DeANSIfy.
(cp_demangle): Make static and add prototype.
(operator_code, operators): Constify.
(demangle_operator_name): Likewise for variables `p1', `p2' and `p'.
James E. Wilson [Wed, 7 Jun 2000 02:27:51 +0000 (02:27 +0000)]
Fix gas/gcc unwind/EH discrepancies. And a shared library build problem.
* frame.h (struct unwind_info_ptr): Collapse version, flags, and length
fields into header field.
(IA64_UNW_HDR_LENGTH, IA64_UNW_HDR_FLAGS, IA64_UNW_HDR_VERSION): New
macros to access length, flags, and version info from header field.
* config/ia64/crtbegin.asm (__do_frame_setup_aux): Delete here.
...
Mark Mitchell [Tue, 6 Jun 2000 21:54:54 +0000 (21:54 +0000)]
c-common.h (c_language_kind): New type.
* c-common.h (c_language_kind): New type.
(c_language): New variab.e
* c-common.c (lang_get_alias_set): Don't put structures in
non-zero alias sets in C++.
* c-decl.c (c_language): Define it.
* c-lex.c (doing_objc_thang): Remove.
* c-tree.h (doing_objc_thang): Make it a macro.
* objc/objc-act.c (lang_decode_option): Set c_language, not
doing_objc_thang.
Mark Mitchell [Tue, 6 Jun 2000 21:41:28 +0000 (21:41 +0000)]
decl.c (redeclaration_error_message): If two TEMPLATE_DECLs have the same DECL_RESULT, it's not a redefinition.
* decl.c (redeclaration_error_message): If two TEMPLATE_DECLs have
the same DECL_RESULT, it's not a redefinition.
* pt.c (tsubst_decl): Remove code to handle illegal
specializations.
Steven King [Tue, 6 Jun 2000 20:26:13 +0000 (20:26 +0000)]
acconfig.h: Added defines for HAVE_BUILTIN math functs for float, double and long double.
2000-06-06 Steven King <sxking@uswest.net>
* acconfig.h: Added defines for HAVE_BUILTIN math functs for float,
double and long double. Added defines for HAVE libm math functs for
float and long double.
* aclocal.m4: Added configure checks for builtin math funcs and libm
support for float and long double versions of the math functions.
* config.h.in: Added undefs for math functs.
* configure: Regenerate.
* math/mathconf: Changed the _GLIBCPP_HAS_BUILTIN_* to
_GLIBCPP_HAVE_BUILTIN_*.
* bits/std_cmath.h: Added long double support. Use builtins for
float, double and long if available, otherwise, use libm versions if
availible, otherwise, punt.
* shadow/bits/std_cmath.h: ditto
Mark Mitchell [Tue, 6 Jun 2000 19:55:54 +0000 (19:55 +0000)]
decl.c (redeclaration_error_message): If two TEMPLATE_DECLs have the same DECL_RESULT, it's not a redefinition.
2000-06-06 Mark Mitchell <mark@codesourcery.com>
* decl.c (redeclaration_error_message): If two TEMPLATE_DECLs have
the same DECL_RESULT, it's not a redefinition.
* pt.c (tsubst_decl): Remove code to handle illegal
specializations.
* configure.in (Make the links): Typo fix : the file that must be
included without #ifdef IN_GCC is `auto-host.h', not `auto-config.h'.
* configure: File rebuilt.