Tom Browder [Thu, 31 Jan 2008 23:58:50 +0000 (23:58 +0000)]
sourcebuild.texi (Front End): Remove references to CVS and CVSROOT/modules.
* doc/sourcebuild.texi (Front End): Remove references to CVS
and CVSROOT/modules.
(Texinfo Manuals): Replace reference to CVS by one to SVN.
(Back End): Remove reference to CVS.
Douglas Gregor [Thu, 31 Jan 2008 20:06:33 +0000 (20:06 +0000)]
re PR c++/34935 (ICE with attribute may_alias)
2008-01-31 Douglas Gregor <doug.gregor@gmail.com>
Jakub Jelinek <jakub@redhat.com>
PR c++/34935
PR c++/34936
* typeck.c (structural_comptypes): Handle comparisons of
VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, FIXED_POINT_TYPE, and
REAL_TYPE nodes.
* mangle.c (write_builtin_type): Map down to the canonical type,
which will be one of the predefined type nodes.
2008-01-31 Douglas Gregor <doug.gregor@gmail.com>
Jakub Jelinek <jakub@redhat.com>
* doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
options. Minor fixes.
(-std): Move reference to standards closer to where language
standards are first mentioned.
re PR target/34995 (MIPS16 ICE in gcc.c-torture/compile/pr34856.c)
gcc/
PR rtl-optimization/34995
* reload.c (alternative_allows_const_pool_ref): Take an rtx
parameter and return a bool. If the rtx parameter is nonnull,
check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
(find_reloads): Update call accordingly. Pass the new operand
if it needed no address reloads, otherwise pass null.
re PR rtl-optimization/34998 (gcc.c-torture/execute/20040709-1.c fails for -EL -mips16 -O3)
gcc/
PR rtl-optimization/34998
* global.c (build_insn_chain): Treat non-subreg_lowpart
SUBREGs of pseudos as clobbering all the words covered by the
SUBREG, not just all the bytes.
* ra-conflict.c (clear_reg_in_live): Likewise. Take the
original df_ref rather than an extract parameter.
(global_conflicts): Update call accordingly.
Andreas Krebbel [Wed, 30 Jan 2008 08:00:51 +0000 (08:00 +0000)]
fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange the overflow check to make it easier to read.
2008-01-30 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
the overflow check to make it easier to read.
(__fixtfdi): Change the type of the ll member in union
long_double to UDItype_x.
Paul Thomas [Wed, 30 Jan 2008 06:56:10 +0000 (06:56 +0000)]
re PR fortran/34975 (Bogus error with USEing modules)
2008-01-30 Paul Thomas <pault@gcc.gnu.org>
PR fortran/34975
* symbol.c (gfc_delete_symtree, gfc_undo_symbols): Rename
delete_symtree to gfc_delete_symtree.
* gfortran.h : Add prototype for gfc_delete_symtree.
* module.c (load_generic_interfaces): Transfer symbol to a
unique symtree and delete old symtree, instead of renaming.
(read_module): The rsym and the found symbol are the same, so
the found symtree can be deleted.
PR fortran/34429
* decl.c (match_char_spec): Remove the constraint on deferred
matching of functions and free the length expression.
delete_symtree to gfc_delete_symtree.
(gfc_match_type_spec): Whitespace.
(gfc_match_function_decl): Defer characteristic association for
all types except BT_UNKNOWN.
* parse.c (decode_specification_statement): Only derived type
function matching is delayed to the end of specification.
2008-01-30 Paul Thomas <pault@gcc.gnu.org>
PR fortran/34975
* gfortran.dg/use_only_3.f90: New test.
* gfortran.dg/use_only_3.inc: Modules for new test.
PR fortran/34429
* gfortran.dg/function_charlen_2.f90: New test.
Jakub Jelinek [Tue, 29 Jan 2008 23:21:24 +0000 (00:21 +0100)]
re PR middle-end/34969 (ICE with -fipa-cp -ffast-math)
PR middle-end/34969
* cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
* cgraph.c (cgraph_update_edges_for_call_stmt): New function.
* tree-inline.c (fold_marked_statements): Call
cgraph_update_edges_for_call_stmt if folding a call statement.
* cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
debug_generic_stmt calls, reset it back afterwards.
Jakub Jelinek [Tue, 29 Jan 2008 23:19:07 +0000 (00:19 +0100)]
re PR c/35017 (PR11377 pedwarns even about valid code)
PR c/35017
* c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
static decls.
* c-typeck.c (build_external_ref): Don't pedwarn about
static vars in current function's scope.
* gcc.dg/inline-25.c: New test.
* gcc.dg/inline-26.c: New test.
* gcc.dg/inline-27.c: New test.
Richard Guenther [Tue, 29 Jan 2008 15:47:19 +0000 (15:47 +0000)]
re PR tree-optimization/35006 (Segfault in remove_unused_locals with nested functions)
2008-01-29 Richard Guenther <rguenther@suse.de>
PR middle-end/35006
* tree-inline.h (struct copy_body_data): Add remapping_type_depth
field.
* tree-inline.c (remap_type): Increment remapping_type_depth
around remapping types.
(copy_body_r): Only add referenced variables if they are referenced
from code, not types.
Douglas Gregor [Tue, 29 Jan 2008 13:59:59 +0000 (13:59 +0000)]
re PR c++/34055 (ICE with invalid specialization of variadic template)
2008-01-29 Douglas Gregor <doug.gregor@gmail.com>
PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
2008-01-29 Douglas Gregor <doug.gregor@gmail.com>
PR c++/34055
PR c++/34103
PR c++/34219
PR c++/34606
PR c++/34753
PR c++/34754
PR c++/34755
PR c++/34919
PR c++/34961
* typeck.c (check_return_expr): Tweak call to
check_for_bare_parameter_packs.
* class.c (add_method): Be careful with error_mark_nodes.
* cp-tree.h (check_for_bare_parameter_packs): Remove "*" from
signature.
* pt.c (struct find_parameter_pack_data): Remove
SET_PACKS_TO_ERROR.
(find_parameter_packs_r): Don't use SET_PACKS_TO_ERROR.
(uses_parameter_packs): Don't set SET_PACKS_TO_ERROR.
(make_pack_expansion): Ditto.
(check_for_bare_parameter_packs): Parameter is now a tree, not a
tree*.
(process_template_parm): Tweak call to
check_for_bare_parameter_packs.
(push_template_decl_real): Tweak calls to
check_for_bare_parameter_packs. If bare parameter packs are found
in the list of exceptions, clear out that list after giving an
error.
* semantics.c (finish_cond): Tweak call to
check_for_bare_parameter_packs.
(finish_expr_stmt): Ditto.
(finish_for_expr): Ditto.
(finish_switch_cond): Ditto.
(finish_mem_initializers): Ditto.
(finish_member_declaration): Ditto.
(finish_static_assert): Check for bare parameter packs in the
condition.
* decl2.c (cplus_decl_attributes): Check for bare parameter packs in the
attributes of a declaration.
* parser.c (cp_parser_using_declaration): Tweak call to
check_for_bare_parameter_packs.
(cp_parser_base_clause): Ditto.
Ian Lance Taylor [Mon, 28 Jan 2008 19:43:51 +0000 (19:43 +0000)]
re PR c++/34862 (operator new placement variant with reference arg not accepted by g++ 4.3)
PR c++/34862
PR c++/33407
* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
coalesce pointers if they have different DECL_NO_TBAA_P values.
* tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
between variables with different DECL_NO_TBAA_P values.
Bernhard Fischer [Sun, 27 Jan 2008 16:43:07 +0000 (17:43 +0100)]
configure.ac (__stack_chk_fail): Add detecion for availability of SSP in uClibc by checking if...
2008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
* configure.ac (__stack_chk_fail): Add detecion for availability
of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
* configure: Regenerate.
include/
2008-01-26 David Daney <ddaney@avtrex.com>
* demangle.h (demangle_component_type): Add
DEMANGLE_COMPONENT_JAVA_RESOURCE,
DEMANGLE_COMPONENT_COMPOUND_NAME, and
DEMANGLE_COMPONENT_CHARACTER as new enum values.
(demangle_component): Add struct s_character to union u.
libiberty/
2008-01-26 David Daney <ddaney@avtrex.com>
* cp-demangle.c (d_dump): Handle DEMANGLE_COMPONENT_JAVA_RESOURCE,
DEMANGLE_COMPONENT_COMPOUND_NAME, and
DEMANGLE_COMPONENT_CHARACTER cases.
(d_make_comp): Handle DEMANGLE_COMPONENT_COMPOUND_NAME and
DEMANGLE_COMPONENT_JAVA_RESOURCE cases.
(d_make_character): New function.
(d_java_resource): Same.
(d_special_name): Handle "Gr" case.
(d_print_comp): Handle DEMANGLE_COMPONENT_JAVA_RESOURCE,
DEMANGLE_COMPONENT_COMPOUND_NAME, and
DEMANGLE_COMPONENT_CHARACTER cases.
* testsuite/demangle-expected: Add test for java resource name
mangling.
Zdenek Dvorak [Sat, 26 Jan 2008 22:44:19 +0000 (23:44 +0100)]
re PR target/34711 (g++.dg/tree-ssa/ivopts-1.C fails for power and arm)
PR target/34711
* tree-ssa-loop-ivopts.c (comp_cost): New type.
(zero_cost, infinite_cost): New constants.
(struct cost_pair): Change type of cost to comp_cost.
(struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
(new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
New functions.
(set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
split_address_cost, ptr_difference_cost, difference_cost,
get_computation_cost_at, get_computation_cost,
determine_use_iv_cost_generic, determine_use_iv_cost_address,
determine_use_iv_cost_condition, determine_use_iv_costs,
cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
Change type of cost to comp_cost.
(determine_iv_cost): Increase cost of non-original ivs, instead
of decreasing the cost of original ones.
(get_address_cost): Indicate the complexity of the addressing mode
in comp_cost.
(try_add_cand_for): Prefer using ivs not specific to some object.
* tree-flow.h (force_expr_to_var_cost): Declaration removed.
Thomas Koenig [Sat, 26 Jan 2008 15:22:59 +0000 (15:22 +0000)]
re PR libfortran/34887 (reverse tabbing before slash descriptor (regression vs. g77))
2008-01-26 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfofortran/34887
* io/transfer.c (next_record_w): Always move to the farthest
position when completing the record (also when we are
processing a slash edit descriptor).
2008-01-26 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfofortran/34887
* gfortran.dg/x_slash_2.f: New test.
re PR rtl-optimization/34959 (23_containers/bitset/ext/15361.cc fails for MIPS n64)
gcc/
PR rtl-optimization/34959
* optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
popcount and parity rtxes the same mode as their operand.
Truncate or extend the result to the return value's mode
if necessary.
re PR target/34981 (Lazily-bound function called twice)
gcc/
PR target/34981
* config/mips/mips-protos.h (mips_expand_call): Return an rtx.
* config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
to GOT_VERSION_REGNUM.
(CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
(EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
* config/mips/mips.c (mips_emit_call_insn): New function.
(mips_call_tls_get_addr): Call mips_expand_call directly.
(mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
emit_call_insn.
(mips16_build_call_stub): Likewise. Return the call insn or null.
(mips_expand_call): Update the call to mips16_build_call_stub
accordingly and a remove redundant condition. Assert that MIPS16
stubs do not use lazy binding. Use mips_emit_call_insn and return
the call insn.
(mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
TARGET_USE_GOT.
(mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
(mips_avoid_hazard): Remove hazard_set handling.
* config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
(UNSPEC_RESTORE_GP): ...this.
(UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
(FAKE_CALL_REGNO): Rename to...
(GOT_VERSION_REGNUM): ...this.
(type): Add "ghost" value. Add an associated insn reservation.
(hazard_set): Remove.
(exception_receiver): Rename to...
(restore_gp): ...this and update the unspec identifier accordingly.
(exception_receiver, nonlocal_got_receiver): New expanders.
(load_call<mode>): Use GOT_VERSION_REGNUM. Don't set
FAKE_CALL_REGNO. Remove hazard_set attribute.
(set_got_version, update_got_version): New patterns.
gcc/testsuite/
PR target/34981
* gcc.target/mips/lazy-binding-1.c: New test.
* gcc.target/mips/mips.exp (setup_mips_tests): Set
mips_forced_no_abicalls and mips_forced_no_shared.
(dg-mips-options): Avoid using -mabicalls with an implicit -mabi=eabi.
Avoid using small data with -mabicalls. Don't make -G0 force
-mn-abicalls. Skip -mabicalls and -mshared tests if the multilib
forces the opposite option.
Jerry DeLisle [Fri, 25 Jan 2008 23:34:53 +0000 (23:34 +0000)]
re PR fortran/34876 (Can't read/write array sections with negative stride not specified)
2008-01-25 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/34876
* io/transfer.c (write_buf): Handle case of zero sized array.
(transfer_array): Set data pointer to NULL and size to zero. Then
make a data transfer and return.
Richard Guenther [Fri, 25 Jan 2008 21:20:00 +0000 (21:20 +0000)]
re PR c++/33887 (Reference to bitfield gets wrong value when optimizing)
2008-01-25 Richard Guenther <rguenther@suse.de>
PR c++/33887
* decl.c (record_builtin_java_type): Make __java_boolean
a variant of bool.
* typeck.c (structural_comptypes): Move TYPE_FOR_JAVA check
after TYPE_MAIN_VARIANT check.