Tom Tromey [Tue, 4 Dec 2001 20:18:35 +0000 (20:18 +0000)]
defineclass.cc (read_one_method_attribute): `end_pc' for an exception can be equal to code length.
* defineclass.cc (read_one_method_attribute): `end_pc' for an
exception can be equal to code length.
* verify.cc (_Jv_BytecodeVerifier::verify_instructions_0): Removed
`start_PC' from error invocation where it didn't make sense, and
updated error message. Use `copy' to copy a state. Only try to
merge current state with saved state when we've fallen through
from the previous instruction.
(_Jv_BytecodeVerifier::pop_ref_or_return): New method.
(_Jv_BytecodeVerifier::verify_instructions_0) [op_astore_0]: Use
pop_ref_or_return.
(_Jv_BytecodeVerifier::verify_instructions_0) [op_astore]:
Likewise.
(_Jv_BytecodeVerifier::push_jump_merge): Pass max_locals, not
max_stack, to merge.
(_Jv_BytecodeVerifier::verify_instructions_0): Likewise.
(_Jv_BytecodeVerifier::push_jump_merge): Merge from new state into
state at branch target, not vice versa.
(_Jv_BytecodeVerifier::branch_prepass): Allow end of exception to
be equal to code length. Removed redundant test to see if
exception start is after exception end.
(_Jv_BytecodeVerifier::verify_instructions_0): Type of argument to
`finally' is Throwable.
2001-12-04 John David Anglin <dave@hiauly1.hia.nrc.ca>
* testsuite/22_locale/numpunct_members_wchar_t.cc: Only compile
and execute test01 if _GLIBCPP_USE_WCHAR_T is defined.
* testsuite/26_numerics/complex_inserters_extractors.cc: Provide
for explicit instantiation of class std::basic_string<char,
gnu_char_traits, std::allocator<char> >.
Zack Weinberg [Tue, 4 Dec 2001 18:02:50 +0000 (18:02 +0000)]
build-make, cross-make: Delete file.
* build-make, cross-make: Delete file.
* configure.in: Set and substitute CROSS, ALL,
SYSTEM_HEADER_DIR, HOST_PREFIX, HOST_PREFIX_1, HOST_CC,
HOST_CFLAGS, STMP_FIXINC, and STMP_FIXPROTO depending on
whether build == host and host == target. Do not
AC_SUBST_FILE build_overrides or cross_overrides. Do not
AC_SUBST cross_defines or extra_c_flags.
* Makefile.in (NATIVE_SYSTEM_HEADER_DIR): New.
(SYSTEM_HEADER_DIR, HOST_PREFIX, HOST_CC, HOST_PREFIX,
HOST_PREFIX_1, HOST_CFLAGS, ALL, INTERNAL_CFLAGS): Set
partially or completely with autoconf-substituted @variable@
notation.
(INSTALL_TARGET, @cross_defines@, @cross_overrides@,
@build_overrides@, @extra_c_flags@, all.build, install-build,
install-cross-rest, install-float-h-cross): Deleted.
(install-normal): Rename to install. Delete old "install"
indirection rule.
* ada/Makefile.in, ch/Makefile.in: Don't set ALL. Delete
@cross_defines@, @cross_overrides@, @build_overrides@ stanzas.
INTERNAL_CFLAGS is now @CROSS@ -DIN_GCC; update comment.
Alexandre Oliva [Tue, 4 Dec 2001 10:34:40 +0000 (10:34 +0000)]
c-decl.c (duplicate_decls): Revert rth's patch.
* c-decl.c (duplicate_decls): Revert rth's patch. If newdecl
is in a different binding level, get its abstract origin to be
olddecl.
* tree-inline.c (expand_call_inline): Move DECL_INITIAL sanity
check earlier.
* tree.c (get_callee_fndecl): Follow DECL_ABSTRACT_ORIGIN if
DECL_INITIAL is NULL.
Alexandre Oliva [Tue, 4 Dec 2001 10:30:04 +0000 (10:30 +0000)]
stmt.c (expand_expr_stmt): Keep last_expr_value non-NULL iff we're interested in the result.
* stmt.c (expand_expr_stmt): Keep last_expr_value non-NULL iff
we're interested in the result. Use it to tell whether to
ignore results of enclosed expressions.
(expand_start_stmt_expr): Added new argument, and initialize
last_expr_value accordingly.
* tree.h (expand_start_stmt_expr): Adjusted declaration.
* c-common.c (c_expand_expr): Adjust call.
* expr.c (expand_expr) [EXPR_WFL]: Pass const0_rtx down if
ignoring the result.
Nathan Sidwell [Tue, 4 Dec 2001 09:48:53 +0000 (09:48 +0000)]
re PR c++/164 (bogus error throwing class with inaccessible base)
cp:
PR g++/164
* init.c (sort_base_init): Allow binfos to be directly specified.
* method.c (do_build_copy_constructor): Explicitly convert to the
base instance.
(do_build_assign_ref): Likewise.
testsuite:
* g++.dg/inherit/base1.C: New test.
Jakub Jelinek [Tue, 4 Dec 2001 09:33:17 +0000 (10:33 +0100)]
flow.c (ior_reg_cond): Return NULL if ! add and rtx wasn't optimized.
* flow.c (ior_reg_cond): Return NULL if ! add and rtx wasn't optimized.
Return correct value if one of the subexpressions was optimized to
0 resp. 1. Optimize (x | A) | x and (x & A) | x.
(and_reg_cond): Similarly.
Joseph Myers [Tue, 4 Dec 2001 09:21:56 +0000 (09:21 +0000)]
install.texi: Use the GFDL.
* doc/install.texi: Use the GFDL. Include years from old install
manual in copyright notice. Include copyright and GFDL notice on
HTML index page. Include usual footer on testing.html.
* doc/install.texi2html: Build gfdl.html. Use -I
$SOURCEDIR/include.
* doc/include/fdl.texi: Adapt for use in the install manual.
Per Bothner [Tue, 4 Dec 2001 01:10:08 +0000 (17:10 -0800)]
decl.c (complete_start_java_method): Now generate TRY_FINALLY_EXPR instead of CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR.
* decl.c (complete_start_java_method): Now generate TRY_FINALLY_EXPR
instead of CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR.
* jcf-write.c (generate_bytecode_insns): Remove support for
CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR as they are no longer used.
* check-init.c (check_init): Likewise.
Janis Johnson [Tue, 4 Dec 2001 00:52:43 +0000 (00:52 +0000)]
builtin-prefetch-1.c: New test.
* gcc.c-torture/execute/builtin-prefetch-1.c: New test.
* gcc.c-torture/execute/builtin-prefetch-2.c: New test.
* gcc.c-torture/execute/builtin-prefetch-3.c: New test.
* gcc.c-torture/execute/builtin-prefetch-4.c: New test.
* gcc.c-torture/execute/builtin-prefetch-5.c: New test.
* gcc.dg/builtin-prefetch-1.c: New test.
Janis Johnson [Tue, 4 Dec 2001 00:40:21 +0000 (00:40 +0000)]
i386.md (prefetch): Rename as prefetch_sse to avoid conflicts with new generic prefetch functionality.
* config/i386/i386.md (prefetch): Rename as prefetch_sse to avoid
conflicts with new generic prefetch functionality.
* config/i386/i386.c (ix86_expand_builtin): Use new name for
prefetch_sse.
* config/i386/i386.md (prefetch): Rename as prefetch_sse to avoid
conflicts with new generic prefetch functionality.
* config/i386/i386.c (ix86_expand_builtin): Use new name for
prefetch_sse.
Ziemowit Laski [Tue, 4 Dec 2001 00:25:20 +0000 (00:25 +0000)]
Make-lang.in: Update copyright.
* objc/Make-lang.in: Update copyright.
(OBJC_OBJS): Add objc-lang.o.
(objc-lang.o): New rule.
* objc/config-lang.in: Fix file description and update
copyright.
* objc/objc-act.c: Do not include langhooks.h and
langhooks-def.h
(lang_hooks): Move (along with LANG_HOOKS...) to objc-lang.c.
(objc_post_options): Move to objc-lang.c.
(objc_init_options): Move to objc-lang.c.
(objc_init): Make non-static.
(HASHFUNCTION): Remove macro.
(hash_func): New function.
(hash_enter): Replace HASHFUNCTION with hash_func.
(hash_lookup): Replace HASHFUNCTION with hash_func.
(maybe_objc_tree_codes): New function.
(init_objc): Move ObjC tree code initialization to
maybe_objc_tree_codes().
* objc/objc-act.h (GCC_OBJC_ACT_H): New include guard.
(objc_init): New public prototype.
(objc_decode_option): New public prototype.
(maybe_add_objc_tree_codes): New public prototype.
* objc/objc-lang.c: New file.
(lang_hooks): Moved from objc-act.c.
(objc_post_options): Moved from objc-act.c.
(objc_init_options): Moved from objc-act.c.
Per Bothner [Mon, 3 Dec 2001 23:30:21 +0000 (15:30 -0800)]
verify.c (subroutine_nesting): New function.
* verify.c (subroutine_nesting): New function.
(verify_jvm_instructions): Use it to fix logic for checking that
we're done with the current subroutine.
* verify.c (verify_jvm_instruction): For OPCODE_checkcast and
OPCODE_instanceof use POP_TYPE macro for better diagnostics.
Steve Ellcey [Mon, 3 Dec 2001 22:28:57 +0000 (22:28 +0000)]
configure.in: Add support for hpux cross compiles...
2001-12-03 Steve Ellcey <sje@cup.hp.com>
* libstdc++-v3/configure.in: Add support for hpux cross compiles,
combine common linux/hpux/generic cross compile support to reduce
redundent lines.
* libstdc++-v3/configure: Regenerate.
Ed Schonberg [Mon, 3 Dec 2001 19:21:33 +0000 (19:21 +0000)]
sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and push Standard on the stack before analyzing the...
2001-12-03 Ed Schonberg <schonber@gnat.com>
* sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
push Standard on the stack before analyzing the instance body,
in order to have a clean visibility environment.
Loren J. Rittle [Mon, 3 Dec 2001 19:11:01 +0000 (19:11 +0000)]
howto.html: Update commentary.
* docs/html/ext/howto.html: Update commentary.
* include/bits/c++config: Update threading configuration comment.
(__STL_GTHREADS): Remove macro definition.
(__STL_THREADS): Likewise.
* include/bits/stl_threads.h: Leave only the configuration
path which had been guarded by __STL_GTHREADS. Remove all
guards related to __STL_GTHREADS, __STL_SGI_THREADS,
__STL_PTHREADS, __STL_UITHREADS and __STL_WIN32THREADS.
* include/bits/stl_alloc.h: Leave only the configuration path
which had been guarded by __STL_THREADS. Remove configuration
path and guards for __STL_SGI_THREADS.
(__NODE_ALLOCATOR_THREADS): Remove macro definition. Unroll its use.
(__NODE_ALLOCATOR_LOCK): Likewise.
(__NODE_ALLOCATOR_UNLOCK): Likewise.
(_NOTHREADS): Remove guards related to macro.
* include/ext/stl_rope.h: Remove configuration path and guards
for __STL_SGI_THREADS.
* src/stl-inst.cc: Remove use of __NODE_ALLOCATOR_THREADS.
Ed Schonberg [Mon, 3 Dec 2001 18:56:11 +0000 (18:56 +0000)]
* sem_ch12.adb:
(Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
to prevent freezing within formal packages.
(Freeze_Subprogram_Body): If body comes from another instance that
appeared before its own body, place freeze node at end of current
declarative part, to prevent a back-end crash.
(Inline_Instance_Body): Handle properly a package instance within
a subprogram instance that is a child unit.
Jan Hubicka [Mon, 3 Dec 2001 15:22:47 +0000 (16:22 +0100)]
gcse.c (delete_null_pointer_checks_1): Do not use delelete_list; call purge_dead_edges after removing.
* gcse.c (delete_null_pointer_checks_1): Do not use delelete_list;
call purge_dead_edges after removing.
(delete_null_pointer_checks): Do not handle delete_list.
* cfgbuild.c (inside_basic_block_p, control_flow_insn_p): Break out from ...
(count_basic_blocks): ... here.
(find_basic_blocks, find_bb_boundaries): Cleanup.
* stor-layout.c (fixup_signed_type, fixup_unsigned_type): Avoid
overflow for types greater then 2 * HOST_WIDE_INT.
* reload.c (find_reloads): Update the duplicates after swapingg.
Zack Weinberg [Mon, 3 Dec 2001 00:49:41 +0000 (00:49 +0000)]
rs6000.h (MASK_ALTIVEC_ABI, [...]): Delete.
* config/rs6000/rs6000.h (MASK_ALTIVEC_ABI,
MASK_LONG_DOUBLE_128): Delete.
(MASK_AIX_STRUCT_RET, MASK_AIX_STRUCT_RET_SET,
TARGET_AIX_STRUCT_RET): New flags.
(TARGET_SWITCHES): Remove entries for -mlong-double-128 and
-mlong-double-64. Add entries for -m(no-)aix-struct-return
and -m(no-)svr4-struct-return.
(TARGET_OPTIONS): Add entry for -mlong-double-.
(rs6000_long_double_size_string, rs6000_long_double_type_size,
rs6000_altivec_abi): Declare.
(TARGET_LONG_DOUBLE_128, TARGET_ALTIVEC_ABI,
LONG_DOUBLE_TYPE_SIZE): Change definitions to match.
(RETURN_IN_MEMORY): If !TARGET_AIX_STRUCT_RET, return
structures of size <= 8 bytes in registers.
(PRINT_OPERAND_PUNCT_VALID_P): Take out '$' and '*'.
* config/rs6000/rs6000.c (rs6000_long_double_size_string,
rs6000_long_double_type_size, rs6000_altivec_abi): New
globals.
(rs6000_override_options): Set rs6000_long_double_type_size
from rs6000_long_double_size_string, if nonzero. Set the
MASK_AIX_STRUCT_RET bit in target_flags from DEFAULT_ABI, if
not already set.
(rs6000_parse_abi_options): Set rs6000_altivec_abi, not a
target_flags bit.
(rs6000_init_builtins): This hook now takes no arguments.
* config/rs6000/netbsd.h, config/rs6000/linux.h: Define
DRAFT_V4_STRUCT_RET to 1.
Phil Edwards [Mon, 3 Dec 2001 00:33:57 +0000 (00:33 +0000)]
howto.html: Update list of implemented DRs.
2001-12-02 Phil Edwards <pme@gcc.gnu.org>
* docs/html/ext/howto.html: Update list of implemented DRs.
* docs/html/ext/lwg-active.html: Import R20 from upstream.
* docs/html/ext/lwg-defects.html: Import R20 from upstream.
rtl.h (mem_attrs): Rename decl to expr; adjust all users.
* rtl.h (mem_attrs): Rename decl to expr; adjust all users.
(MEM_EXPR): Rename from MEM_DECL; adjust all users.
* emit-rtl.c (set_mem_expr): Rename from set_mem_decl.
* expr.h, final.c, reload1.c: Adjust users.
* alias.c (nonoverlapping_component_refs_p): New.
(decl_for_component_ref, adjust_offset_for_component_ref): New.
(nonoverlapping_memrefs_p): Use them.
* emit-rtl.c (component_ref_for_mem_expr): New.
(set_mem_attributes): Use it.
(set_mem_offset): New.
* expr.c (expand_assignment): Call set_mem_attributes for
inner references; adjust the memory offset as needed.
* print-rtl.c (print_mem_expr): New.
(print_rtx): Use it.
Douglas B Rupp [Sun, 2 Dec 2001 14:38:07 +0000 (09:38 -0500)]
vms.h (VMS_DEBUGGING_INFO): New macro.
* config/alpha/vms.h (VMS_DEBUGGING_INFO): New macro.
(PREFERRED_DEBUGGING_TYPE): Define as VMS_AND_DWARF2_DEBUG.
(ASM_SPEC): Don't redefine.
(OPTIMIZATION_OPTIONS, OVERRIDE_OPTIONS, LINK_SPEC): Define.
* config/alpha/t-vms (EXTRA_PARTS): Use; add rule for vms-dwarf2.asm.
* config/alpha/vms-dwarf2.asm: New file.
* Makefile.in (OBJS): Add vmsdbgout.c and its rule.
* c-lex.c (init_c_lex): Test for VMS_AND_DWARF2_DEBUG.
* debug.h (gcc_debug_hooks): Add vmsdbg_debug_hooks.
(vmsdbgout_after_prologue): New declaration.
* defaults.h (VMS_DEBUGGING_INFO): Add to PREFERRED_DEBUGGING_TYPE.
* dwarf2.h (dwarf_attribute): New DW_AT_VMS_rtnbeg_pd_address.
* dwarf2out.c (dwarf2out_do_frame): Test for VMS_AND_DWARF2_DEBUG.
(dwarf2out_frame_finish): Test for VMS_AND_DWARF2_DEBUG.
(dwarf_attr_name): Use DW_AT_VMS_rtnbeg_pd_address.
(add_name_and_src_coords_attributes): Test VMS_DEBUGGING_INFO
* final.c (final_start_function): Test for VMS_AND_DWARF2_DEBUG.
Test VMS_DEBUGGING_INFO.
(final_end_function): Test for VMS_AND_DWARF2_DEBUG.
(final_scan_insn): Test for VMS_AND_DWARF2_DEBUG and VMS_DEBUG.
* flags.h (debug_info_type): Add VMS_DEBUG and VMS_AND_DWARF2_DEBUG.
* toplev.c (compile_file): Test VMS_DEBUGGING_INFO, VMS_DEBUG, and
VMS_AND_DWARF2_DEBUG.
(rest_of_type_compilation): Test for VMS_AND_DWARF2_DEBUG.
(decode_g_option): Add "vms" to debug_type_names.
(process_options): Set vmsdbg_debug_hooks if -gvms.
(lang_independent_init): Emit line number for VMS unless -g0.
* tree.c: (build_complex_type): Test for VMS_AND_DWARF2_DEBUG.
* vmsdbg.h, vmsdbgout.c: New files.
* expr.c: call save_expr on array for correct evaluation order,
modified comment, fixed indentation.
* parse.y: (patch_assignment): Correctly extract the array base
from the tree generate by build_java_arrayaccess, added comments.
(patch_array_ref): Remove SAVE_EXPR on ARRAY_REF.
Fixes PR java/3096, PR java/3803, PR java/3965.
* config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Simplify.
* config/rs6000/rs6000.c (rs6000_emit_move): Use adjust_address
rather than simplify_subreg. Check for volatile-ness. Check that
we're not splitting one slow operation into two slow operations.
In gcc/testsuite/:
* gcc.c-torture/compile/structs.c: New testcase from GDB.
rs6000.h (LEGITIMATE_LO_SUM_ADDRESS_P): Complex LO_SUM addresses less than word size are not legitimate...
* config/rs6000/rs6000.h (LEGITIMATE_LO_SUM_ADDRESS_P): Complex
LO_SUM addresses less than word size are not legitimate,
because they lead to invalid SUBREGs.
* config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.