Richard Guenther [Tue, 17 Jan 2012 14:52:57 +0000 (14:52 +0000)]
re PR middle-end/51782 (-ftree-sra: Missing address-space information leads to wrong)
2012-01-17 Richard Guenther <rguenther@suse.de>
PR middle-end/51782
* expr.c (expand_assignment): Take address-space information
from the address operand of MEM_REF and TARGET_MEM_REF.
(expand_expr_real_1): Likewise.
Tobias Burnus [Tue, 17 Jan 2012 14:34:37 +0000 (15:34 +0100)]
re PR fortran/51869 (Realloc on assignment wrongly assumes that MALLOC returnes '\0'-set memory)
2012-01-17 Tobias Burnus <burnus@net-b.de>
Janne Blomqvist <jb@gcc.gnu.org>
PR fortran/51869
* trans-expr.c (alloc_scalar_allocatable_for_assignment): Nullify
LHS after allocation, if it has allocatable components.
* f95-lang.c (gfc_init_builtin_functions): Add BUILT_IN_CALLOC.
Jakub Jelinek [Tue, 17 Jan 2012 10:38:38 +0000 (11:38 +0100)]
re PR tree-optimization/51877 (XEmacs miscompilation due to tail merging)
PR tree-optimization/51877
* tree-ssa-tail-merge.c (gimple_equal_p): Don't return true whenever
call arguments and fndecls compare equal, instead return false if they
don't. Return true only if lhs1 and lhs2 are either both NULL, or
both SSA_NAMEs that are valueized the same, or they satisfy
operand_equal_p.
Tobias Burnus [Mon, 16 Jan 2012 19:50:11 +0000 (20:50 +0100)]
re PR fortran/51809 ([OOP] ICE (segfault) depending on USE statements order)
2012-01-16 Tobias Burnus <burnus@net-b.de>
PR fortran/51809
* class.c (gfc_find_derived_vtab): Mark __vtab and
__def_init as FL_VARIABLE not as FL_PARAMETER.
* expr.c (gfc_simplify_expr): Remove special
handling of __vtab.
* resolve.c (resolve_values): Ditto.
* trans-decl.c (gfc_get_symbol_decl): Mark __vtab
and __def_init as TREE_READONLY.
re PR fortran/48426 ([patch] Quad precision promotion)
2012-01-16 Zydrunas Gimbutas <gimbutas@cims.nyu.edu>
Andreas Kloeckner <kloeckner@cims.nyu.edu>
Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/48426
* gfortran.h (gfc_option_t): Add members flag_*_kind to store kind.
* lang.opt: Add options -freal-4-real-8, -freal-4-real-10,
-freal-4-real-16, -freal-8-real-4, -freal-8-real-10, -freal-8-real-16
and -finteger-4-integer-8. User-desired type conversion information.
* decl.c (gfc_match_old_kind_spec,kind_expr): Type conversions
in declaration parsing.
* trans-types.c (gfc_init_kinds): User-specified type conversion
checked for current backend.
* primary.c (match_integer_constant,match_real_constant): Implement
type conversion in constant parsing.
* options.c (gfc_init_options,gfc_handle_option): Translate input
options to flags in internal options data structure.
* invoke.texi: Document new options. Re-order options in Options
summary section.
Paul Thomas [Mon, 16 Jan 2012 17:48:26 +0000 (17:48 +0000)]
trans-array.c (gfc_trans_create_temp_array): In the case of a class array temporary...
2012-01-16 Paul Thomas <pault@gcc.gnu.org>
* trans-array.c (gfc_trans_create_temp_array): In the case of a
class array temporary, detect a null 'eltype' on entry and use
'initial' to provde the class reference and so, through the
vtable, the element size for the dynamic type.
* trans-stmt.c (gfc_conv_elemental_dependencies): For class
expressions, set 'eltype' to null and pass the values via the
'initial' expression.
2012-01-16 Paul Thomas <pault@gcc.gnu.org>
* gfortran.dg/class_array_3.f03: Remove the explicit loop in
subroutine 'qsort' and use index array to assign the result.
Jakub Jelinek [Mon, 16 Jan 2012 14:05:54 +0000 (15:05 +0100)]
re PR bootstrap/51860 (s390 esa mode bootstrap comparison failure since transactional memory branch merge)
PR bootstrap/51860
* config/s390/s390.c (s390_chunkify_start): Don't skip
call insns followed by NOTE_INSN_CALL_ARG_LOCATION note. Skip
NOTE_INSN_VAR_LOCATION and NOTE_INSN_CALL_ARG_LOCATION notes.
If insn is followed by NOTE_INSN_VAR_LOCATION or
NOTE_INSN_CALL_ARG_LOCATION notes, insert jump after all those notes.
Don't use location of note insns.
mips.c (mips16_build_call_stub): Don't use a stub for calls to locally-binding MIPS16 functions if...
gcc/
* config/mips/mips.c (mips16_build_call_stub): Don't use a stub
for calls to locally-binding MIPS16 functions if only the return
type uses float regs.
gcc/
2012-01-08 Chung-Lin Tang <cltang@codesourcery.com>
Richard Sandiford <rdsandiford@googlemail.com>
* config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
(SYMBOL_32_HIGH): Likewise.
(mips_output_tls_reloc_directive): Declare.
* config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
(mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
* config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
(mips_lo_relocs, mips_hi_relocs): Make extern.
(mips16_stub_function): Move up file.
(mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
(mips_symbolic_constant_p): Likewise. Remove SYMBOL_32_HIGH too.
(mips_symbol_insns_1): Likewise. Check mips_use_pcrel_pool_p.
(mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead
of SYMBOL_FORCE_TO_MEM. Only check mips_tls_symbol_ref_1
if it's false.
(mips_get_tp): Add MIPS16 support.
(mips_legitimize_tls_address): Remove MIPS16 sorry().
Generalize DTPREL and TPREL handling.
(mips_init_relocs): Initialize mips_use_pcrel_pool_p.
Add MIPS16 TLS support.
(mips_output_tls_reloc_directive): New function.
(mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
* config/mips/predicates.md (symbolic_operand_with_high)
(tls_reloc_operand): New predicates.
(force_to_mem_operand): Use mips_use_pcrel_pool_p.
* config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
(PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
(*unshifted_high): New instruction. Use it for MIPS16
high splitter.
(consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
(*tls_get_tp_mips16_call_<mode>): Likewise.
gcc/testsuite/
* gcc.target/mips/code-readable-2.c: Allow the jump table address
to be loaded from the constant pool, rather than via %hi and %lo.
libgcc/
2012-01-08 Chung-Lin Tang <cltang@codesourcery.com>
Richard Sandiford <rdsandiford@googlemail.com>
Tobias Burnus [Sat, 14 Jan 2012 12:04:20 +0000 (13:04 +0100)]
re PR fortran/51816 (Wrong error when use..., only : operator() twice)
2011-01-14 Tobias Burnus <burnus@net-b.de>
PR fortran/51816
* module.c (read_module): Don't make nonexisting
intrinsic operators as found.
(rename_list_remove_duplicate): New function.
(gfc_use_modules): Use it.
François Dumont [Fri, 13 Jan 2012 21:49:14 +0000 (21:49 +0000)]
hashtable_policy.h (_Hash_node_base): New, use it as base class of ...
2012-01-13 François Dumont <fdumont@gcc.gnu.org>
* include/bits/hashtable_policy.h (_Hash_node_base): New, use it as
base class of ...
(_Hash_node<Value, true>, _Hash_node<Value, false>): ... those.
* include/bits/hashtable.h (_Hashtable): Replace _M_begin_bucket_index
by _M_before_begin. Review implementation so that we do not need to
look for previous non-empty bucket when inserting nodes.
Paul Thomas [Fri, 13 Jan 2012 20:42:01 +0000 (20:42 +0000)]
re PR fortran/48351 ([OOP] Realloc on assignment fails if parent component is CLASS)
2012-01-13 Paul Thomas <pault@gcc.gnu.org>
PR fortran/48351
* trans-array.c (structure_alloc_comps): Suppress interative
call to self, when current component is deallocated using
gfc_trans_dealloc_allocated.
* class.c (gfc_build_class_symbol): Copy the 'alloc_comp'
attribute from the declared type to the class structure.
2012-01-13 Paul Thomas <pault@gcc.gnu.org>
PR fortran/48351
* gfortran.dg/alloc_comp_assign.f03: New.
* gfortran.dg/allocatable_scalar_9.f90: Reduce count of
__BUILTIN_FREE from 38 to 32.
Dodji Seketeli [Thu, 12 Jan 2012 23:28:46 +0000 (23:28 +0000)]
PR c++/51633 - ICEs with constexpr constructor
gcc/cp/
PR c++/51633
* semantics.c (cp_parser_ctor_initializer_opt_and_function_body):
Set the pointer to the last block of the constructor to the
current statement.
(build_constexpr_constructor_member_initializers): Get
build_data_member_initialization a chance to deal with more
statements before we choke.
gcc/testsuite/
PR c++/51633
* g++.dg/cpp0x/constexpr-diag4.C: New test.
Jakub Jelinek [Wed, 11 Jan 2012 22:59:12 +0000 (23:59 +0100)]
re PR bootstrap/51796 (internal compiler error: in distribute_notes, at combine.c:13285 for libgomp/alloc.c on m68k-linux)
PR bootstrap/51796
* combine.c (distribute_notes): If i3 is a noreturn call,
allow old_size to be equal to args_size and make sure the
noreturn call gets REG_ARGS_SIZE note.
* expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes
on noreturn calls even when the delta is 0.
Jason Merrill [Wed, 11 Jan 2012 20:26:44 +0000 (15:26 -0500)]
re PR c++/51818 ([C++0x] Name mangling error using lambda expressions in GCC47)
PR c++/51818
* mangle.c (find_substitution): A type is only a substitution
match if we're looking for a type.
(write_nested_name): Use decl_mangling_context.
Nathan Sidwell [Wed, 11 Jan 2012 18:58:30 +0000 (18:58 +0000)]
gcov.c (STRING_SIZE): Remove.
* gcov.c (STRING_SIZE): Remove.
(generate_results): Erase annotations for source files with no
coverage information.
(read_line): New.
(output_lines): Use it.
Eric Botcazou [Wed, 11 Jan 2012 18:50:54 +0000 (18:50 +0000)]
gimple.h (gimplify_body): Remove first argument.
* gimple.h (gimplify_body): Remove first argument.
* gimplify.c (copy_if_shared): Add DATA argument. Do not create the
pointer set here, instead just pass DATA to walk_tree.
(unshare_body): Remove BODY_P argument and adjust. Create the pointer
set here and invoke copy_if_shared on the size trees of DECL_RESULT.
(unvisit_body): Likewise, but with unmark_visited.
(gimplify_body): Remove BODY_P argument and adjust.
(gimplify_function_tree): Adjust call to gimplify_body.
* omp-low.c (finalize_task_copyfn): Likewise.
* tree.h (build_function_decl_skip_args): Add boolean parameter.
(build_function_type_skip_args): Delete.
* tree.c (build_function_type_skip_args): Make static and add
SKIP_RETURN parameter. Fix thinko in the handling of variants.
(build_function_decl_skip_args): Add SKIP_RETURN parameter and
pass it to build_function_type_skip_args.
* cgraph.h (cgraph_function_versioning): Add boolean parameter.
(tree_function_versioning): Likewise.
* cgraph.c (cgraph_create_virtual_clone): Adjust call to
build_function_decl_skip_args.
* cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter
and pass it to build_function_decl_skip_args/tree_function_versioning.
(cgraph_materialize_clone): Adjust call to tree_function_versioning.
* ipa-inline-transform.c (save_inline_function_body): Likewise.
* trans-mem.c (ipa_tm_create_version): Likewise.
* tree-sra.c (modify_function): Ditto for cgraph_function_versioning.
* tree-inline.c (declare_return_variable): Remove always-true test.
(tree_function_versioning): Add SKIP_RETURN parameter. If the function
returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL.
* ipa-split.c (split_function): Skip the return value for the split
part if it doesn't return.
Janne Blomqvist [Wed, 11 Jan 2012 07:34:16 +0000 (09:34 +0200)]
PR 51803 Handle getcwd failure and lack of the function better.
2012-01-11 Janne Blomqvist <jb@gcc.gnu.org>
Mike Stump <mikestump@comcast.net>
PR libfortran/51803
* runtime/main.c (store_exe_path): Handle getcwd failure and lack
of the function better.
Co-Authored-By: Mike Stump <mikestump@comcast.net>
From-SVN: r183090