Tom de Vries [Wed, 6 Feb 2013 08:53:32 +0000 (08:53 +0000)]
re PR rtl-optimization/56131 (gcc.dg/pr56035.c ICEs gcc on sparc-linux)
2013-02-06 Tom de Vries <tom@codesourcery.com>
PR rtl-optimization/56131
* cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
of the label is NULL. Add comment.
Dodji Seketeli [Wed, 6 Feb 2013 08:18:26 +0000 (08:18 +0000)]
Add missing explicit instantiation for std::lower_bound template
Since commit r195676[1], it looks like
libstdc++-v3/src/c++11/hashtable_c++0x.cc is missing an explicit
instantiation for std::lower_bound. This leads to libstdc++.so having
the symbol for that (missing) instantiation be undefined, thus
preventing executables from being linked with libstdc++.
The patchlet below seems to fixed the issue for me.
Boostrapped and tested on x86_64-unknown-linux-gnu.
Jakub Jelinek [Tue, 5 Feb 2013 15:54:39 +0000 (16:54 +0100)]
re PR tree-optimization/56205 (stdarg pass confused by jump threading)
PR tree-optimization/56205
* tree-stdarg.c (check_all_va_list_escapes): Return true if
there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
and some va_list_escape_vars SSA_NAME appears in some PHI argument.
* gcc.dg/tree-ssa/stdarg-6.c: New test.
* gcc.c-torture/execute/pr56205.c: New test.
Paul Thomas [Mon, 4 Feb 2013 22:33:15 +0000 (22:33 +0000)]
re PR fortran/56008 ([F03] wrong code with lhs-realloc on assignment with derived types having allocatable components)
2013-02-04 Paul Thomas <pault@gcc.gnu.org>
PR fortran/56008
PR fortran/47517
* trans-array.c (gfc_alloc_allocatable_for_assignment): Save
the lhs descriptor before it is modified for reallocation. Use
it to deallocate allocatable components in the reallocation
block. Nullify allocatable components for newly (re)allocated
arrays.
2013-02-04 Paul Thomas <pault@gcc.gnu.org>
PR fortran/56008
* gfortran.dg/realloc_on _assign_16.f90 : New test.
PR fortran/47517
* gfortran.dg/realloc_on _assign_17.f90 : New test.
re PR sanitizer/55617 (static constructors are not being instrumented correctly on darwin)
2013-02-04 Alexander Potapenko <glider@google.com>
Jack Howarth <howarth@bromo.med.uc.edu>
Jakub Jelinek <jakub@redhat.com>
PR sanitizer/55617
* config/darwin.c (sort_ctor_records): Stabilized qsort
on constructor priority by using original position.
(finalize_ctors): New routine to sort constructors by
priority before use in assemble_integer.
(machopic_asm_out_constructor): Use finalize_ctors if needed.
Co-Authored-By: Jack Howarth <howarth@bromo.med.uc.edu> Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r195735
Jakub Jelinek [Mon, 4 Feb 2013 17:19:56 +0000 (18:19 +0100)]
re PR libstdc++/54314 (undefined references to 'construction vtable for std::ostream-in-std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >')
PR libstdc++/54314
* config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
about visibility on artificial decls.
* config/sol2.c (solaris_assemble_visibility): Likewise.
re PR lto/56168 (GCC seems to disregard -fno-builtin when compiling with LTO)
2013-02-04 Richard Guenther <rguenther@suse.de>
PR lto/56168
* lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
node prevail as last resort.
(lto_symtab_merge_decls): Remove guard on LTRANS here.
(lto_symtab_prevailing_decl): Builtins are their own prevailing
decl.
lto/
* lto.c (read_cgraph_and_symbols): Do not call lto_symtab_merge_decls
or lto_fixup_decls at LTRANS time.
* gcc.dg/lto/pr56168_0.c: New testcase.
* gcc.dg/lto/pr56168_1.c: Likewise.
* config/pa/constraints.md: Adjust unused letters. Change "T"
constraint to match_test floating_point_store_memory_operand().
* config/pa/predicates.md (reg_plus_base_memory_operand): New.
(base14_operand): New.
(floating_point_store_memory_operand): New.
(integer_store_memory_operand): Revise to use base14_operand and
reg_plus_base_memory_operand.
(move_dest_operand): Allow symbolic_memory_operands.
(symbolic_memory_operand): Check for LO_SOM.
(symbolic_operand): Change default case to break.
* config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
CONST_DOUBLE values to be reloaded by putting them into memory when
the destination is a floating point register.
(movdf): Remove code to handle CONST_DOUBLE.
(movsf): Likewise.
(reload_indf_r1): New.
(reload_insf_r1): New.
Consistently use "Q" and "T" constraints with integer and floating
point move instructions, respectively.
(movdi): Remove FAIL.
Change predicate for source operand unamed DImode move from
general_operand to move_src_operand.
(umulsidi3): Change predicate for destination operand to
register_operand.
Likewise for similar unamed patterns.
* config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
* config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
(hppa_legitimize_address): Simplify mask calculation.
(pa_emit_move_sequence): Revised handling of secondary reloads from
REG+D addresses for floating point loads and stores. Directly handle
loading CONST0_RTX (mode) to a floating point register.
(pa_secondary_reload): Handle reloading DF and SFmode constant values
to floating point registers. Don't restrict secondary reloads to
floating point registers to integer modes. Revise some comments and
cleanup some code.
(TARGET_LEGITIMATE_ADDRESS_P): Define.
(pa_legitimate_address_p): New.
(pa_legitimize_reload_address): New.
* config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
(STRICT_REG_OK_FOR_BASE_P): New.
(GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
(LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
Eric Botcazou [Sun, 3 Feb 2013 11:53:02 +0000 (11:53 +0000)]
decl.c: Include diagnostic-core.h.
* gcc-interface/decl.c: Include diagnostic-core.h.
(gnat_to_gnu_entity) <E_Array_Type>: Sorry if Reverse_Storage_Order
is set on the entity.
<E_Record_Type>: Likewise.
* gcc-interface/Make-lang.in (ada/decl.o): Add $(DIAGNOSTIC_CORE_H).
Thomas Koenig [Sat, 2 Feb 2013 09:50:58 +0000 (09:50 +0000)]
re PR fortran/50627 (Error recovery: ICE in gfc_free_namespace after diagnosing missing end of construct)
2013-02-02 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/50627
PR fortran/56054
* decl.c (gfc_match_end): Remove half-ready namespace
from parent if the end of a block is missing.
* parse.c (parse_module): Do not put namespace into
gsymbol on error.
2013-02-02 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/50627
PR fortran/56054
* gfortran.dg/block_12.f90: New test.
* gfortran.dg/module_error_1.f90: New test.
David Edelsohn [Fri, 1 Feb 2013 20:26:24 +0000 (20:26 +0000)]
re PR c++/54601 (AIX uses atexit which causes unloading of shared modules to break)
PR target/54601
libgcc/
* config.host (powerpc-ibm-aix[56789]): Add t-aix-cxa to tmake_file.
Add crtcxa to extra_parts.
* config/rs6000/exit.h: New file.
* config/rs6000/cxa_atexit.c: New file.
* config/rs6000/cxa_finalize.c: New file.
* config/rs6000/crtcxa.c: New file.
* config/rs6000/t-aix-cxa: New file.
* config/rs6000/libgcc-aix-cxa.ver: New file.
Jakub Jelinek [Fri, 1 Feb 2013 16:54:14 +0000 (17:54 +0100)]
re PR debug/54793 (the location of a formal_parameter is not started from a function entry with -mfentry)
PR debug/54793
* final.c (need_profile_function): New variable.
(final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
notes, targetm.asm_out.function_prologue doesn't emit anything,
HAVE_prologue and profiler should be emitted before prologue,
set need_profile_function instead of emitting it.
(final_scan_insn): If need_profile_function, emit
profile_function on the first NOTE_INSN_BASIC_BLOCK or
NOTE_INSN_FUNCTION_BEG note.
Nick Clifton [Thu, 31 Jan 2013 18:36:02 +0000 (18:36 +0000)]
lib1funcs.S: Add support for e3v5 architecture variant.
* config/v850/lib1funcs.S: Add support for e3v5 architecture
variant.
* config/v850/constraints.md (Q): Define as a memory constraint.
* config/v850/predicates.md (label_ref_operand): New predicate.
(e3v5_shift_operand): New predicate.
(ior_operator): New predicate.
* config/v850/t-v850: Add e3v5 multilib.
* config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
(v850_gen_movdi): Prototype.
* config/v850/v850.c: Add support for e3v5 architecture.
Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
TARGET_V850E_UP.
(construct_save_jarl): Add e3v5 long JARL support.
(v850_adjust_insn_length): New function. Adjust length of call
insns when using e3v5 instructions.
(v850_gen_movdi): New function: Generate instructions to move a
DImode value.
* config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
(CPP_SPEC): Define __v850e3v5__ as appropriate.
(TARGET_USE_FPU): Enable for e3v5.
(CONST_OK_FOR_W): New macro.
(ADJUST_INSN_LENGTH): Define.
* config/v850/v850.md (UNSPEC_LOOP): Define.
(attr cpu): Add v850e3v5.
Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
(movdi): New pattern.
(movdi_internal): New pattern.
(cbranchsf4): Conditionalize on TARGET_USE_FPU.
(cbranchdf4): Conditionalize on TARGET_USE_FPU.
(cstoresf4): Likewise.
(cstoredf4): Likewise.
(insv): New pattern.
(rotlso3_a): New pattern.
(rotlsi3_b): New pattern
(rotlsi3_v850e3v5): New pattern.
(doloop_begin): New pattern.
(fix_loop_counter): New pattern.
(doloop_end): New pattern.
(branch_normal): Add e3v5 long branch support.
(branch_invert): Likewise.
(branch_z_normal): Likewise.
(branch_z_invert): Likewise.
(branch_nz_normal): Likewise.
(branch_nz_invert): Likewise.
(call_internal_short): Add e3v5 register-indirect JARL support.
(call_internal_long): Likewise.
(call_value_internal_short): Likewise.
(call_value_internal_long): Likewise.
* config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
(mloop): New option.
* config.gcc: Add support for configuring v840e3v5 target.
* doc/invoke.texi: Document new v850 specific command line
options.
Paul Koning [Thu, 31 Jan 2013 18:29:15 +0000 (13:29 -0500)]
re PR debug/55059 (DWARF missing concrete class definition)
PR debug/55059
PR debug/54508
* dwarf2out.c (prune_unused_types_mark): Mark all of parent's
children if parent is a class.
(prune_unused_types_prune): Don't add DW_AT_declaration.
Dmitry Vyukov [Thu, 31 Jan 2013 16:57:09 +0000 (08:57 -0800)]
re PR sanitizer/55561 (TSAN: provide a TSAN instrumented libgomp)
PR libgomp/55561
* config/linux/wait.h (do_spin): Use atomic load for addr.
* config/linux/ptrlock.c (gomp_ptrlock_get_slow): Use atomic
for intptr and ptrlock.
* config/linux/ptrlock.h (gomp_ptrlock_get): Use atomic load
for ptrlock.