Michael Matz [Mon, 2 May 2005 04:22:45 +0000 (04:22 +0000)]
re PR c++/19542 (attribute(sentinel) has problems with C++ __null)
PR c++/19542
* c-common.c (c_common_nodes_and_builtins): Create global null_node.
(warn_strict_null_sentinel): Define.
(check_function_sentinel): Check for null_node as valid sentinel too.
* c-common.h (c_tree_index): Added CTI_NULL.
(null_node) Define global_tree[CTI_NULL].
(warn_strict_null_sentinel): Declare.
* c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
* c.opt: (Wstrict-null-sentinel): New C++ option.
* doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
* cp-tree.h (cp_tree_index): Remove CPTI_NULL, to be defined in C
common frontend.
(null_node): Remove.
* lex.c (cxx_init): Move null_node initialisation to C common frontend.
* g++.dg/warn/sentinel.C: New testcase for __null sentinels added.
Mark Mitchell [Sun, 1 May 2005 20:30:40 +0000 (20:30 +0000)]
c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1 if !flag_weak.
* c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
if !flag_weak.
* doc/cpp.texi (__DEPRECATED): Document.
(__EXCEPTIONS): Likewise.
(__GXX_WEAK__): Likewise.
Gerald Pfeifer [Sun, 1 May 2005 13:39:37 +0000 (13:39 +0000)]
install.texi (Specific): Omit dots in the @anchors names for i?86-*-sco3.2v5*...
* doc/install.texi (Specific): Omit dots in the @anchors names
for i?86-*-sco3.2v5*, i?86-*-solaris2.10, and sparc-sun-solaris2.7.
Omit underscores for x86_64-*-* and the "all ELF targets" entry.
Zdenek Dvorak [Sun, 1 May 2005 08:08:14 +0000 (10:08 +0200)]
re PR tree-optimization/18316 (Missed IV optimization)
PR tree-optimization/18316
PR tree-optimization/19126
* tree.c (build_int_cst_type): Avoid shift by size of type.
* tree-scalar-evolution.c (simple_iv): Add allow_nonconstant_step
argument.
* tree-scalar-evolution.h (simple_iv): Declaration changed.
* tree-ssa-loop-ivopts.c (struct iv_cand): Add depends_on
field.
(dump_cand): Dump depends_on information.
(determine_biv_step): Add argument to simple_iv call.
(contains_abnormal_ssa_name_p): Handle case expr == NULL.
(find_bivs, find_givs_in_stmt_scev): Do not require step to be a
constant.
(add_candidate_1): Record depends_on for candidates.
(tree_int_cst_sign_bit, constant_multiple_of): New functions.
(get_computation_at, get_computation_cost_at, may_eliminate_iv):
Handle ivs with nonconstant step.
(iv_ca_set_remove_invariants, iv_ca_set_add_invariants): New functions.
(iv_ca_set_no_cp, iv_ca_set_cp): Handle cand->depends_on.
(create_new_iv): Unshare the step before passing it to create_iv.
(free_loop_data): Free cand->depends_on.
(build_addr_strip_iref): New function.
(find_interesting_uses_address): Use build_addr_strip_iref.
(strip_offset_1): Split the recursive part from strip_offset.
Strip constant offset component_refs and array_refs.
(strip_offset): Split the recursive part to strip_offset_1.
(add_address_candidates): Removed.
(add_derived_ivs_candidates): Do not use add_address_candidates.
(add_iv_value_candidates): Add candidates with stripped constant
offset. Consider all candidates with initial value 0 important.
(struct affine_tree_combination): New.
(aff_combination_const, aff_combination_elt, aff_combination_scale,
aff_combination_add_elt, aff_combination_add,
tree_to_aff_combination, add_elt_to_tree, aff_combination_to_tree,
fold_affine_sum): New functions.
(get_computation_at): Use fold_affine_sum.
* tree-ssa-loop-manip.c (create_iv): Handle ivs with nonconstant step.
* tree-ssa-loop-niter.c (number_of_iterations_exit): Add argument
to simple_iv call.
Paul Brook [Sat, 30 Apr 2005 19:40:53 +0000 (19:40 +0000)]
bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in thumb mode.
2005-04-30 Paul Brook <paul@codesourcery.com>
* config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
thumb mode.
* config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
* config/arm/ieee754-sf.S: Ditto.
* config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
(FUNC_ALIAS): Use .thumb_set for thumb routines.
Paolo Carlini [Sat, 30 Apr 2005 06:54:08 +0000 (06:54 +0000)]
re PR libstdc++/21286 (filebuf::xsgetn vs pipes)
2005-04-29 Paolo Carlini <pcarlini@suse.de>
Nathan Myers <ncm@cantrip.org>
PR libstdc++/21286
* include/bits/fstream.tcc (basic_filebuf<>::xsgetn):
Loop on short reads; remove the work-around for
libstdc++/20806, not needed anymore.
Andrew Haley [Fri, 29 Apr 2005 18:35:36 +0000 (18:35 +0000)]
re PR java/19285 (Interfaces not initialized by static field access)
2005-04-27 Andrew Haley <aph@redhat.com>
PR java/19285
* prims.cc (_Jv_ResolvePoolEntry): New function.
* include/jvm.h (_Jv_Linker::find_field): New arg: found_class.
* link.cc (_Jv_Linker::find_field): New arg: found_class.
(resolve_pool_entry): Initialize the class in which a field is
found.
(link_symbol_table): Pass new arg to found_class.
Jakub Jelinek [Fri, 29 Apr 2005 15:31:39 +0000 (17:31 +0200)]
[multiple changes]
2005-04-29 Jakub Jelinek <jakub@redhat.com>
PR fortran/13082
PR fortran/18824
* trans-expr.c (gfc_conv_variable): Handle return values in functions
with alternate entry points.
* resolve.c (resolve_entries): Remove unnecessary string termination
after snprintf. Set result of entry master.
If all entries have the same type, set entry master's type
to that common type, otherwise set mixed_entry_master attribute.
* trans-types.c (gfc_get_mixed_entry_union): New function.
(gfc_get_function_type): Use it for mixed_entry_master functions.
* gfortran.h (symbol_attribute): Add mixed_entry_master bit.
* decl.c (gfc_match_entry): Set entry->result properly for
function ENTRY.
* trans-decl.c (gfc_get_symbol_decl): For entry_master, skip over
__entry argument.
(build_entry_thunks): Handle return values in entry thunks.
Clear BT_CHARACTER's ts.cl->backend_decl, so that it is not
shared between multiple contexts.
(gfc_get_fake_result_decl): Use DECL_ARGUMENTS from
current_function_decl instead of sym->backend_decl. Skip over
entry master's entry id argument. For mixed_entry_master entries or
their results, return a COMPONENT_REF of the fake result.
(gfc_trans_deferred_vars): Don't warn about missing return value if
at least one entry point uses RESULT.
(gfc_generate_function_code): For entry master returning
CHARACTER, copy ts.cl->backend_decl to all entry result syms.
* trans-array.c (gfc_trans_dummy_array_bias): Don't consider return
values optional just because they are in entry master.
* gfortran.dg/entry_4.f90: New test.
* gfortran.fortran-torture/execute/entry_1.f90: New test.
* gfortran.fortran-torture/execute/entry_2.f90: New test.
* gfortran.fortran-torture/execute/entry_3.f90: New test.
* gfortran.fortran-torture/execute/entry_4.f90: New test.
* gfortran.fortran-torture/execute/entry_5.f90: New test.
* gfortran.fortran-torture/execute/entry_6.f90: New test.
* gfortran.fortran-torture/execute/entry_7.f90: New test.
* configure.ac: Check for ftruncate and chsize.
* io/unix.c (fd_truncate): Provide chsize as alternative to
ftruncate.
* config.h.in: Regenerate.
* configure: Regenerate.
Mark Mitchell [Fri, 29 Apr 2005 14:22:10 +0000 (14:22 +0000)]
arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a definition has already been provided.
* config/arm/arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a
definition has already been provided.
(ARM_EABI_DTORS_SECTION_OP): Likewise.
* config/arm/symbian.h (ARM_EABI_CTORS_SECTION_OP): Define.
(ARM_EABI_DTORS_SECTION_OP): Likewise.
Julian Brown [Fri, 29 Apr 2005 14:09:45 +0000 (14:09 +0000)]
crtstuff.c: Handle targets that use .init_array.
* crtstuff.c: Handle targets that use .init_array.
* function.c (HAS_INIT_SECTION): Do not define. Instead, make sure
that INVOKE__main is set correctly.
(expand_main_function): Test INVOKE__main.
* libgcc2.c: Do not define __main when using .init_array.
* config/arm/arm.c (arm_elf_asm_constructor): New function.
* config/arm/arm.h (CTORS_SECTION_ASM_OP): Define, with specialized
libgcc version.
(DTORS_SECTION_ASM_OP): Likewise.
(CTOR_LIST_BEGIN): Define specially when in libgcc.
(CTOR_LIST_END): Likewise.
(DTOR_LIST_BEGIN): Likewise.
(DTOR_LIST_END): Likewise.
* config/arm/bpapi.h (INIT_SECTION_ASM_OP): Do not define it.
(FINI_SECTION_ASM_OP): Likewise.
(INIT_ARRAY_SECTION_ASM_OP): Define.
(FINI_ARRAY_SECTION_ASM_OP): Likewise.
* config/arm/elf.h (TARGET_ASM_CONSTRUCTOR): Define.
(SUPPORTS_INIT_PRIORITY): Evaluate to false for EABI based targets.
* doc/tm.texi (INIT_ARRAY_SECTION_ASM_OP): Document.
(FINI_ARRAY_SECTION_ASM_OP): Likewise.
Co-Authored-By: Mark Mitchell <mark@codesourcery.com> Co-Authored-By: Paul Brook <paul@codesourcery.com>
From-SVN: r98986
fortran/
* gfortran.h (gfc_namespace): Add seen_implicit_none field.
* symbol.c (gfc_set_implicit_none): Give error if there's a previous
IMPLICIT NONE, set seen_implicit_none.
(gfc_merge_new_implicit): Error if there's an IMPLICIT NONE statement.
testsuite/
* gfortran.dg/implicit_4.f90: New test.
Paolo Carlini [Thu, 28 Apr 2005 22:35:09 +0000 (22:35 +0000)]
type_traits (is_convertible): Adjust according to the resolution of TR1 issue 3.20.
2005-04-29 Paolo Carlini <pcarlini@suse.de>
* include/tr1/type_traits (is_convertible): Adjust according
to the resolution of TR1 issue 3.20.
* testsuite/tr1/4_metaprogramming/relationships_between_types/
is_convertible/is_convertible.cc: Add tests.
DJ Delorie [Thu, 28 Apr 2005 20:52:12 +0000 (16:52 -0400)]
optc-gen.awk (END): Make sure no variable is defined more than once.
* optc-gen.awk (END): Make sure no variable is defined more
than once.
* opth-gen.awk (END): Allocate bits on a per-variable basis.
Allow for bitfield variables other than target_flags.
* doc/options.text (Mask): Document that you may specify a
variable other than target_flags.
global.c (earlyclobber_regclass): Change the type to VEC(int,heap).
* global.c (earlyclobber_regclass): Change the type to
VEC(int,heap).
(check_earlyclobber): Update uses of earlyclobber_regclass.
(mark_reg_use_for_earlyclobber): Likewise.
(calculate_local_reg_bb_info): Allocate and free
earlyclobber_regclass using the VEC API.
re PR fortran/20865 (statement function shall not be supplied as procedure argument)
PR fortran/20865
* resolve.c (resolve_actual_arglist): Issue an error if a statement
functions is used as actual argument.
* gfortran.dg/pr20865.f90: New test.
James E Wilson [Thu, 28 Apr 2005 00:40:42 +0000 (17:40 -0700)]
Fix issues brought up by Nathan's assertify patch for the ia64 backend.
* config/ia64/ia64.c (update_set_flags): Delete ppred and pcond
parameters. Replace conditional move code with assert checking for
ar.lc. Delete obsolete comments.
(set_src_needs_barrier): Delete cond parameter, and code using it.
(rtx_needs_barrier): Delete initialization of cond. Fix typo in
assert checking for PR_REGS. Fix calls to update_set_flags and
set_src_needs_barrier.
(group_barrier_needed): Renamed from group_barrier_needed_p. Fix all
callers. Rewrite explanatory comment before the function.
(safe_group_barrier_needed): Renamed from safe_group_barrier_needed_p.
Fix all callers.