configure.in: Standardized help text case of --enable-hash-synchronization New configure...
* configure.in: Standardized help text case of
--enable-hash-synchronization
New configure switch --enable-libgcj-multifile and corresponding
automake conditional ONESTEP.
* configure: Rebuilt.
* Makefile.am: Use automake conditional ONESTEP to determine
whether classfiles should be compiled individually or all
at once.
* Makefile.in: Rebuilt.
Eric Botcazou [Wed, 17 Sep 2003 07:11:01 +0000 (09:11 +0200)]
re PR rtl-optimization/11646 (ICE in commit_one_edge_insertion with -fnon-call-exceptions -fgcse -O)
PR optimization/11646
* cfgrtl.c (purge_dead_edges) [JUMP_INSN]: Rematerialize the
EDGE_ABNORMAL flag for EH edges.
* toplev.c (rest_of_handle_cse): Delete unreachable blocks
if dead edges were purged.
* Makefile.am: (MOSTLYCLEANFILES) Removed libtool objects.
(mostlyclean-local): New target patterned after clean-local
which recursively deletes all libtool objects using 'libtool rm'.
(clean-local): Slightly modified comment to alleviate monotony.
(distclean-local): New target patterned after clean-local
which recursively deletes all .d files.
* Makefile.in: Rebuilt.
Roger Sayle [Tue, 16 Sep 2003 17:16:25 +0000 (17:16 +0000)]
re PR bootstrap/12269 (Mainline failed to bootstrap on Linux/ia64)
PR bootstrap/12269
* simplify-rtx.c (simplify_gen_relational): Allow the cmp_mode
argument to be VOIDmode, taking the mode of the comparison from
the operands. Only call simplify_relational_operation if we
know the mode of the comparison. Honor FLOAT_STORE_FLAG_VALUE
if comparison has a floating point result. Ensure that the
result is always of the specified mode.
(simplify_replace_rtx): Simplify call to simplify_gen_relational.
(simplify_unary_operation): Ensure the correct mode and cmp_mode
are always passed to simplify_gen_relational. Simplify NOT of
comparison operator in any mode, not just BImode.
(simplify_ternary_operation): Correct tests on the return value
of simplify_relational_operation to use const_true_rtx, not
const1_rtx. Abort if it ever returns a non-constant result.
* cfgloopanal.c (count_strange_loop_iterations): Use the function
simplify_relational_operation, not simplify_gen_relational, if
we're only interested in constant comparisons and will ignore
non-constant results.
Roger Sayle [Tue, 16 Sep 2003 17:08:50 +0000 (17:08 +0000)]
fold-const.c (tree_swap_operands_p): New function to determine the prefered ordering of operands.
* fold-const.c (tree_swap_operands_p): New function to determine
the prefered ordering of operands.
(fold): Numerous clean-ups. Use tree_swap_operands_p when swapping
operands to commutative, comparison or ternary operators. Replace
uses of TREE_SET_CODE with recursive call to fold. Remove duplicate
transformation of A ? B : C into !A ? C : B.
Jason Merrill [Tue, 16 Sep 2003 07:58:27 +0000 (03:58 -0400)]
c-common.c (handle_warn_unused_result_attribute): New function.
* c-common.c (handle_warn_unused_result_attribute): New function.
(c_common_attribute_table): Add warn_unused_result.
(c_expand_expr): Issue warning when result of inlined function
with warn_unused_result attribute is ignored.
* calls.c (expand_call): Issue warning when result of function
with warn_unused_result attribute is ignored.
* c-common.h (STMT_EXPR_WARN_UNUSED_RESULT): Define.
* expr.c (expr_wfl_stack): Define.
(expand_expr) <case EXPR_WITH_FILE_LOCATION>: If ignore,
pass const0_rtx as target. Chain locations into expr_wfl_stack.
* tree-inline.c (expand_call_inline): Set STMT_EXPR_WARN_UNUSED_RESULT
bit if inlined function has warn_unused_result attribute.
* input.h (expr_wfl_stack): Declare.
* doc/extend.texi: Document warn_unused_result attribute.
* gcc.dg/attr-warn-unused-result.c: New test.
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r71424
* config/xtensa/xtensa.c (xtensa_multibss_section_type_flags): Add
ATTRIBUTE_UNUSED.
(call_insn_operand): For PIC, don't allow a direct call to a
function in a different section than the current one.
* doc/invoke.texi (Warning Options): Add missing hyphen before
"Wimport". Change "-Wno-endif-labels" to "-Wendif-labels".
Move "-Wold-style-definition" to the C-only section.
Fix the ordering of the warning options.
re PR c++/12184 (ICE with trying to convert an incomplete type)
cp:
PR c++/12184
* typeck.c (convert_arguments): Return error_mark_node for an
incomplete parameter. Make error message more informative.
testsuite:
PR c++/12184
* g++.dg/expr/call2.C: New test.
Mark Mitchell [Mon, 15 Sep 2003 00:59:28 +0000 (00:59 +0000)]
re PR c++/3907 (nested template parm collides with member name)
* coverage.c (create_coverage): Do not call pushlevel/poplevel.
* langhooks-def.h (lhd_do_nothing_iii_return_null_tree): New
function.
* langhooks.c (lhd_do_nothing_iii_return_null_tree): Define it.
PR c++/3907
* class.c (maybe_note_name_used_in_class): Refine test for whether
or not we are in a class scope.
* cp-tree.h (language_function): Remove x_expanding_p.
(expanding_p): Remove.
(doing_semantic_analysis_p): Remove.
(scope_kind): Add sk_function_parms, sk_class,
sk_namespace.
(innermost_scope_kind): New method.
* call.c (cxx_type_promotes_to): Use type_decays_to.
* cp-lang.c (LANG_HOOKS_PUSHLEVEL): Redefine.
(LANG_HOOKS_POPLEVEL): Likewise.
* decl.c (cp_binding_level): Remove parm_flag, template_parms_p,
template_spec_p, namespace_p, is_for_scope, is_try_scope, and
is_catch_scope. Add kind and explicit_spec_p.
(cxx_scope_descriptor): Use a lookup table.
(find_class_binding_level): Use "kind" field in binding_level, not
the various flags.
(pop_binding_level): Likewise.
(innermost_nonclass_level): Likewise.
(toplevel_bindings_p): Likewise.
(namespace_bindings_p): Likewise.
(template_parm_scope_p): Likewise.
(innermost_scope_kind): New method.
(current_tmpl_spec_kind): Use "kind" field in binding_level, not
the various flags.
(pushlevel): Remove check for doing_semantic_analysis_p.
(begin_scope): Simplify.
(add_decl_to_level): Use "kind" field in binding_level, not
the various flags.
(push_local_binding): Likewise.
(pop_label): Remove check for doing_semantic_analysis_p.
(poplevel): Use "kind" field in binding_level, not
the various flags.
(set_block): Remove check for doing_semantic_analysis_p.
(pushlevel_class): Use "kind" field in binding_level, not
the various flags.
(poplevel_class): Likewise.
(initial_push_namespace_scope): Likewise.
(maybe_push_to_top_level): Likewise.
(set_identifier_type_value_with_scope): Likewise.
(pop_everything): Likewise.
(maybe_process_template_type_declaration): Likewise.
(pushtag): Likewise.
(pushdecl): Likewise.
(pushdecl_with_scope): Likewise.
(check_previous_goto_1): Likewise.
(define_label): Likewise.
(finish_case_label): Likewise.
(lookup_tag): Likewise.
(unqualified_namespace_lookup): Likewise.
(lookup_name_real): Likewise.
(lookup_name_current_level): Likewise.
(lookup_type_current_level): Likewise.
(record_builtin_type): Likewise.
(cp_make_fname_decl): Likewise.
(maybe_inject_for_scope_var): Likewise.
(cp_finish_decl): Remove check for doing_semantic_analysis_p.
(start_function): Use begin_scope, not pushlevel.
(finish_function): Use "kind" field in binding_level, not
the various flags.
(start_method): Use begin_scope, not pushlevel.
(make_label_decl): Do not check expanding_p.
(save_function-data): Do not set expanding_p.
(cxx_push_function_context): Do not clear expanding_p.
* semantics.c (cxx_expand_function_start): Do not set expanding_p.
PR c++/3907
* g++.dg/parse/template12.C: New test.
* g++.dg/abi/bitfield11.C: New test.
* g++.dg/abi/bitfield12.C: Likewise.
* gcc.dg/cpp/separate-1.c: Adjust line of error. Test for correct
non-expansion of functional macro name without arguments at EOL.
* gcc.dg/cpp/spacing1.c: Revert 2003-08-04's change. Likewise.
function.c (STACK_BYTES): Move definition to head of file.
* function.c (STACK_BYTES): Move definition to head of file.
(assign_parms): Don't pass current_function_pretend_args_size
directly to SETUP_INCOMING_VARARGS. For partial register arguments,
round current_function_pretend_args_size up to STACK_BYTES. Skip any
excess before laying out the argument.
Andrew Pinski [Sun, 14 Sep 2003 04:43:10 +0000 (04:43 +0000)]
re PR target/12021 (warning "cpu" and "machine" reasserted for every file)
2003-09-13 Andrew Pinski <pinskia@physics.uc.edu>
PR target/12021
* config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Remove the asserts
as they already are done in config/m68k/m68k.h.
* config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Likewise
Andrew Pinski [Sun, 14 Sep 2003 01:14:18 +0000 (01:14 +0000)]
rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Remove.
2003-09-13 Andrew Pinski <pinskia@physics.uc.edu>
* config/rs6000/rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Remove.
(machopic_output_stub): Only generate pic base symbols when using pic
and generate them in the form L00000000$spb.
Roger Sayle [Fri, 12 Sep 2003 15:07:50 +0000 (15:07 +0000)]
re PR rtl-optimization/8967 (Making class data members `const' pessimizes code)
PR optimization/8967
* alias.c (write_dependence_p): Modify to take an additional constp
argument that controls whether the UNCHANGING_RTX_P flags are used.
(anti_dependence, output_dependence): Adjust write_dependence_p
callers to pass this additional argument, to return the same result.
(unchanging_anti_dependence): New variant of anti_dependence that
ignores the UNCHANGING_RTX_P property on memory references.
* rtl.h (unchaning_anti_dependence): Prototype here.
* flow.c (init_propagate_block): Place fake constant mem writes on
the mem_set_list so that dead writes to const variables are deleted.
(insn_dead_p): Change anti_dependence to unchanging_anti_dependence.
(mark_used_regs): Likewise.
* config/mcore/mcore-protos.h (mcore_r15_operand_p): Declare.
(mcore_secondary_reload_class): Declare.
(mcore_output_inline_const_forced): Remove.
* config/mcore/mcore.md (movsi): Remove the code that forced
non-inlineable constants into a register if the target was r15
or the stack pointer. Remove constant restrictions from the main
define_insn. Remove r <- I, r <- M and r <- N alternatives in favor
of an r <- P alternative. Remove fallback define_insn for reload.
(movhi, movqi): Use gen_lowpart rather than gen_SUBREG. Remove reload
define_insn. Use mcore_output_move in the remaining define_insn.
Adjust condition and constraints in the way as for movsi.
(movdi): Always split unacceptable constants into two. Use
simplify_gen_subreg instead of operand_subword{,_force}.
* config/mcore/mcore.c (mcore_output_inline_const_forced): Remove.
(mcore_output_move): Support HImode and QImode moves as well.
(mcore_m15_operand_p): New function.
(mcore_reload_class): Use it to detect cases where LRW_REGS are better.
(mcore_secondary_reload_class): New function.
* config/mcore/mcore.h (SECONDARY_RELOAD_CLASS): Redefine in
terms of mcore_secondary_reload_class.
Tom Tromey [Fri, 12 Sep 2003 01:08:18 +0000 (01:08 +0000)]
URLStreamHandler.java (parseURL): If original file ends with "/", so must canonical result.
* java/net/URLStreamHandler.java (parseURL): If original file
ends with "/", so must canonical result.
* java/io/natFilePosix.cc (getCanonicalPath): Clean up snafus
with nul-termination and finding previous "/".
Alan Modra [Thu, 11 Sep 2003 23:54:40 +0000 (23:54 +0000)]
prep_cif.c (initialize_aggregate): Include tail padding in structure size.
* src/prep_cif.c (initialize_aggregate): Include tail padding in
structure size.
* src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
placement of float result.
* testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
cast of "resp" for big-endian 64 bit machines.
builtins.c (fold_builtin_logarithm): if N can't be truncated to MODE exactly...
* builtins.c (fold_builtin_logarithm): if N can't be truncated to
MODE exactly, then only convert logN(N) -> 1.0 if
flag_unsafe_math_optimizations is set.
Michael Koch [Thu, 11 Sep 2003 17:25:47 +0000 (17:25 +0000)]
acconfig.h: Removed most items.
2003-09-11 Michael Koch <konqueror@gmx.de>
* acconfig.h: Removed most items.
* configure.in: Added descriptions to AC_DEFINE macros that where in
acconfig.h before.
* include/config.h.in: Regenerated.
re PR c++/11788 (missing implicit instantiation of static member function)
cp:
PR c++/11788
* typeck.c (build_address): If it is a function, mark it used.
(build_unary_op): Do not lose object's side-effects when taking
address of static member function.
* class.c (resolve_address_of_overloaded_function): Use
tsubst_flags_t parameter. Only expect overload sets. Adjust.
(instantiate_type): Adjust flags passing. Do not lose object's
side-effects when taking address of static member function.
testsuite:
PR c++/11788
* g++.dg/overload/addr1.C: New test.
Roger Sayle [Thu, 11 Sep 2003 13:01:32 +0000 (13:01 +0000)]
combine.c (combine_simplify_rtx): Move several NOT and NEG optimizations from here...
* combine.c (combine_simplify_rtx): Move several NOT and NEG
optimizations from here...
* simplify-rtx.c (simplify_unary_operation): to here. Recursively
simplify expressions using simplify_gen_*ary instead of gen_rtx_*.
Alan Modra [Thu, 11 Sep 2003 05:17:57 +0000 (05:17 +0000)]
types.c (double, longdouble): Merge identical SH and ARM typedefs, and add POWERPC64.
* src/types.c (double, longdouble): Merge identical SH and ARM
typedefs, and add POWERPC64.
* src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
struct split over gpr and rest.
(ffi_prep_cif_machdep): Correct intarg_count for structures.
* src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
Jan Hubicka [Wed, 10 Sep 2003 23:45:05 +0000 (01:45 +0200)]
c-objc-common.c (c_cannot_inline_tree_fn): Warn on why function is not inlinable; do not check the body.
* c-objc-common.c (c_cannot_inline_tree_fn): Warn
on why function is not inlinable; do not check
the body.
(inline_forbidden_p): Move to...
* tree-inline.c (inline_forbidden_p_1): ... here; Add warnings;
deal with alloca, longjmp.
(inline_forbidden_p): New static function.
(find_alloca_call_1, find_alloca_call, find_builtin_longjmp_call_1,
find_builtin_longjmp_call): Kill.
vec.cc (__cxa_vec_new2): If the allocator returns NULL, return NULL.
2003-09-10 Jeffrey D. Oldham <oldham@codesourcery.com>
* libsupc++/vec.cc (__cxa_vec_new2): If the allocator returns
NULL, return NULL. This reflects a C++ ABI change 2003 Sep 05.
(__cxa_vec_new3): Likewise.
fstream.tcc (basic_filebuf::seekoff): Use codecvt::length to handle variable-width stateless encodings correctly.
2003-09-10 Petur Runolfsson <peturr02@ru.is>
* include/bits/fstream.tcc (basic_filebuf::seekoff):
Use codecvt::length to handle variable-width stateless encodings
correctly.
* testsuite/27_io/basic_filebuf/seekoff/wchar_t/1.cc: New test.
* testsuite/27_io/basic_filebuf/seekoff/wchar_t/2.cc: New test.