Max Ostapenko [Thu, 5 Dec 2013 11:35:09 +0000 (13:35 +0200)]
atomic_stack.c: New test.
2013-12-05 Max Ostapenko <m.ostapenko@partner.samsung.com>
* c-c++-common/tsan/atomic_stack.c: New test.
* c-c++-common/tsan/fd_pipe_race.c: New test.
* c-c++-common/tsan/free_race.c: New test.
* c-c++-common/tsan/mutexset1.c: New test.
* c-c++-common/tsan/race_on_barrier.c: New test.
* c-c++-common/tsan/sleep_sync.c: New test.
* c-c++-common/tsan/thread_leak.c: New test.
* c-c++-common/tsan/thread_leak1.c: New test.
* c-c++-common/tsan/thread_leak2.c: New test.
* c-c++-common/tsan/tiny_race.c: New test.
* c-c++-common/tsan/tls_race.c: New test.
* c-c++-common/tsan/write_in_reader_lock.c: New test.
* lib/tsan-dg.exp: New file.
* gcc.dg/tsan/tsan.exp: New file.
* g++.dg/tsan/tsan.exp: New file.
* g++.dg/dg.exp: Prune tsan subdirectory.
Richard Biener [Thu, 5 Dec 2013 09:12:29 +0000 (09:12 +0000)]
re PR tree-optimization/59374 (-ftree-slp-vectorize breaks unique_ptr's move constructor)
2013-12-05 Richard Biener <rguenther@suse.de>
PR tree-optimization/59374
* tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
Commonize known and unknown dependence case fixing the allowed
read-write dependence case and dropping code that should not
matter.
* gcc.dg/torture/pr59374-1.c: New testcase.
* gcc.dg/torture/pr59374-2.c: Likewise.
Jeff Law [Thu, 5 Dec 2013 03:18:18 +0000 (20:18 -0700)]
common.opt: Split up -fisolate-erroneous-paths into -fisolate-erroneous-paths-dereference...
* common.opt: Split up -fisolate-erroneous-paths into
-fisolate-erroneous-paths-dereference and
-fisolate-erroneous-paths-attribute.
* invoke.texi: Corresponding changes.
* gimple.c (infer_nonnull_range): Add and use new arguments
to control what kind of statements can be used to infer a
non-null range.
* gimple.h (infer_nonnull_range): Update prototype.
* tree-vrp.c (infer_value_range): Corresponding changes.
* opts.c (default_options_table): Update due to option split.
* gimple-ssa-isolate-paths.c: Fix trailing whitespace.
(find_implicit_erroneous_behaviour): Pass additional arguments
to infer_nonnull_range.
(find_explicit_erroneous_behaviour): Similarly.
(gate_isolate_erroneous_paths): Check both of the new
options.
testsuite/
* gcc.dg/pr38984.c: Use -fno-isolate-erroneous-paths-dereference.
* gcc.dg/tree-ssa/isolate-2.c: Explicitly turn on
-fisolate-erroneous-paths-attribute.
* gcc.dg/tree-ssa/isolate-4.c: Likewise.
Joseph Myers [Wed, 4 Dec 2013 22:57:20 +0000 (22:57 +0000)]
re PR c/52023 ([C11] _Alignof (double) yields wrong value on x86)
PR c/52023
c-family:
* c-common.c (c_sizeof_or_alignof_type): Add parameter min_alignof
and check field alignment if set.
* c-common.h (c_sizeof_or_alignof_type): Update prototype.
(c_sizeof, c_alignof): Update calls to c_sizeof_or_alignof_type.
c:
* c-parser.c (c_parser_alignas_specifier): Use
c_sizeof_or_alignof_type instead of c_alignof.
(c_parser_alignof_expression): Likewise, with min_alignof
parameter depending on alignof spelling used.
cp:
* typeck.c (cxx_sizeof_or_alignof_type): Update call to
c_sizeof_or_alignof_type.
objc:
* objc-act.c (objc_synthesize_getter): Update calls to
c_sizeof_or_alignof_type.
* config/arm/bpapi-lib.h (TARGET_HAS_NO_HW_DIVIDE): Define for
architectures that do not have hardware divide instruction.
i.e. architectures that do not define __ARM_ARCH_EXT_IDIV__.
Eric Botcazou [Wed, 4 Dec 2013 11:11:56 +0000 (11:11 +0000)]
trans.c (Case_Statement_to_gnu): Do not push a binding level for each branch if...
* gcc-interface/trans.c (Case_Statement_to_gnu): Do not push a binding
level for each branch if this is a case expression in Ada 2012.
(gnat_to_gnu) <case N_Expression_With_Actions>: Adjust comment.
Yufeng Zhang [Wed, 4 Dec 2013 08:06:16 +0000 (08:06 +0000)]
gimple-ssa-strength-reduction.c: Include tree-affine.h.
gcc/
* gimple-ssa-strength-reduction.c: Include tree-affine.h.
(name_expansions): New static variable.
(alt_base_map): Ditto.
(get_alternative_base): New function.
(find_basis_for_candidate): For CAND_REF, optionally call
find_basis_for_base_expr with the returned value from
get_alternative_base.
(record_potential_basis): Add new parameter 'base' of type 'tree';
add an assertion of non-NULL base; use base to set node->base_expr.
(alloc_cand_and_find_basis): Update; call record_potential_basis
for CAND_REF with the returned value from get_alternative_base.
(replace_refs): Dump details on the replacing.
(execute_strength_reduction): Call pointer_map_create for
alt_base_map; call free_affine_expand_cache with &name_expansions.
gcc/testsuite/
* gcc.dg/tree-ssa/slsr-39.c: Update.
* gcc.dg/tree-ssa/slsr-41.c: New test.
Wei Mi [Tue, 3 Dec 2013 18:35:24 +0000 (18:35 +0000)]
re PR rtl-optimization/59020 (internal compiler error: in maybe_add_or_update_dep_1, at sched-deps.c:933)
2013-12-03 Wei Mi <wmi@google.com>
PR rtl-optimization/59020
* sched-deps.c (try_group_insn): Move it from haifa-sched.c to here.
(sched_analyze_insn): Call try_group_insn.
(sched_analyze): Cleanup SCHED_GROUP_P before start the analysis.
* haifa-sched.c (try_group_insn): Moved to sched-deps.c.
(group_insns_for_macro_fusion): Removed.
(sched_init): Remove calling group_insns_for_macro_fusion.
Yury Gribov [Tue, 3 Dec 2013 16:01:13 +0000 (16:01 +0000)]
re PR sanitizer/59063 (ASAN: segfault in __interceptor_clock_gettime)
PR sanitizer/59063
* lib/asan-dg.exp: Don't add anything to flags if libsanitizer
has not been found.
* lib/ubsan-dg.exp: Likewise. Append to flags also
-B${gccpath}/libsanitizer/.
Chung-Ju Wu [Tue, 3 Dec 2013 10:58:05 +0000 (10:58 +0000)]
Fix some testcases for nds32 target and provide new nds32 target specific tests.
gcc/testsuite/
* gcc.dg/20020312-2.c: Add __nds32__ case.
* gcc.dg/builtin-apply2.c: Skip for nds32*-*-*.
* gcc.dg/sibcall-3.c: Expected fail for nds32*-*-*.
* gcc.dg/sibcall-4.c: Expected fail for nds32*-*-*.
* gcc.dg/stack-usage-1.c (SIZE): Define case for __nds32__.
* gcc.dg/torture/pr37868.c: Skip for nds32*-*-*.
* gcc.dg/torture/stackalign/builtin-apply-2.c: Skip for nds32*-*-*.
* gcc.dg/tree-ssa/20040204-1.c: Expected fail for nds32*-*-*.
* gcc.dg/tree-ssa/pr42585.c: Skip for nds32*-*-*.
* gcc.dg/tree-ssa/sra-12.c: Skip for nds32*-*-*.
* gcc.target/nds32: New nds32 specific directory and testcases.
* lib/target-supports.exp (check_profiling_available): Check for
nds32*-*-elf.
Jakub Jelinek [Tue, 3 Dec 2013 07:48:58 +0000 (08:48 +0100)]
re PR tree-optimization/59362 (Abort in fini_object_sizes)
PR tree-optimization/59362
* tree-object-size.c (object_sizes): Change into array of
vec<unsigned HOST_WIDE_INT>.
(compute_builtin_object_size): Check computed bitmap for
non-NULL instead of object_sizes. Call safe_grow on object_sizes
vector if new SSA_NAMEs appeared.
(init_object_sizes): Check computed bitmap for non-NULL.
Call safe_grow on object_sizes elements instead of initializing
it with XNEWVEC.
(fini_object_sizes): Call release on object_sizes elements, don't
set it to NULL.
Jakub Jelinek [Tue, 3 Dec 2013 07:44:37 +0000 (08:44 +0100)]
re PR middle-end/59011 (ICE in make_decl_rtl, at varasm.c:1147)
PR middle-end/59011
* gimplify.c (nonlocal_vla_vars): New variable.
(gimplify_var_or_parm_decl): Put VAR_DECLs for VLAs into
nonlocal_vla_vars chain.
(gimplify_body): Call declare_vars on nonlocal_vla_vars chain
if outer_bind has DECL_INITIAL (current_function_decl) block.
Sriraman Tallam [Tue, 3 Dec 2013 03:14:09 +0000 (03:14 +0000)]
This patch fixes PR 58944
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58944
ix86_valid_target_attribute_tree in config/i386/i386.c was
refactored to not depend on global_options structure and to be able to
use any gcc_options structure. One clean way to fix this is by having
target_option_default_node save all the default target options which
can be restored to any gcc_options structure. The root cause of the
above bugs was that ix86_arch_string and ix86_tune_string was not
saved in target_option_deault_node.
This patch saves all the target options used in i386.opt which are
either obtained from the command-line or set to some default.
Testing:
Patch tested for bootstrap on all default languages(also obj-c++ and ada)
on x86_64 and regression testsuite checked for parity with RUNTESTFLAGS -m32
and m64.
Jakub Jelinek [Mon, 2 Dec 2013 22:41:23 +0000 (23:41 +0100)]
re PR tree-optimization/59358 (Infinite loop generated with >=O2)
PR tree-optimization/59358
* tree-vrp.c (union_ranges): To check for the partially
overlapping ranges or adjacent ranges, also compare *vr0max
with vr1max.
Fix C++0x memory model for unaligned fields in packed, aligned(4)
structures with -fno-strict-volatile-bitfields on STRICT_ALIGNMENT
targets like arm-none-eabi.
* expr.c (expand_assignment): Handle normal fields like bit regions.
Richard Biener [Mon, 2 Dec 2013 15:13:52 +0000 (15:13 +0000)]
tree-ssa-operands.c (opf_implicit): Remove.
2013-12-02 Richard Biener <rguenther@suse.de>
* tree-ssa-operands.c (opf_implicit): Remove.
(opf_address_taken): New flag.
(get_expr_operands): Remove early out, pass down
opf_address_taken for ADDR_EXPRs, add a use operand only
for non-opf_address_taken bases.
(get_indirect_ref_operands): Rename to ...
(get_mem_ref_operands): ... this.
(get_asm_expr_operands): Rename to ...
(get_asm_stmt_operands): ... this.
Eric Botcazou [Mon, 2 Dec 2013 11:20:14 +0000 (11:20 +0000)]
re PR tree-optimization/59356 (ACATS C52102A and C52102C failures)
PR tree-optimization/59356
* tree-dfa.h (get_addr_base_and_unit_offset_1) <case ARRAY_REF>: Do the
offset computation using the precision of the index type.
Paul Thomas [Sun, 1 Dec 2013 11:50:20 +0000 (11:50 +0000)]
re PR fortran/57354 (Wrong run-time assignment of allocatable array of derived type with allocatable component)
2013-12-01 Paul Thomas <pault@gcc.gnu.org>
PR fortran/57354
* trans-array.c (gfc_conv_resolve_dependencies): For other than
SS_SECTION, do a dependency check if the lhs is liable to be
reallocated.
2013-12-01 Paul Thomas <pault@gcc.gnu.org>
PR fortran/57354
* gfortran.dg/realloc_on_assign_23.f90 : New test
Paul Thomas [Sun, 1 Dec 2013 11:42:25 +0000 (11:42 +0000)]
re PR fortran/58410 (Bogus uninitialized variable warning for allocatable derived type array function result)
2013-12-01 Paul Thomas <pault@gcc.gnu.org>
PR fortran/58410
* trans-array.c (gfc_alloc_allocatable_for_assignment): Do not
use the array bounds of an unallocated array but set its size
to zero instead.
Ian Lance Taylor [Sat, 30 Nov 2013 17:14:50 +0000 (17:14 +0000)]
reflect: Fix MakeFunc for 386 when returning a struct.
When a 386 function returns a struct, it needs to return using
an rtd instruction that pops the hidden struct parameter off
the stack. That wasn't happening.
Paulo Matos [Sat, 30 Nov 2013 11:13:07 +0000 (11:13 +0000)]
combine.c (reg_nonzero_bits_for_combine): Apply mask transformation as applied to nonzero_sign_valid when...
* combine.c (reg_nonzero_bits_for_combine): Apply mask transformation
as applied to nonzero_sign_valid when last_set_mode has less precision
than mode.
Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>
From-SVN: r205550
Tobias Burnus [Sat, 30 Nov 2013 09:11:13 +0000 (10:11 +0100)]
re PR sanitizer/59275 (Document environment variables used by the sanitizers)
2013-11-30 Tobias Burnus <burnus@net-b.de>
PR sanitizer/59275
* doc/invoke.texi (-fsanitize=address,leak): Mention the
* associated
environment variable and link to a list with flags.
(-fsanitize=thread): Ditto and update link.
Joseph Myers [Fri, 29 Nov 2013 21:24:14 +0000 (21:24 +0000)]
re PR c/42262 (internal compiler error: in set_designator, at c-typeck.c:5771)
PR c/42262
c:
* c-typeck.c (process_init_element): Do not treat a string as
initializing a whole array when used with a designator for an
individual element.
testsuite:
* gcc.dg/c99-init-5.c, gcc.dg/c99-init-6.c: New tests.
Vladimir Makarov [Fri, 29 Nov 2013 20:08:38 +0000 (20:08 +0000)]
re PR rtl-optimization/59340 (LRA enable-checking bootstrap failure since r205136)
2013-11-29 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/59340
* lra.c (check_rtl): Use recog_memoized instead of insn_invalid_p.
Revert
2013-11-20 Robert Suchanek <Robert.Suchanek@imgtec.com>
* lra.c (lra): Set lra_in_progress before check_rtl call.
* recog.c (insn_invalid_p): Add !lra_in_progress to prevent
adding clobber regs when LRA is running.