Jason Merrill [Fri, 11 Nov 2011 15:27:02 +0000 (10:27 -0500)]
varasm.c (default_elf_asm_output_limited_string): #ifdef ELF_ASCII_ESCAPES.
* varasm.c (default_elf_asm_output_limited_string): #ifdef
ELF_ASCII_ESCAPES.
(default_elf_asm_output_ascii): Likewise.
From-SVN: r181286
Uros Bizjak [Fri, 11 Nov 2011 14:56:00 +0000 (15:56 +0100)]
re PR target/50762 (ICE: in extract_insn, at recog.c:2137 (unrecognizable insn))
PR target/50762
* config/i386/constraints.md (j): New address constraint.
* config/i386/predicates.md (lea_address_operand): Redefine as
special predicate.
* config/i386/i386.md (*lea_3_zext): Use "j" constraint for operand 1.
(*lea_4_zext): Ditto.
From-SVN: r181285
Andrey Belevantsev [Fri, 11 Nov 2011 09:19:21 +0000 (13:19 +0400)]
MAINTAINERS (Selective Scheduling): Add myself as a reviewer.
2011-11-11 Andrey Belevantsev <abel@ispras.ru>
* MAINTAINERS (Selective Scheduling): Add myself as a reviewer.
From-SVN: r181284
David S. Miller [Fri, 11 Nov 2011 08:23:34 +0000 (08:23 +0000)]
Revert sparc vec_init improvements as they cause 64-bit regressions.
gcc/
Revert
2011-11-05 David S. Miller <davem@davemloft.net>
From-SVN: r181283
Jakub Jelinek [Fri, 11 Nov 2011 08:15:56 +0000 (09:15 +0100)]
opts-common.c (generate_canonical_option): Free opt_text it it has been allocated here and not stored anywhere.
* opts-common.c (generate_canonical_option): Free opt_text
it it has been allocated here and not stored anywhere.
From-SVN: r181282
Jakub Jelinek [Fri, 11 Nov 2011 08:10:07 +0000 (09:10 +0100)]
tree-vect-slp.c (vect_free_slp_tree): Also free SLP_TREE_CHILDREN vector.
* tree-vect-slp.c (vect_free_slp_tree): Also free SLP_TREE_CHILDREN
vector.
(vect_create_new_slp_node): Don't allocate node before checking stmt
type.
(vect_free_oprnd_info): Remove FREE_DEF_STMTS argument, always
free def_stmts vectors and additionally free oprnd_info.
(vect_build_slp_tree): Adjust callers. Call it even if
stop_recursion. If vect_create_new_slp_node or
vect_build_slp_tree fails, properly handle freeing memory.
If it succeeded, clear def_stmts in oprnd_info.
From-SVN: r181281
Jason Merrill [Fri, 11 Nov 2011 04:29:04 +0000 (23:29 -0500)]
re PR c++/50372 ([C++0x] pointers to static functions should be valid template parameters)
PR c++/50372
* pt.c (convert_nontype_argument_function): Allow decls with
internal linkage in C++11.
(convert_nontype_argument): Likewise.
From-SVN: r181280
Dimitrios Apostolou [Fri, 11 Nov 2011 04:00:39 +0000 (04:00 +0000)]
final.c, output.h (fprint_whex, [...]): New functions serving as fast replacements for fprintf() integer to string...
* final.c, output.h (fprint_whex, fprint_w, fprint_ul, sprint_ul):
New functions serving as fast replacements for fprintf() integer
to string conversions. They were used in the following changes.
* final.c (sprint_ul_rev): Internal helper for the above.
(output_addr_const): case CONST_INT: don't use fprintf().
* elfos.h (ASM_GENERATE_INTERNAL_LABEL): Don't use sprintf("%u"),
use sprint_ul() and stpcpy() which are much faster.
(TARGET_ASM_INTERNAL_LABEL): Define as default_elf_internal_label.
(ELF_ASCII_ESCAPES, ELF_STRING_LIMIT): Are the old ESCAPES and
STRING_LIMIT macros.
(ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII): Macros now just
call respective functions that provide the same
functionality. Those are default_elf_asm_output_limited_string()
and default_elf_asm_output_ascii() in varasm.c.
* varasm.c: Fixed some whitespace inconsistencies.
(default_elf_asm_output_limited_string)
(default_elf_asm_output_ascii): The above macros from elfos.h are
implemented here as these functions, avoiding superfluous calls to
fprintf().
(default_elf_internal_label): Hook for
targetm.asm_out.internal_label and ASM_OUTPUT_DEBUG_LABEL.
* i386.c: Don't call fprintf("%u") but fprint_ul() instead.
* defaults.h (ASM_OUTPUT_LABEL, ASM_OUTPUT_INTERNAL_LABEL):
Expanded the macros on multiple lines for readability.
(ASM_OUTPUT_LABELREF): Have two calls to fputs() instead of one to
asm_fprintf().
* dwarf2asm.c (dw2_assemble_integer, dw2_asm_output_data)
(dw2_asm_data_uleb128, dw2_asm_delta_uleb128)
(dw2_asm_delta_sleb128): Convert fprintf() calls to the new
faster functions.
* dwarf2out.c (dwarf2out_source_line): Convert fprintf() calls to
the new faster functions.
From-SVN: r181279
GCC Administrator [Fri, 11 Nov 2011 00:18:44 +0000 (00:18 +0000)]
Daily bump.
From-SVN: r181278
Andrew MacLeod [Thu, 10 Nov 2011 22:46:25 +0000 (22:46 +0000)]
extend.texi: Document __atomic_test_and_set and __atomic_clear.
2011-11-10 Andrew MacLeod <amacleod@redhat.com>
* doc/extend.texi: Document __atomic_test_and_set and __atomic_clear.
From-SVN: r181273
Jason Merrill [Thu, 10 Nov 2011 21:14:42 +0000 (16:14 -0500)]
re PR c++/50973 ([C++0x] internal compiler error defaulted destructor virtual inheritance)
PR c++/50973
* decl2.c (mark_used): Defer synthesis of virtual functions.
* method.c (use_thunk): Make sure the target function has
DECL_INTERFACE_KNOWN.
From-SVN: r181272
Andrew MacLeod [Thu, 10 Nov 2011 20:38:33 +0000 (20:38 +0000)]
re PR middle-end/51038 (29_atomics/atomic_flag/clear/1.cc test_and_set/explicit.cc implicit.cc)
PR middle-end/51038
libstdc++-v3
* include/bits/atomic_base.h (atomic_thread_fence): Call built-in.
(atomic_signal_fence): Call built-in.
(test_and_set, clear): Call new atomic built-ins.
gcc
* builtins.c (expand_builtin_atomic_clear): New. Expand atomic_clear.
(expand_builtin_atomic_test_and_set): New. Expand atomic test_and_set.
(expand_builtin): Add cases for test_and_set and clear.
* sync-builtins.def (BUILT_IN_ATOMIC_TEST_AND_SET): New.
(BUILT_IN_ATOMIC_CLEAR): New.
testsuite
* gcc.dg/atomic-invalid.c: Add test for invalid __atomic_clear models.
* gcc.dg/atomic-flag.c: New. Test __atomic_test_and_set and
__atomic_clear.
From-SVN: r181271
Jason Merrill [Thu, 10 Nov 2011 20:28:16 +0000 (15:28 -0500)]
PR c++/51079, DR 495
PR c++/51079, DR 495
* call.c (joust): Check the second conversion sequence
before checking templates.
From-SVN: r181270
Jason Merrill [Thu, 10 Nov 2011 20:28:04 +0000 (15:28 -0500)]
re PR debug/50983 (incorrect DW_LNS_negate_stmt)
PR debug/50983
* dwarf2out.c (set_cur_line_info_table): Restore the last is_stmt
value in the current line table.
From-SVN: r181269
Eric Botcazou [Thu, 10 Nov 2011 19:45:17 +0000 (19:45 +0000)]
fe.h (Serious_Errors_Detected): New macro.
* fe.h (Serious_Errors_Detected): New macro.
* gcc-interface/gigi.h (build_atomic_load): Declare.
(build_atomic_store): Likewise.
* gcc-interface/trans.c (atomic_sync_required_p): New predicate.
(call_to_gnu): Add ATOMIC_SYNC parameter. Use local variable.
Build an atomic load for an In or In Out parameter if needed.
Build an atomic store for the assignment of an Out parameter if needed.
Build an atomic store to the target if ATOMIC_SYNC is true.
(present_in_lhs_or_actual_p): New predicate.
(gnat_to_gnu) <N_Identifier>: Build an atomic load if needed.
<N_Explicit_Dereference>: Likewise.
<N_Indexed_Component>: Likewise.
<N_Selected_Component>: Likewise.
<N_Assignment_Statement>: Adjust call to call_to_gnu.
Build an atomic store to the LHS if needed.
<N_Function_Call>: Adjust call to call_to_gnu.
* gcc-interface/utils2.c: Include toplev.h.
(resolve_atomic_size): New static function.
(build_atomic_load): New function.
(build_atomic_store): Likewise.
* gcc-interface/Make-lang.in (ada/utils2.o): Add toplev.h.
From-SVN: r181267
Richard Henderson [Thu, 10 Nov 2011 19:34:57 +0000 (11:34 -0800)]
configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
* configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
* configure, aclocal.m4: Rebuild.
From-SVN: r181266
Nathan Sidwell [Thu, 10 Nov 2011 19:17:13 +0000 (19:17 +0000)]
gcov.c (struct function_info): Make src an index, not a pointer.
* gcov.c (struct function_info): Make src an index, not a pointer.
(struct source_info): Remove index and next source fields.
(fn_end): New static var.
(sources_index): Remove.
(sources): Now a pointer to an array, not a list.
(n_sources, a_sources): New.
(process_file): Adjust for changes to read_graph_file. Insert
functions into source lists and check line numbers here.
(generate_results): Only allocate lines for sources with
contents. Adjust for source array.
(release_structures): Likewise.
(find_source): Return source index, adjust for source array.
(read_graph_file): Return function list. Don't insert into source
lists here.
(read_count_file): Take list of functions.
(solve_flow_graph): Reverse the arc lists here.
(add_line_counts): Adjust for source array.
From-SVN: r181265
Jakub Jelinek [Thu, 10 Nov 2011 19:02:30 +0000 (20:02 +0100)]
re PR middle-end/51077 (Endless recursion with __builtin_object_size)
PR middle-end/51077
* tree-object-size.c (addr_object_size): Check TREE_CODE of
MEM_REF's operand rather than code of the MEM_REF itself.
* gcc.c-torture/compile/pr51077.c: New test.
From-SVN: r181263
Rainer Orth [Thu, 10 Nov 2011 17:15:33 +0000 (17:15 +0000)]
libitm port to Tru64 UNIX
* config/alpha/sjlj.S (_ITM_beginTransaction) [!__ELF__]: Don't use
.hidden.
(.note.GNU-stack): Only use if __linux__.
* alloc_cpp.cc [!__osf__] (_ZnaXRKSt9nothrow_t): Dummy function.
* testsuite/libitm.c/notx.c: Use dg-options "-pthread".
* testsuite/libitm.c/reentrant.c: Likewise.
* testsuite/libitm.c/simple-2.c: Likewise.
* testsuite/libitm.c/txrelease.c: Likewise.
* testsuite/libitm.c++/static_ctor.C: Likewise.
From-SVN: r181262
Richard Henderson [Thu, 10 Nov 2011 17:09:04 +0000 (09:09 -0800)]
libitm: Don't add -mavx if the assembler doesn't support avx.
* config/x86/x86_avx.cc: Remove #undef __AVX__ hack. Tidy comments.
* Makefile.am (x86_avx.lo): Only add -mavx if ARCH_X86_AVX.
* configure.ac (ARCH_X86_AVX): New conditional.
* Makefile.in, configure: Rebuild.
From-SVN: r181261
Janne Blomqvist [Thu, 10 Nov 2011 17:08:24 +0000 (19:08 +0200)]
Let the compiler decide whether to inline.
2011-11-10 Janne Blomqvist <jb@gcc.gnu.org>
* intrinsics/cpu_time.c (__cpu_time_1): Don't force inlining.
* intrinsics/random.c (rnumber_4): Remove inline attribute.
(rnumber_8, rnumber_10, rnumber_16): Likewise.
* intrinsics/system_clock.c (gf_gettime_mono): Likewise.
* intrinsics/time_1.h (ATTRIBUTE_ALWAYS_INLINE): Remove macro.
(gf_cputime): Add inline attribute for MingW version.
* io/format.c (format_hash): Remove inline attribute.
* io/io.h (memset4): Inline function from transfer.c and write.c
moved here.
* io/transfer.c (min_off): Remove inline attribute.
(memset4): Move to io.h.
* io/write.c (memset4): Likewise.
(memcpy4): Remove inline attribute.
* io/write_float.def (calculate_exp): Likewise.
From-SVN: r181260
Andrew MacLeod [Thu, 10 Nov 2011 16:39:32 +0000 (16:39 +0000)]
re PR rtl-optimization/51040 (ICE: RTL check: access of elt 1 of 'not' with last elt 0 in gen_rtx_fmt_ee_stat, at ./genrtl.h:33 with __atomic_nand_fetch())
PR rtl-optimization/51040
* optabs.c (expand_atomic_fetch_op): Patchup code for NAND should be AND
followed by NOT.
* builtins.c (expand_builtin_atomic_fetch_op): Patchup code for NAND
should be AND followed by NOT.
* testsuite/gcc.dg/atomic-noinline[-aux].c: Test no-inline NAND and
patchup code.
From-SVN: r181259
Jakub Jelinek [Thu, 10 Nov 2011 15:40:34 +0000 (16:40 +0100)]
vec.h (VEC_BASE): If base is at offset 0 in the structure, use &(P)->base even if P is NULL.
* vec.h (VEC_BASE): If base is at offset 0 in the structure,
use &(P)->base even if P is NULL.
From-SVN: r181258
Jakub Jelinek [Thu, 10 Nov 2011 15:36:48 +0000 (16:36 +0100)]
re PR rtl-optimization/51023 (likely integer wrong code bug)
PR rtl-optimization/51023
* combine.c (simplify_comparison) <case SIGN_EXTEND>: Don't use
val_signbit_known_clear_p for signed comparison narrowing
optimization. Don't check for non-VOIDmode, use
HWI_COMPUTABLE_MODE_P macro.
<case ZERO_EXTEND>: Don't check for non-VOIDmode.
Optimize even when const_op is equal to GET_MODE_MASK (mode),
don't optimize if const_op is negative.
* gcc.c-torture/execute/pr51023.c: New test.
From-SVN: r181257
Richard Guenther [Thu, 10 Nov 2011 15:28:57 +0000 (15:28 +0000)]
re PR tree-optimization/51042 (endless recursion in phi_translate)
2011-11-10 Richard Guenther <rguenther@suse.de>
PR tree-optimization/51042
* tree-ssa-pre.c (phi_translate_1): Avoid recursing on
self-referential expressions. Refactor code to avoid duplication.
* gcc.dg/torture/pr51042.c: New testcase.
From-SVN: r181256
Richard Guenther [Thu, 10 Nov 2011 13:46:27 +0000 (13:46 +0000)]
re PR tree-optimization/51070 (ICE verify_gimple failed)
2011-11-10 Richard Guenther <rguenther@suse.de>
PR tree-optimization/51070
* tree-loop-distribution.c (generate_builtin): Do not replace
the loop with a builtin if the partition contains statements which
results are used outside of the loop.
(pass_loop_distribution): Verify and collect.
* gcc.dg/torture/pr51070.c: New testcase.
From-SVN: r181255
Richard Guenther [Thu, 10 Nov 2011 12:24:52 +0000 (12:24 +0000)]
re PR tree-optimization/51030 (PHI opt does not handle value-replacement with a transfer function)
2011-11-10 Richard Guenther <rguenther@suse.de>
PR tree-optimization/51030
* tree-ssa-phiopt.c (jump_function_from_stmt): New function.
(value_replacement): Use it to handle trivial non-empty
intermediate blocks.
* gcc.dg/tree-ssa/phi-opt-6.c: New testcase.
From-SVN: r181254
Richard Guenther [Thu, 10 Nov 2011 12:22:46 +0000 (12:22 +0000)]
re PR middle-end/51071 (ICE in gimple_has_side_effects, at gimple.c:2513)
2011-11-10 Richard Guenther <rguenther@suse.de>
PR middle-end/51071
* gimple.c (gimple_has_side_effects): Remove checking code
that doesn't belong here.
* gcc.dg/torture/pr51071.c: New testcase.
From-SVN: r181253
Eric Botcazou [Thu, 10 Nov 2011 10:48:11 +0000 (10:48 +0000)]
* gnat.dg/loop_optimization9.ad[sb]: New test.
From-SVN: r181252
Ira Rosen [Thu, 10 Nov 2011 10:14:24 +0000 (10:14 +0000)]
re PR tree-optimization/51058 (ICE: gimple check: expected gimple_assign(error_mark), have gimple_call() in gimple_assign_rhs_code, at gimple.h:1992)
PR tree-optimization/51058
* tree-vect-slp.c (vect_get_constant_vectors): Handle CALL_EXPR.
From-SVN: r181251
Jakub Jelinek [Thu, 10 Nov 2011 08:29:52 +0000 (09:29 +0100)]
re PR tree-optimization/51000 (ICE: in vect_get_store_cost, at tree-vect-stmts.c:923 on powerpc-apple-darwin9)
PR tree-optimization/51000
* tree-vect-patterns.c (vect_recog_bool_pattern): If adding
a pattern stmt for a bool store, adjust DR_STMT too.
Don't handle bool conversions to single bit precision lhs.
* tree-vect-stmts.c (vect_remove_stores): If next is a pattern
stmt, remove its related stmt and free its stmt_vinfo.
(free_stmt_vec_info): Free also pattern stmt's vinfo and
pattern def stmt's vinfo.
* tree-vect-loop.c (destroy_loop_vec_info): Don't try to
free pattern stmt's vinfo here.
(vect_transform_loop): When calling vect_remove_stores,
do gsi_next first and don't call gsi_remove. If not strided
store, free stmt vinfo for gsi_stmt (si) rather than stmt.
* gcc.dg/vect/pr51000.c: New test.
From-SVN: r181250
Paolo Carlini [Thu, 10 Nov 2011 02:27:16 +0000 (02:27 +0000)]
re PR c++/50837 ([c++0x] static_assert and constexpr in template class)
/cp
2011-11-09 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/50837
* pt.c (tsubst_copy_and_build) [IDENTIFIER_NODE]: In C++11 mode
pass allow_non_integral_constant_expression_p = true to
finish_id_expression.
/testsuite
2011-11-09 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/50837
* g++.dg/cpp0x/static_assert5.C: New.
* g++.dg/template/nontype13.C: Tweak.
From-SVN: r181248
Richard Henderson [Thu, 10 Nov 2011 00:29:38 +0000 (16:29 -0800)]
libitm: Work around assembler missing AVX insns.
From-SVN: r181246
GCC Administrator [Thu, 10 Nov 2011 00:18:57 +0000 (00:18 +0000)]
Daily bump.
From-SVN: r181245
Richard Henderson [Wed, 9 Nov 2011 22:54:55 +0000 (14:54 -0800)]
libitm: Remove unused code.
In particular, unused code that's presenting portability problems.
From-SVN: r181241
Jason Merrill [Wed, 9 Nov 2011 22:25:25 +0000 (17:25 -0500)]
re PR c++/50972 ([C++0x] ICE on undeclared identifier)
PR c++/50972
* pt.c (maybe_instantiate_noexcept): Check the return value of
push_tinst_level.
From-SVN: r181240
Jason Merrill [Wed, 9 Nov 2011 22:25:12 +0000 (17:25 -0500)]
re PR c++/51046 ([C++0x] ICE by unexpanded template param pack in range-based for)
PR c++/51046
* parser.c (cp_parser_range_for): check_for_bare_parameter_packs.
From-SVN: r181239
Jakub Jelinek [Wed, 9 Nov 2011 21:37:27 +0000 (22:37 +0100)]
re PR target/50911 (assertion failure in expand_vec_perm_interleave2 with -msse)
PR target/50911
* config/i386/i386.c (expand_vec_perm_interleave2): If d->vmode is
V4SImode, !TARGET_SSE2 and punpck[lh]* is needed, change dremap.vmode
to V4SFmode.
* gcc.dg/torture/vshuf-16.inc: Add interleave low and high
permutations.
* gcc.dg/torture/vshuf-32.inc: Likewise.
* gcc.dg/torture/vshuf-4.inc: Likewise.
* gcc.dg/torture/vshuf-8.inc: Likewise.
From-SVN: r181238
Jakub Jelinek [Wed, 9 Nov 2011 21:36:13 +0000 (22:36 +0100)]
* gcc.dg/tm/memopt-1.c: Fix up regexp.
From-SVN: r181237
Jakub Jelinek [Wed, 9 Nov 2011 21:28:57 +0000 (22:28 +0100)]
function.h (requires_stack_frame_p): New prototype.
* function.h (requires_stack_frame_p): New prototype.
* function.c (requires_stack_frame_p): No longer static.
* config/i386/i386.c (ix86_finalize_stack_realign_flags): If
stack_realign_fp was just a conservative guess for a function
which doesn't use sp/fp/argp at all, clear frame_pointer_needed
and stack realignment.
From-SVN: r181236
Jonathan Wakely [Wed, 9 Nov 2011 21:14:03 +0000 (21:14 +0000)]
allocator.h (__shrink_to_fit_aux::_S_do_it): Create the new object with the same allocator.
* include/bits/allocator.h (__shrink_to_fit_aux::_S_do_it): Create
the new object with the same allocator.
* testsuite/23_containers/vector/capacity/shrink_to_fit2.cc: New.
From-SVN: r181235
Ian Lance Taylor [Wed, 9 Nov 2011 20:06:31 +0000 (20:06 +0000)]
generic-morestack.c: Include <string.h>.
libgcc/:
* generic-morestack.c: Include <string.h>.
(uintptr_type): Define.
(struct initial_sp): Add dont_block_signals field. Reduce size of
extra array by 1.
(allocate_segment): Set prev field to NULL. Don't set
__morestack_current_segment or __morestack_segments.
(__generic_morestack): Update current->prev and *pp after calling
allocate_segment.
(__morestack_block_signals): Don't do anything if
dont_block_signals is set.
(__morestack_unblock_signals): Likewise.
(__generic_findstack): Check for initial_sp == NULL. Add casts to
uintptr_type.
(__splitstack_block_signals): New function.
(enum __splitstack_content_offsets): Define.
(__splitstack_getcontext, __splitstack_setcontext): New functions.
(__splitstack_makecontext): New function.
(__splitstack_block_signals_context): New function.
(__splitstack_find_context): New function.
* config/i386/morestack.S (__morestack_get_guard): New function.
(__morestack_set_guard, __morestack_make_guard): New functions.
* libgcc-std.ver.in: Add new functions to GCC_4.7.0.
gcc/testsuite/:
* lib/target-supports.exp (check_effective_target_ucontext_h): New
procedure.
* gcc.dg/split-5.c: New test.
From-SVN: r181234
Richard Henderson [Wed, 9 Nov 2011 19:51:49 +0000 (11:51 -0800)]
libitm: Avoid non-portable x86 branch prediction mnemonic.
From-SVN: r181233
Tobias Burnus [Wed, 9 Nov 2011 19:36:54 +0000 (20:36 +0100)]
symbol.c (clear_sym_mark, [...]): Remove functions.
2011-11-09 Tobias Burnus <burnus@net-b.de>
* symbol.c (clear_sym_mark, traverse_ns): Remove functions.
(count_st_nodes, do_traverse_symtree, fill_st_vector): New functions.
(gfc_traverse_symtree, gfc_traverse_ns): Call do_traverse_symtree.
From-SVN: r181232
Dodji Seketeli [Wed, 9 Nov 2011 19:25:01 +0000 (19:25 +0000)]
PR c++/51043 - ICE in LTO
* cp-tree.h (TYPE_ALIAS_P, TYPE_TEMPLATE_INFO): Don't crash on
NULL TYPE_NAME.
From-SVN: r181231
Roland McGrath [Wed, 9 Nov 2011 18:57:26 +0000 (18:57 +0000)]
configure.ac: Add tool checks for READELF and READELF_FOR_TARGET.
2011-11-09 Roland McGrath <mcgrathr@google.com>
* configure.ac: Add tool checks for READELF and READELF_FOR_TARGET.
* configure: Rebuild.
* Makefile.def (flags_to_pass): Add READELF_FOR_TARGET.
* Makefile.tpl (READELF, READELF_FOR_TARGET): New variables.
(HOST_EXPORTS): Add READELF, READELF_FOR_TARGET.
(BASE_FLAGS_TO_PASS): Add READELF_FOR_TARGET.
(BASE_TARGET_EXPORTS, EXTRA_HOST_FLAGS, EXTRA_TARGET_FLAGS):
Add READELF.
* Makefile.in: Rebuild.
From-SVN: r181230
Richard Henderson [Wed, 9 Nov 2011 18:38:21 +0000 (10:38 -0800)]
libitm: de-ELF-ize x86/sjlj.S.
* config/x86/sjlj.S: Protect elf directives with __ELF__.
Protect .note.GNU-stack with __linux__.
From-SVN: r181229
Janne Blomqvist [Wed, 9 Nov 2011 18:30:38 +0000 (20:30 +0200)]
Simplify time() usage.
2011-11-09 Janne Blomqvist <jb@gcc.gnu.org>
* intrinsics/time_1.h (gf_gettime): Simplify time() usage.
From-SVN: r181228
Janne Blomqvist [Wed, 9 Nov 2011 18:25:58 +0000 (20:25 +0200)]
Configure cleanup.
2011-11-09 Janne Blomqvist <jb@gcc.gnu.org>
* configure.ac (AC_STDC_HEADERS): Remove.
(AC_HEADER_TIME): Remove.
(AC_HAVE_HEADERS, AC_CHECK_HEADERS): Move into a single invocation
of AC_CHECK_HEADERS_ONCE, don't check for presence of C89 headers.
(AC_CHECK_MEMBERS): Use single invocation.
(AC_CHECK_FUNCS): Move into single invocation of
AC_CHEC_FUNCS_ONCE, don't check for presence of C89 functions.
* config.h.in: Regenerate.
* configure: Regenerate.
* intrinsics/clock.c: Include time.h.
(mclock): Assume clock() is present.
(mclock8): Likewise.
* intrinsics/ctime.c (strctime): Assume strftime is present.
(fdate): Assume time() is present.
(fdate_sub): Likewise.
(ctime): Likewise.
* intrinsics/date_and_time.c: Don't provide abs macro.
(HAVE_NO_DATE_TIME): Remove code related to macro which is never
set.
* intrinsics/execute_command_line.c: Assume stdlib.h is present.
* intrinsics/exit.c: Likewise.
* intrinsics/extends_type_of.c: Likewise.
* intrinsics/gerror.c: Assume strerror() is present.
* intrinsics/kill.c: Assume signal.h is present.
* intrinsics/malloc.c: Assume stdlib.h is present.
* intrinsics/move_alloc.c: Likewise.
* intrinsics/perror.c: Assume perror() is present.
* intrinsics/signal.c: Assume signal.h is present.
* intrinsics/stat.c: Assume stdlib.h is present.
* intrinsics/system.c: Likewise.
* intrinsics/time.c: Include time.h, assume time() is present.
* intrinsics/time_1.h: Conditionally include sys/time.h,
unconditionally time.h.
(gf_cputime): Do division in double, fallback using clock().
(gf_gettime): Assume time() is present.
* intrinsics/umask.c: Assume stdlib.h is present.
* runtime/backtrace.c: Likewise.
* runtime/compile_options.c: Assume signal.h is present, assume
C89 signals are present.
* runtime/error.c: Assume signal.h and stdlib.h are present.
From-SVN: r181227
Patrick Marlier [Wed, 9 Nov 2011 18:14:32 +0000 (18:14 +0000)]
* gcc.dg/tm/memopt-1.c: Adjust regexp.
From-SVN: r181226
Jason Merrill [Wed, 9 Nov 2011 18:13:09 +0000 (13:13 -0500)]
re PR c++/51029 ([C++0x] [4.7 Regression] ICE with -std=c++0x)
PR c++/51029
* class.c (build_base_path): Don't ICE in fold_non_dependent_expr.
From-SVN: r181225
Richard Henderson [Wed, 9 Nov 2011 18:09:53 +0000 (10:09 -0800)]
libitm: Configure for gas cfi pseudo ops.
* asmcfi.m4: New file.
* configure.ac (GCC_AS_CFI_PSEUDO_OP): Test it.
* configure, aclocal.m4, config.h.in: Rebuild.
* config/generic/asmcfi.h: New file.
* config/x86/sjlj.S: Use it.
From-SVN: r181224
Francois-Xavier Coudert [Wed, 9 Nov 2011 18:09:42 +0000 (10:09 -0800)]
re PR libfortran/47972 (error.c:158:7: warning: return makes pointer from integer without a cast)
PR libfortran/47972
* runtime/error.c (gf_strerror): Silence warning.
From-SVN: r181223
Jason Merrill [Wed, 9 Nov 2011 17:53:53 +0000 (12:53 -0500)]
Run most tests in both C++98 and C++11 modes.
gcc/testsuite/
* lib/target-supports.exp (check_effective_target_c++11): New.
(check_effective_target_c++98): New.
* lib/g++-dg.exp (g++-dg-runtest): New.
* [various.exp]: Use g++-dg-runtest.
* [various.C]: Fix for C++11 mode.
gcc/cp/
* Make-lang.in (check_g++_parallelize): Add dg-torture.exp.
(check-c++0x): Obsolete.
/
* Makefile.def (language=c++): Remove check-c++0x.
* Makefile.in (check-gcc-c++): Regenerate.
From-SVN: r181222
Jason Merrill [Wed, 9 Nov 2011 17:53:37 +0000 (12:53 -0500)]
* [various.C]: Adjust for C++11 mode.
From-SVN: r181221
Jason Merrill [Wed, 9 Nov 2011 17:53:24 +0000 (12:53 -0500)]
* pt.c (invalid_nontype_parm_type_p): Avoid printing "<type error>".
From-SVN: r181220
Jason Merrill [Wed, 9 Nov 2011 17:53:12 +0000 (12:53 -0500)]
pt.c (convert_nontype_argument): Only integral arguments get early folding.
* pt.c (convert_nontype_argument): Only integral arguments
get early folding.
From-SVN: r181219
Jason Merrill [Wed, 9 Nov 2011 17:52:57 +0000 (12:52 -0500)]
parser.c (cp_parser_alias_declaration): Don't do semantic processing if parsing failed.
* parser.c (cp_parser_alias_declaration): Don't do semantic
processing if parsing failed.
From-SVN: r181218
Janne Blomqvist [Wed, 9 Nov 2011 17:52:11 +0000 (19:52 +0200)]
PR 46686 Fix incorrect comment.
2011-11-09 Janne Blomqvist <jb@gcc.gnu.org>
PR fortran/46686
* runtime/backtrace.c (show_backtrace): Fix incorrect comment.
From-SVN: r181217
Paolo Carlini [Wed, 9 Nov 2011 17:26:37 +0000 (17:26 +0000)]
re PR preprocessor/51061 (Deprecated -I- option causes segfault)
2011-11-09 Paolo Carlini <paolo.carlini@oracle.com>
PR preprocessor/51061
* incpath.c (merge_include_chains): Make sure to not pass null
pointers to free_path.
From-SVN: r181216
Paolo Carlini [Wed, 9 Nov 2011 17:22:22 +0000 (17:22 +0000)]
re PR c++/51045 (erroneous zero as null pointer constant warning at delete)
/cp
2011-11-09 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51045
* init.c (build_new_1, build_vec_delete_1, build_delete):
Use nullptr_node.
/testsuite
2011-11-09 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51045
* g++.dg/warn/Wzero-as-null-pointer-constant-2.C: New.
2011-11-09 Paolo Carlini <paolo.carlini@oracle.com>
* doc/invoke.texi ([Option Summary, C++ Language Options]):
Add -Wzero-as-null-pointer-constant.
From-SVN: r181215
Paolo Carlini [Wed, 9 Nov 2011 17:21:19 +0000 (17:21 +0000)]
re PR c++/51045 (erroneous zero as null pointer constant warning at delete)
/cp
2011-11-09 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51045
* init.c (build_new_1, build_vec_delete_1, build_delete):
Use nullptr_node.
/testsuite
2011-11-09 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51045
* g++.dg/warn/Wzero-as-null-pointer-constant-2.C: New.
2011-11-09 Paolo Carlini <paolo.carlini@oracle.com>
* doc/invoke.texi ([Option Summary, C++ Language Options]):
Add -Wzero-as-null-pointer-constant.
From-SVN: r181214
Paolo Carlini [Wed, 9 Nov 2011 17:19:12 +0000 (17:19 +0000)]
re PR c++/51047 ([C++0x] SFINAE does not handle errors of ambiguous base members)
/cp
2011-11-09 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51047
* search.c (lookup_member): Change to take also a tsubst_flags_t
parameter.
(lookup_field, lookup_fnfields): Adjust calls.
* typeck.c (lookup_destructor, finish_class_member_access_expr,
build_ptrmemfunc_access_expr): Likewise.
* class.c (handle_using_decl, maybe_note_name_used_in_class):
Likewise.
* pt.c (resolve_typename_type): Likewise.
* semantics.c (lambda_function): Likewise.
* parser.c (cp_parser_perform_range_for_lookup,
cp_parser_lookup_name): Likewise.
* friend.c (make_friend_class): Likewise.
* name-lookup.c (pushdecl_maybe_friend_1, get_class_binding,
do_class_using_decl, lookup_qualified_name): Likewise.
* cp-tree.h (lookup_member): Adjust declaration.
/testsuite
2011-11-09 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51047
* g++.dg/cpp0x/sfinae29.C: New.
From-SVN: r181213
Tobias Burnus [Wed, 9 Nov 2011 17:17:57 +0000 (18:17 +0100)]
configure.ac: Make more cross-compile friendly.
2011-11-09 Tobias Burnus <burnus@net-b.de>
* configure.ac: Make more cross-compile friendly.
* Makefile.in: Regenerate.
* aclocal.m4: Regenerate.
* config.h.in: Regenerate.
* configure: Regenerate.
From-SVN: r181212
Eric Botcazou [Wed, 9 Nov 2011 16:41:22 +0000 (16:41 +0000)]
sparc.c (output_v8plus_shift): Take INSN parameter first and adjust head comment.
* config/sparc/sparc.c (output_v8plus_shift): Take INSN parameter first
and adjust head comment.
(output_v8plus_mult): Change NAME into OPCODE and adjust throughout.
(vector_init_bshuffle): Add head comment.
(vector_init_move_words): Likewise.
(vector_init_prepare_elts): Likewise. Take LOCS parameter first.
(sparc_expand_vector_init): Likewise. Adjust call to above function.
(sparc_expand_vector_init_vis2): Likewise.
(sparc_expand_vector_init_vis1): Likewise.
(sparc_expand_conditional_move): Likewise.
(sparc_expand_vcond): Likewise.
* config/sparc/sparc-protos.h (output_v8plus_shift): Adjust.
* config/sparc/sparc.md (ashldi3_v8plus): Adjust call to
output_v8plus_shift.
(ashrdi3_v8plus): Likewise.
(lshrdi3_v8plus): Likewise.
From-SVN: r181211
Matthew Gretton-Dann [Wed, 9 Nov 2011 16:23:15 +0000 (16:23 +0000)]
Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
* config/arm/arm-cores.def: Add -mcpu=cortex-a7.
* config/arm/arm-tables.opt: Regenerate.
* config/arm/arm-tune.md: Likewise.
* config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex A-7.
* doc/invoke.texi: Document -mcpu=cortex-a7.
From-SVN: r181210
Janne Blomqvist [Wed, 9 Nov 2011 16:04:42 +0000 (18:04 +0200)]
PR 46686 Implement backtrace with _Unwind_Backtrace from libgcc.
2011-11-09 Janne Blomqvist <jb@gcc.gnu.org>
PR fortran/46686
* configure.ac: Don't check execinfo.h, backtrace,
backtrace_symbols_fd. Check execve instead of execvp. Call
GCC_CHECK_UNWIND_GETIPINFO.
* runtime/backtrace.c: Don't include unused headers, include
limits.h and unwind.h.
(CAN_FORK): Check execve instead of execvp.
(GLIBC_BACKTRACE): Remove.
(bt_header): Conform to gdb backtrace format.
(struct bt_state): New struct.
(trace_function): New function.
(show_backtrace): Use _Unwind_Backtrace from libgcc instead of
glibc backtrace functions.
* Makefile.in: Regenerated.
* aclocal.m4: Regenerated.
* config.h.in: Regenerated.
* configure: Regenerated.
From-SVN: r181209
Janus Weil [Wed, 9 Nov 2011 15:56:53 +0000 (16:56 +0100)]
re PR fortran/50960 ([OOP] vtables not marked as constant)
2011-11-09 Janus Weil <janus@gcc.gnu.org>
PR fortran/50960
* gfortran.dg/typebound_call_22.f03: New test case.
From-SVN: r181208
Janne Blomqvist [Wed, 9 Nov 2011 15:46:15 +0000 (17:46 +0200)]
PR 50016 Slow I/O on MingW due to _commit
frontend ChangeLog:
2011-11-09 Janne Blomqvist <jb@gcc.gnu.org>
PR libfortran/50016
* gfortran.texi (Data consistency and durability): New section.
testsuite ChangeLog:
2011-11-09 Janne Blomqvist <jb@gcc.gnu.org>
PR libfortran/50016
* gfortran.dg/inquire_size.f90: Don't flush the unit.
libgfortran ChangeLog:
2011-11-09 Janne Blomqvist <jb@gcc.gnu.org>
PR libfortran/50016
* io/inquire.c (inquire_via_unit): Flush the unit and use ssize.
* io/unix.c (buf_flush): Don't call _commit.
From-SVN: r181207
Richard Guenther [Wed, 9 Nov 2011 15:05:20 +0000 (15:05 +0000)]
revert: tree-cfg.c (verify_gimple_call): Verify that gimple_call_cannot_inline_p is returning a conservative correct...
2011-11-09 Richard Guenther <rguenther@suse.de>
Revert
2011-11-09 Richard Guenther <rguenther@suse.de>
* tree-cfg.c (verify_gimple_call): Verify that
gimple_call_cannot_inline_p is returning a conservative
correct result according to gimple_check_call_matching_types.
From-SVN: r181206
Richard Guenther [Wed, 9 Nov 2011 13:43:02 +0000 (13:43 +0000)]
re PR tree-optimization/51039 (ICE: in estimate_function_body_sizes, at ipa-inline-analysis.c:1977 with -finline-small-functions -fno-ipa-pure-const and passing incompatible function ptr)
2011-11-09 Richard Guenther <rguenther@suse.de>
PR tree-optimization/51039
* tree-cfg.c (verify_gimple_call): Verify that
gimple_call_cannot_inline_p is returning a conservative
correct result according to gimple_check_call_matching_types.
* ipa-inline-analysis.c (estimate_function_body_sizes): Remove
code dealing with un-inlinablility.
* gimple-streamer-in.c (input_gimple_stmt): Update the
non-inlinable flag.
* gcc.dg/pr51039.c: New testcase.
From-SVN: r181205
Richard Guenther [Wed, 9 Nov 2011 13:25:17 +0000 (13:25 +0000)]
re PR tree-optimization/51039 (ICE: in estimate_function_body_sizes, at ipa-inline-analysis.c:1977 with -finline-small-functions -fno-ipa-pure-const and passing incompatible function ptr)
2011-11-09 Richard Guenther <rguenther@suse.de>
PR tree-optimization/51039
* gimple-low.c (gimple_check_call_args): Remove.
(gimple_check_call_matching_types): Always return true.
* tree-inline.c (setup_one_parameter): Always perform a
valid gimple type change.
(declare_return_variable): Likewise.
From-SVN: r181204
Rainer Orth [Wed, 9 Nov 2011 13:11:47 +0000 (13:11 +0000)]
Use t-mingw-pthread on MingW
* config.host (i[34567]86-*-cygwin*): Move i386/t-mingw-pthread ...
(i[34567]86-*-mingw*): ... here.
(x86_64-*-mingw*): ... here.
From-SVN: r181203
Jakub Jelinek [Wed, 9 Nov 2011 12:22:17 +0000 (13:22 +0100)]
vector.md (vcondv4sfv4si, [...]): New patterns.
* config/rs6000/vector.md (vcondv4sfv4si, vcondv4siv4sf,
vconduv4sfv4si): New patterns.
* config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Handle
different dest_mode from comparison mode.
* lib/target-supports.exp (check_effective_target_vect_cond_mixed):
Enable also for powerpc*-*-*.
From-SVN: r181202
Francois-Xavier Coudert [Wed, 9 Nov 2011 09:51:49 +0000 (09:51 +0000)]
re PR fortran/50540 (Internal Error: Can't convert UNKNOWN to INTEGER(4) (r178939))
PR fortran/50540
* resolve.c (resolve_forall_iterators): Transform internal errors
to normal errors.
* gfortran.dg/forall_16.f90: New test.
From-SVN: r181200
Janus Weil [Wed, 9 Nov 2011 09:45:36 +0000 (10:45 +0100)]
re PR fortran/50960 ([OOP] vtables not marked as constant)
2011-11-09 Janus Weil <janus@gcc.gnu.org>
PR fortran/50960
* class.c (gfc_find_derived_vtab): Make the vtab symbols FL_PARAMETER.
* expr.c (gfc_simplify_expr): Prevent vtabs from being replaced with
their value.
* resolve.c (resolve_values): Use-associated symbols do not need to
be resolved again.
(resolve_fl_parameter): Make sure the symbol has a value.
From-SVN: r181199
Francois-Xavier Coudert [Wed, 9 Nov 2011 09:41:17 +0000 (09:41 +0000)]
re PR fortran/38718 (some simplifiers for elemental intrinsics missing; required for init expressions)
PR fortran/38718
* intrinsic.c (add_functions): Add gfc_simplify_dreal.
* intrinsic.h (gfc_simplify_dreal): New proto.
* simplify.c (gfc_simplify_dreal): New function.
* gfortran.dg/initialization_29.f90: Expand test.
From-SVN: r181198
Richard Guenther [Wed, 9 Nov 2011 08:32:26 +0000 (08:32 +0000)]
gimple-fold.c (canonicalize_constructor_val): Mark address-taken variables addressable.
2011-11-09 Richard Guenther <rguenther@suse.de>
* gimple-fold.c (canonicalize_constructor_val): Mark
address-taken variables addressable.
From-SVN: r181197
Jonathan Wakely [Wed, 9 Nov 2011 08:23:30 +0000 (08:23 +0000)]
unordered_map: Add missing copy constructors.
* include/profile/unordered_map: Add missing copy constructors.
* include/profile/unordered_set: Likewise.
From-SVN: r181196
Dodji Seketeli [Wed, 9 Nov 2011 08:00:58 +0000 (08:00 +0000)]
PR c++/51027 - accepts alias-declaration without ';'
gcc/cp/
* parser.c (cp_parser_alias_declaration): Require ';' at the end
of the declaration.
libstdc++-v3/
* include/ext/pointer.h (rebind): Append missing ';'.
gcc/testsuite
* g++.dg/cpp0x/alias-decl-12.C: New test.
* g++.dg/ext/alias-decl-attr4.C: Append missing ';'.
From-SVN: r181195
Eric Botcazou [Wed, 9 Nov 2011 07:58:34 +0000 (07:58 +0000)]
Fix entry
From-SVN: r181194
Dodji Seketeli [Wed, 9 Nov 2011 07:51:12 +0000 (07:51 +0000)]
PR debug/51032 - ICE in dbxout_type, at dbxout.c:2372
gcc/cp/
* decl2.c (check_member_template): Accept alias templates and ...
* parser.c (cp_parser_alias_declaration): ... use it here.
gcc/testsuite/
* g++.dg/cpp0x/alias-decl-debug-0.C: New test.
From-SVN: r181193
Francois-Xavier Coudert [Wed, 9 Nov 2011 06:57:10 +0000 (06:57 +0000)]
re PR fortran/21881 (ICE instead of error for large arrays in derived types)
PR fortran/21881
* trans-types.c (gfc_get_dtype): Issue a fatal error instead of
an internal error.
From-SVN: r181192
Ira Rosen [Wed, 9 Nov 2011 06:41:59 +0000 (06:41 +0000)]
re PR tree-optimization/51015 (ice in vect_determine_vectorization_factor with -O3)
PR tree-optimization/51015
* tree-vect-loop.c (vect_determine_vectorization_factor): Expect
vectype to be set for pattern def stmts.
From-SVN: r181191
David S. Miller [Wed, 9 Nov 2011 05:23:02 +0000 (05:23 +0000)]
Implement vect_cmdline_needed properly on sparc.
* lib/target-supports.exp (check_effective_target_sparc_vis): New.
(check_effective_target_vect_cmdline_needed): Use it when sparc*-*-*
From-SVN: r181190
Jonathan Wakely [Wed, 9 Nov 2011 01:26:04 +0000 (01:26 +0000)]
stl_vector.h (vector::_Alloc_traits): Make private.
* include/bits/stl_vector.h (vector::_Alloc_traits): Make private.
* include/debug/vector: Add allocator-extended constructors, ensure
move assignment and swap have same allocator propagation semantics
and exceptions specification as base class.
* include/profile/vector: Likewise.
(vector::push_back(_Tp&&)): Forward argument as rvalue.
* testsuite/23_containers/vector/debug/alloc_prop.cc: New.
* doc/xml/manual/status_cxx2011.xml: Clarify status of container
requirements with respect to allocators.
(status.iso.200x): Add anchor for old ID to preserve existing links.
From-SVN: r181189
Alan Modra [Wed, 9 Nov 2011 01:20:14 +0000 (11:50 +1030)]
function.c (bb_active_p): Delete.
* function.c (bb_active_p): Delete.
(dup_block_and_redirect, active_insn_between): New functions.
(convert_jumps_to_returns, emit_return_for_exit): New functions,
split out from..
(thread_prologue_and_epilogue_insns): ..here. Delete
shadowing variables. Don't do prologue register clobber tests
when shrink wrapping already failed. Delete all last_bb_active
code. Instead compute tail block candidates for duplicating
exit path. Remove these from antic set. Duplicate tails when
reached from both blocks needing a prologue/epilogue and
blocks not needing such.
* ifcvt.c (dead_or_predicable): Test both flag_shrink_wrap and
HAVE_simple_return.
* bb-reorder.c (get_uncond_jump_length): Make global.
* bb-reorder.h (get_uncond_jump_length): Declare.
* cfgrtl.c (rtl_create_basic_block): Comment typo fix.
(rtl_split_edge): Likewise. Warning fix.
(rtl_duplicate_bb): New function.
(rtl_cfg_hooks): Enable can_duplicate_block_p and duplicate_block.
* Makefile.in (function.o): Update dependencies.
From-SVN: r181188
GCC Administrator [Wed, 9 Nov 2011 00:18:19 +0000 (00:18 +0000)]
Daily bump.
From-SVN: r181187
Francois-Xavier Coudert [Tue, 8 Nov 2011 23:54:43 +0000 (23:54 +0000)]
re PR fortran/50404 (SIGSEGV in gfc_resolve_close)
PR fortran/50404
* io.c (gfc_resolve_close): CLOSE requires a UNIT.
* gfortran.dg/io_constraints_3.f90: Improve testcase.
From-SVN: r181183
Richard Henderson [Tue, 8 Nov 2011 23:36:33 +0000 (15:36 -0800)]
Fix a darwin10 build problem.
local.cc:113:6: error: only weak aliases are supported in this configuration
* local.cc (_ITM_LB): Use a normal call, not a function alias.
From-SVN: r181182
Francois-Xavier Coudert [Tue, 8 Nov 2011 23:15:11 +0000 (23:15 +0000)]
re PR fortran/50409 (SIGSEGV in gfc_simplify_expr)
PR fortran/50409
* expr.c (gfc_simplify_expr): Substrings can't have negative
length.
* gcc/testsuite/gfortran.dg/string_5.f90: Improve testcase.
From-SVN: r181181
Francois-Xavier Coudert [Tue, 8 Nov 2011 21:58:47 +0000 (21:58 +0000)]
re PR libfortran/47972 (error.c:158:7: warning: return makes pointer from integer without a cast)
PR libfortran/47972
* runtime/error.c (gf_strerror): Silence warning.
From-SVN: r181180
Richard Henderson [Tue, 8 Nov 2011 21:18:26 +0000 (13:18 -0800)]
Test for libitm directory present before testing for support.
From-SVN: r181179
Ulrich Weigand [Tue, 8 Nov 2011 17:36:45 +0000 (17:36 +0000)]
tm.texi.in (MODE_CODE_BASE_REG_CLASS): Add address space argument.
* doc/tm.texi.in (MODE_CODE_BASE_REG_CLASS): Add address space
argument.
(REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
* doc/tm.texi: Regenerate.
* config/cris/cris.h (MODE_CODE_BASE_REG_CLASS): Add address
space argument.
(REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
* config/bfin/bfin.h (MODE_CODE_BASE_REG_CLASS): Likewise.
(REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
* config/avr/avr.h (MODE_CODE_BASE_REG_CLASS): Add address space
argument.
(REGNO_MODE_CODE_OK_FOR_BASE_P): Ditto.
* config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto.
(avr_regno_mode_code_ok_for_base_p): Ditto.
* config/avr/avr.c (avr_mode_code_base_reg_class): Ditto.
(avr_regno_mode_code_ok_for_base_p): Ditto.
(avr_reg_ok_for_addr_p): Pass AS down to
avr_regno_mode_code_ok_for_base_p.
* addresses.h (base_reg_class): Add address space argument.
Pass to MODE_CODE_BASE_REG_CLASS.
(ok_for_base_p_1): Add address space argument. Pass to
REGNO_MODE_CODE_OK_FOR_BASE_P.
(regno_ok_for_base_p): Add address space argument. Pass to
ok_for_base_p_1.
* regrename.c (scan_rtx_address): Add address space argument.
Pass address space to regno_ok_for_base_p and base_reg_class.
Update recursive calls.
(scan_rtx): Pass address space to scan_rtx_address.
(build_def_use): Likewise.
* regcprop.c (replace_oldest_value_addr): Add address space
argument. Pass to regno_ok_for_base_p and base_reg_class.
Update recursive calls.
(replace_oldest_value_mem): Pass address space to
replace_oldest_value_addr.
(copyprop_hardreg_forward_1): Likewise.
* reload.c (find_reloads_address_1): Add address space argument.
Pass address space to base_reg_class and regno_ok_for_base_p.
Update recursive calls.
(find_reloads_address): Pass address space to base_reg_class,
regno_ok_for_base_p, and find_reloads_address_1.
(find_reloads): Pass address space to base_reg_class.
(find_reloads_subreg_address): Likewise.
* ira-costs.c (record_reg_classes): Update calls to base_reg_class.
(ok_for_base_p_nonstrict): Add address space argument. Pass to
ok_for_base_p_1.
(record_address_regs): Add address space argument. Pass to
base_reg_class and ok_for_base_p_nonstrict. Update recursive calls.
(record_operand_costs): Pass address space to record_address_regs.
(scan_one_insn): Likewise.
* caller-save.c (init_caller_save): Update call to base_reg_class.
* ira-conflicts.c (ira_build_conflicts): Likewise.
* reload1.c (maybe_fix_stack_asms): Likewise.
Co-Authored-By: Georg-Johann Lay <avr@gjlay.de>
From-SVN: r181175
Jason Merrill [Tue, 8 Nov 2011 17:10:09 +0000 (12:10 -0500)]
re PR c++/50835 (Lvalue-ness of conditional operator results is incorrect in a function template)
PR c++/50835
* typeck.c (build_x_conditional_expr): Preserve lvalue/xvalueness.
* tree.c (lvalue_kind) [NON_DEPENDENT_EXPR]: Return clk_ordinary
in C++98.
From-SVN: r181174
Rainer Orth [Tue, 8 Nov 2011 16:50:37 +0000 (16:50 +0000)]
Build softfp for c6x
* config/c6x/t-elf (LIB2ADD): Add instead of assigning.
From-SVN: r181173
Michael Matz [Tue, 8 Nov 2011 16:47:16 +0000 (16:47 +0000)]
gengtype.c (write_field_root): Avoid out-of-scope access of newv.
* gengtype.c (write_field_root): Avoid out-of-scope access of newv.
* tree-stdarg.c (execute_optimize_stdarg): Accept clobbers.
* tree.h (TREE_CLOBBER_P): New macro.
* gimple.h (gimple_clobber_p): New inline function.
* gimplify.c (gimplify_bind_expr): Add clobbers for all variables
that go out of scope and live in memory.
* tree-ssa-operands.c (get_expr_operands): Transfer volatility also
for constructors.
* cfgexpand.c (decl_to_stack_part): New static variable.
(add_stack_var): Allocate it, and remember mapping.
(fini_vars_expansion): Deallocate it.
(stack_var_conflict_p): Add early outs.
(visit_op, visit_conflict, add_scope_conflicts_1,
add_scope_conflicts): New static functions.
(expand_used_vars_for_block): Don't call add_stack_var_conflict, tidy.
(expand_used_vars): Add scope conflicts.
(expand_gimple_stmt_1): Expand clobbers to nothing.
(expand_debug_expr): Ditto.
* tree-pretty-print.c (dump_generic_node): Dump clobbers nicely.
* tree-ssa-live.c (remove_unused_locals): Remove clobbers that
refer to otherwise unused locals.
* tree-sra.c (build_accesses_from_assign): Ignore clobbers.
* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Clobbers of
SSA names aren't necessary.
(propagate_necessity): Accept and ignore constructors on the rhs,
tidy.
* gimple.c (walk_gimple_op): Accept constructors like mem_rhs.
* tree-ssa-structalias.c (find_func_aliases): Clobbers don't store
any known value.
* tree-ssa-sccvn.c (vn_reference_lookup_3): Ditto, in particular they
don't zero-initialize something.
* tree-ssa-phiopt.c (cond_if_else_store_replacement_1): Ignore
clobber RHS, we don't want PHI nodes with those.
testsuite/
* gcc.dg/tree-ssa/
20031015-1.c: Adjust.
* g++.dg/tree-ssa/ehcleanup-1.C: Ditto.
* g++.dg/eh/builtin1.C: Rewrite to not use local variables.
* g++.dg/eh/builtin2.C: Ditto.
* g++.dg/eh/builtin3.C: Ditto.
From-SVN: r181172
Jonathan Wakely [Tue, 8 Nov 2011 16:45:54 +0000 (16:45 +0000)]
shared_ptr_base.h (_Sp_counted_ptr): Make 'final'.
* include/bits/shared_ptr_base.h (_Sp_counted_ptr): Make 'final'.
(_Sp_counted_deleter): Make 'final'. Use allocator_traits.
(_Sp_counted_ptr_inplace): Make 'final'. Use allocator_traits.
Derive from _Sp_counted_ptr instead of _Sp_counted_deleter to use EBO
for the allocator.
(__shared_count, __shared_ptr): Use allocator_traits.
* include/std/future (__future_base::_Result_alloc): Make 'final'. Use
allocator traits.
(__future_base::_Task_state): Make 'final'.
(__future_base::_Deferred_state): Likewise.
(__future_base::_Async_state): Likewise.
* testsuite/20_util/shared_ptr/cons/alloc_min.cc: New.
* testsuite/20_util/shared_ptr/creation/alloc_min.cc: New.
* testsuite/20_util/shared_ptr/creation/private.cc: New.
* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust line numbers.
* testsuite/30_threads/packaged_task/cons/alloc_min.cc: New.
* testsuite/30_threads/promise/cons/alloc_min.cc: New.
From-SVN: r181171
Jakub Jelinek [Tue, 8 Nov 2011 16:29:51 +0000 (17:29 +0100)]
i386.c (ix86_preferred_simd_mode): Even for TARGET_AVX if not TARGET_PREFER_AVX128 return 32-byte integer vectors.
* config/i386/i386.c (ix86_preferred_simd_mode): Even for TARGET_AVX
if not TARGET_PREFER_AVX128 return 32-byte integer vectors.
* gcc.target/i386/avx-cvt-2.c: Adjust for 32-byte integer vectors
being prefered even for -mavx.
* gcc.target/i386/avx-cvt-3.c: New test.
From-SVN: r181170
Richard Henderson [Tue, 8 Nov 2011 16:28:30 +0000 (08:28 -0800)]
Fix tests for libitm support.
From-SVN: r181169