gcc.git
10 years agore PR sanitizer/59306 (ICE with -fsanitize=null: gimple check: expected gimple_call...
Marek Polacek [Wed, 27 Nov 2013 11:40:22 +0000 (11:40 +0000)]
re PR sanitizer/59306 (ICE with -fsanitize=null: gimple check: expected gimple_call(error_mark), have gimple_assign(addr_expr) in gimple_call_arg)

PR sanitizer/59306
* ubsan.c (instrument_null): Use gimple_store_p/gimple_assign_load_p
instead of walk_gimple_op.
(ubsan_pass): Adjust.  Call instrument_null only if SANITIZE_NULL.
testsuite/
* g++.dg/ubsan/pr59306.C: New test.

From-SVN: r205443

10 years agocgraph.h (enum cgraph_simd_clone_arg_type): New.
Aldy Hernandez [Wed, 27 Nov 2013 11:20:06 +0000 (11:20 +0000)]
cgraph.h (enum cgraph_simd_clone_arg_type): New.

* cgraph.h (enum cgraph_simd_clone_arg_type): New.
(struct cgraph_simd_clone_arg, struct cgraph_simd_clone): New.
(struct cgraph_node): Add simdclone and simd_clones fields.
* config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen,
ix86_simd_clone_adjust, ix86_simd_clone_usable): New functions.
(TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN,
TARGET_SIMD_CLONE_ADJUST, TARGET_SIMD_CLONE_USABLE): Define.
* doc/tm.texi.in (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN,
TARGET_SIMD_CLONE_ADJUST, TARGET_SIMD_CLONE_USABLE): Add.
* doc/tm.texi: Regenerated.
* ggc.h (ggc_alloc_cleared_simd_clone_stat): New function.
* ipa-cp.c (determine_versionability): Fail if "omp declare simd"
attribute is present.
* omp-low.c: Include pretty-print.h, ipa-prop.h and tree-eh.h.
(simd_clone_vector_of_formal_parm_types): New function.
(simd_clone_struct_alloc, simd_clone_struct_copy,
simd_clone_vector_of_formal_parm_types, simd_clone_clauses_extract,
simd_clone_compute_base_data_type, simd_clone_mangle,
simd_clone_create, simd_clone_adjust_return_type,
create_tmp_simd_array, simd_clone_adjust_argument_types,
simd_clone_init_simd_arrays): New functions.
(struct modify_stmt_info): New type.
(ipa_simd_modify_stmt_ops, ipa_simd_modify_function_body,
simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone): New
functions.
(pass_data_omp_simd_clone): New variable.
(pass_omp_simd_clone): New class.
(make_pass_omp_simd_clone): New function.
* passes.def (pass_omp_simd_clone): New.
* target.def (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN,
TARGET_SIMD_CLONE_ADJUST, TARGET_SIMD_CLONE_USABLE): New target
hooks.
* target.h (struct cgraph_node, struct cgraph_simd_node): Declare.
* tree-core.h (OMP_CLAUSE_LINEAR_VARIABLE_STRIDE): Document.
* tree.h (OMP_CLAUSE_LINEAR_VARIABLE_STRIDE): Define.
* tree-pass.h (make_pass_omp_simd_clone): New prototype.
* tree-vect-data-refs.c: Include cgraph.h.
(vect_analyze_data_refs): Inline by hand find_data_references_in_loop
and find_data_references_in_bb, if find_data_references_in_stmt
fails, still allow calls to #pragma omp declare simd functions
in #pragma omp simd loops unless they contain data references among
the call arguments or in lhs.
* tree-vect-loop.c (vect_determine_vectorization_factor): Handle
calls with no lhs.
(vect_transform_loop): Allow NULL STMT_VINFO_VECTYPE for calls without
lhs.
* tree-vectorizer.h (enum stmt_vec_info_type): Add
call_simd_clone_vec_info_type.
(struct _stmt_vec_info): Add simd_clone_fndecl field.
(STMT_VINFO_SIMD_CLONE_FNDECL): Define.
* tree-vect-stmts.c: Include tree-ssa-loop.h,
tree-scalar-evolution.h and cgraph.h.
(vectorizable_call): Handle calls without lhs.  Assert
!stmt_can_throw_internal instead of failing for it.  Don't update
EH stuff.
(struct simd_call_arg_info): New.
(vectorizable_simd_clone_call): New function.
(vect_transform_stmt): Call it.
(vect_analyze_stmt): Likewise.  Allow NULL STMT_VINFO_VECTYPE for
calls without lhs.
* ipa-prop.c (ipa_add_new_function): Only call ipa_analyze_node
if cgraph_function_with_gimple_body_p is true.
c/
* c-decl.c (c_builtin_function_ext_scope): Avoid binding if
external_scope is NULL.
cp/
* semantics.c (finish_omp_clauses): For #pragma omp declare simd
linear clause step call maybe_constant_value.
testsuite/
* g++.dg/gomp/declare-simd-1.C (f38): Make sure
simdlen is a power of two.
* gcc.dg/gomp/simd-clones-2.c: Compile on all targets.
Remove -msse2.  Adjust regexps for name mangling changes.
* gcc.dg/gomp/simd-clones-3.c: Likewise.
* gcc.dg/vect/vect-simd-clone-1.c: New test.
* gcc.dg/vect/vect-simd-clone-2.c: New test.
* gcc.dg/vect/vect-simd-clone-3.c: New test.
* gcc.dg/vect/vect-simd-clone-4.c: New test.
* gcc.dg/vect/vect-simd-clone-5.c: New test.
* gcc.dg/vect/vect-simd-clone-6.c: New test.
* gcc.dg/vect/vect-simd-clone-7.c: New test.
* gcc.dg/vect/vect-simd-clone-8.c: New test.
* gcc.dg/vect/vect-simd-clone-9.c: New test.
* gcc.dg/vect/vect-simd-clone-10.c: New test.
* gcc.dg/vect/vect-simd-clone-10.h: New file.
* gcc.dg/vect/vect-simd-clone-10a.c: New file.
* gcc.dg/vect/vect-simd-clone-11.c: New test.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r205442

10 years agoProperly set ld_library_path in cilk-plus tests
Rainer Orth [Wed, 27 Nov 2013 10:16:43 +0000 (10:16 +0000)]
Properly set ld_library_path in cilk-plus tests

* gcc.dg/cilk-plus/cilk-plus.exp: Append to ld_library_path.
Call set_ld_library_path_env_vars.
* g++.dg/cilk-plus/cilk-plus.exp: Likewise.

From-SVN: r205441

10 years agoHandle vector increment/decrement in build_unary_op
Tom de Vries [Wed, 27 Nov 2013 10:00:48 +0000 (10:00 +0000)]
Handle vector increment/decrement in build_unary_op

2013-11-27  Tom de Vries  <tom@codesourcery.com>
    Marc Glisse  <marc.glisse@inria.fr>

PR c++/59032
* c-typeck.c (build_unary_op): Allow vector increment and decrement.

* typeck.c (cp_build_unary_op): Allow vector increment and decrement.

* c-c++-common/pr59032.c: New testcase.

Co-Authored-By: Marc Glisse <marc.glisse@inria.fr>
From-SVN: r205439

10 years agoDon't create out-of-bounds BIT_FIELD_REF.
Tom de Vries [Wed, 27 Nov 2013 10:00:30 +0000 (10:00 +0000)]
Don't create out-of-bounds BIT_FIELD_REF.

2013-11-27  Tom de Vries  <tom@codesourcery.com>
    Marc Glisse  <marc.glisse@inria.fr>

PR middle-end/59037
* semantics.c (cxx_fold_indirect_ref): Don't create out-of-bounds
BIT_FIELD_REF.

* fold-const.c (fold_indirect_ref_1): Don't create out-of-bounds
BIT_FIELD_REF.
* gimple-fold.c (gimple_fold_indirect_ref): Same.
* tree-cfg.c (verify_expr): Give error if BIT_FIELD_REF is
out-of-bounds.

* c-c++-common/pr59037.c: New testcase.

Co-Authored-By: Marc Glisse <marc.glisse@inria.fr>
From-SVN: r205438

10 years agore PR middle-end/59138 (possible packed struct miscompile)
Eric Botcazou [Wed, 27 Nov 2013 09:17:23 +0000 (09:17 +0000)]
re PR middle-end/59138 (possible packed struct miscompile)

PR middle-end/59138
* expr.c (emit_group_store): Don't write past the end of the structure.
(store_bit_field): Fix formatting.

From-SVN: r205436

10 years agore PR tree-optimization/59288 (ICE in get_initial_def_for_induction)
Richard Biener [Wed, 27 Nov 2013 08:50:15 +0000 (08:50 +0000)]
re PR tree-optimization/59288 (ICE in get_initial_def_for_induction)

2013-11-27  Richard Biener  <rguenther@suse.de>

PR tree-optimization/59288
* tree-vect-loop.c (get_initial_def_for_induction): Do not
re-analyze the PHI but use STMT_VINFO_LOOP_PHI_EVOLUTION_PART.

* gcc.dg/torture/pr59288.c: New testcase.

From-SVN: r205434

10 years agoubsan.c (ubsan_type_descriptor): If varpool_get_node returns NULL for a decl, recreat...
Marek Polacek [Wed, 27 Nov 2013 08:02:48 +0000 (08:02 +0000)]
ubsan.c (ubsan_type_descriptor): If varpool_get_node returns NULL for a decl, recreate that decl.

2013-11-27  Marek Polacek  <polacek@redhat.com>

* ubsan.c (ubsan_type_descriptor): If varpool_get_node returns NULL
for a decl, recreate that decl.  Save into the hash table VAR_DECLs
rather than ADDR_EXPRs.
testsuite/
* c-c++-common/ubsan/undefined-1.c: New test.

From-SVN: r205433

10 years agohpux.h (TARGET_LIBC_HAS_FUNCTION): Fix typo.
Alexander Ivchenko [Wed, 27 Nov 2013 07:57:04 +0000 (07:57 +0000)]
hpux.h (TARGET_LIBC_HAS_FUNCTION): Fix typo.

        * config/ia64/hpux.h (TARGET_LIBC_HAS_FUNCTION): Fix typo.

From-SVN: r205432

10 years agoFix checking of gimple types
David Malcolm [Wed, 27 Nov 2013 02:26:25 +0000 (02:26 +0000)]
Fix checking of gimple types

* gengtype.c (struct seen_tag): New.
(already_seen_tag): New.
(mark_tag_as_seen): New.
(walk_subclasses): Support having multiple subclasses using the
same tag by tracking which tags have already been seen, and using
this to avoid adding duplicate cases to the "switch" statement.
The call to already_seen_tag introduces an O(N^2) when running
gengtype on N, the number of tags, due to the repeated linear
search, but currently max(N) is relatively small (the number of
GSS codes, which is 26).
(walk_type): Pass in a seen_tag for use by the walk_subclasses
recursion.

* gimple.def (GIMPLE_OMP_ATOMIC_STORE, GIMPLE_OMP_RETURN): Rename
underlying GSS values for these codes (from GSS_OMP_ATOMIC_STORE to
GSS_OMP_ATOMIC_STORE_LAYOUT) to make clear that although
GIMPLE_OMP_RETURN happens to share the data layout of
GIMPLE_OMP_ATOMIC_STORE, they are not otherwise related.
(GIMPLE_OMP_PARALLEL, GIMPLE_OMP_TARGET): Likewise, rename
underlying GSS value from GSS_OMP_PARALLEL to
GSS_OMP_PARALLEL_LAYOUT to make clear that these gimple codes are
not directly related; they merely share in-memory layout.
(GIMPLE_OMP_SINGLE, GIMPLE_OMP_TEAMS): Likewise, rename GSS values
for these two codes from GSS_OMP_SINGLE to GSS_OMP_SINGLE_LAYOUT.

* gsstruct.def (GSS_OMP_PARALLEL, gimple_statement_omp_parallel):
Rename to...
(GSS_OMP_PARALLEL_LAYOUT, gimple_statement_omp_parallel_layout):
...these.
(GSS_OMP_SINGLE, gimple_statement_omp_single): Rename to...
(GSS_OMP_SINGLE_LAYOUT, gimple_statement_omp_single_layout):
...these.
(GSS_OMP_ATOMIC_STORE, gimple_statement_omp_atomic_store): Rename
to...
(GSS_OMP_ATOMIC_STORE_LAYOUT, gimple_statement_omp_atomic_store):
...these.

* gimple.h (gimple_statement_resx): New subclass of
gimple_statement_eh_ctrl, with the invariant that
stmt->code == GIMPLE_RESX.
(gimple_statement_eh_dispatch): New subclass of
gimple_statement_eh_ctrl, with the invariant that
stmt->code == GIMPLE_EH_DISPATH.

(gimple_statement_omp_parallel): The existing class expressed
a layout (GSS_OMP_PARALLEL), but the codes with that layout
are not all related, so it makes more sense for this class to
express a *code* (GIMPLE_OMP_PARALLEL).  GSS_OMP_PARALLEL has
been renamed to GSS_OMP_PARALLEL_LAYOUT to express this, so
rename the existing gimple_statement_omp_parallel class to...
(gimple_statement_omp_parallel_layout): ...this, expressing
a statement of structure layout GSS_OMP_PARALLEL_LAYOUT.
(gimple_statement_omp_taskreg): New subclass of
gimple_statement_omp_parallel_layout, expressing the invariant
that the code is one of GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK,
as used by the various gimple_omp_taskreg_ accessors.
(gimple_statement_omp_parallel): Reintroduce this class, this time
as a subclass of gimple_statement_omp_taskreg to express the
invariant stmt->code == GIMPLE_OMP_PARALLEL.
(gimple_statement_omp_target) New class, subclassing
gimple_statement_omp_parallel_layout, to express the invariant
stmt->code == GIMPLE_OMP_TARGET.
(gimple_statement_omp_task): Update to inherit from
gimple_statement_omp_taskreg rather than
gimple_statement_omp_parallel.

(gimple_statement_omp_single): Rename to...
(gimple_statement_omp_single_layout): ...this, expressing the
invariant that the layout is GSS_OMP_SINGLE_LAYOUT.
(gimple_statement_omp_single): ...and reintroduce this name as
a subclass of gimple_statement_omp_single_layout, expressing
the invariant that code == GIMPLE_OMP_SINGLE.
(gimple_statement_omp_teams): New class, subclassing
gimple_statement_omp_single_layout, for the code GIMPLE_OMP_TEAMS.

(gimple_statement_omp_atomic_store): Rename to...
(gimple_statement_omp_atomic_store_layout): ...this, expressing
the invariant that the layout is GSS_OMP_ATOMIC_STORE_LAYOUT.
(gimple_statement_omp_atomic_store): ...and reintroduce this
name as a subclass of gimple_statement_omp_atomic_store_layout
with code == GIMPLE_OMP_ATOMIC_STORE.
(gimple_statement_omp_return): New class, subclassing
gimple_statement_omp_atomic_store_layout for the code
GIMPLE_OMP_RETURN.

(is_a_helper <gimple_statement_eh_ctrl>::test): Delete.
(is_a_helper <gimple_statement_resx>::test): New.
(is_a_helper <gimple_statement_eh_dispatch>::test): New.
(is_a_helper <gimple_statement_omp_atomic_store>::test): Only
check for GIMPLE_OMP_ATOMIC_STORE, not for GIMPLE_OMP_RETURN.
(is_a_helper <gimple_statement_omp_return>::test): New.
(is_a_helper <gimple_statement_omp_taskreg>::test): New.
(is_a_helper <gimple_statement_omp_parallel>::test): Only check
for GIMPLE_OMP_PARALLEL, not for GIMPLE_OMP_TASK or
GIMPLE_OMP_TARGET.
(is_a_helper <gimple_statement_omp_target>::test): New.
(is_a_helper <gimple_statement_omp_single>::test): Only check
for GIMPLE_OMP_SINGLE, not for GIMPLE_OMP_TEAMS.
(is_a_helper <gimple_statement_omp_teams>::test): New.

(is_a_helper <const gimple_statement_eh_ctrl>::test): Delete.
(is_a_helper <const gimple_statement_resx>::test): New.
(is_a_helper <const gimple_statement_eh_dispatch>::test): New.
(is_a_helper <const gimple_statement_omp_atomic_store>::test): Only
check for GIMPLE_OMP_ATOMIC_STORE, not for GIMPLE_OMP_RETURN.
(is_a_helper <const gimple_statement_omp_return>::test): New.
(is_a_helper <const gimple_statement_omp_taskreg>::test): New.
(is_a_helper <const gimple_statement_omp_parallel>::test): Only
check for GIMPLE_OMP_PARALLEL, not for GIMPLE_OMP_TASK or
GIMPLE_OMP_TARGET.
(is_a_helper <const gimple_statement_omp_target>::test): New.
(is_a_helper <const gimple_statement_omp_single>::test): Only
check for GIMPLE_OMP_SINGLE, not for GIMPLE_OMP_TEAMS.
(is_a_helper <const gimple_statement_omp_teams>::test): New.

(gimple_omp_return_set_lhs, gimple_omp_return_lhs,
gimple_omp_return_lhs_ptr): Replace bogus downcasts to
gimple_statement_omp_atomic_store with downcasts to
gimple_statement_omp_return, thus requiring that the code be
GIMPLE_OMP_RETURN.
(gimple_resx_region, gimple_resx_set_region): Replace bogus
downcasts to gimple_statement_eh_ctrl with downcasts to
gimple_statement_resx, thus requiring that the code be
GIMPLE_RESX.
(gimple_eh_dispatch_region, gimple_eh_dispatch_set_region):
Replace bogus downcasts to const gimple_statement_eh_ctrl with
downcasts to gimple_statement_eh_dispatch, thus requiring that
the code be GIMPLE_EH_DISPATCH.
(gimple_omp_taskreg_clauses, gimple_omp_taskreg_clauses_ptr)
gimple_omp_taskreg_set_clauses, gimple_omp_taskreg_child_fn,
gimple_omp_taskreg_child_fn_ptr, gimple_omp_taskreg_set_child_fn,
gimple_omp_taskreg_data_arg, gimple_omp_taskreg_data_arg_ptr,
gimple_omp_taskreg_set_data_arg): Replace bogus downcasts to
gimple_statement_omp_parallel with downcasts to
gimple_statement_omp_taskreg, thus requiring that the code be
either GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK.
(gimple_omp_target_clauses, gimple_omp_target_clauses_ptr
gimple_omp_target_set_clauses, gimple_omp_target_child_fn
gimple_omp_target_child_fn_ptr, gimple_omp_target_set_child_fn
gimple_omp_target_data_arg, gimple_omp_target_data_arg_ptr
gimple_omp_target_set_data_arg): Replace bogus downcasts to
gimple_statement_omp_parallel with downcasts to
gimple_statement_omp_target, thus requiring that the code be
GIMPLE_OMP_TARGET.
(gimple_omp_teams_clauses, gimple_omp_teams_clauses_ptr
gimple_omp_teams_set_clauses): Replace bogus downcasts to
gimple_statement_omp_single with downcasts to
gimple_statement_omp_teams, thus requiring that the code be
GIMPLE_OMP_TEAMS.

* gimple.c (gimple_build_resx): Fix bogus as_a<> to use
gimple_statement_resx.
(gimple_build_eh_dispatch): Fix bogus as_a<> to use
gimple_statement_eh_dispatch.

From-SVN: r205428

10 years agolibgo: Update to current Go library.
Ian Lance Taylor [Wed, 27 Nov 2013 01:05:38 +0000 (01:05 +0000)]
libgo: Update to current Go library.

From-SVN: r205426

10 years agoDaily bump.
GCC Administrator [Wed, 27 Nov 2013 00:17:09 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r205425

10 years agoruntime: Fix handling of surrogate pairs in string([]rune).
Ian Lance Taylor [Tue, 26 Nov 2013 23:27:29 +0000 (23:27 +0000)]
runtime: Fix handling of surrogate pairs in string([]rune).

From-SVN: r205422

10 years agore PR tree-optimization/59014 (wrong code at -Os and above on x86_64-linux-gnu)
Jakub Jelinek [Tue, 26 Nov 2013 21:29:30 +0000 (22:29 +0100)]
re PR tree-optimization/59014 (wrong code at -Os and above on x86_64-linux-gnu)

PR tree-optimization/59014
* tree-vrp.c (register_edge_assert_for_1): Don't look
through conversions from non-integral types or through
narrowing conversions.

* gcc.c-torture/execute/pr59014.c: New test.

From-SVN: r205417

10 years agore PR target/59229 (ICE in ix86_expand_set_or_movmem)
Jakub Jelinek [Tue, 26 Nov 2013 21:28:26 +0000 (22:28 +0100)]
re PR target/59229 (ICE in ix86_expand_set_or_movmem)

PR target/59229
* config/i386/i386.c (device_alg): Fix up formatting.
(ix86_expand_set_or_movmem): Handle max_size < epilogue_size_needed
similarly to count && count < epilogue_size_needed.  Fix up
comment typo.
* builtins.c (determine_block_size): Fix comment typo.

* gcc.c-torture/execute/pr59229.c: New test.

From-SVN: r205416

10 years agore PR sanitizer/59258 (ubsan: ICE(segfault): stack-buffer-overflow with -fsanitize...
Jakub Jelinek [Tue, 26 Nov 2013 21:27:19 +0000 (22:27 +0100)]
re PR sanitizer/59258 (ubsan: ICE(segfault): stack-buffer-overflow with -fsanitize=undefined)

PR sanitizer/59258
* ubsan.c (ubsan_source_location): Don't add any location
to ADDR_EXPR in the ctor.  Revert 2013-11-22 change.
(ubsan_create_data): Strip block info from LOC.

From-SVN: r205415

10 years agore PR middle-end/59273 (ICE in expand_expr_real_2, at expr.c:9188 on alpha)
Jakub Jelinek [Tue, 26 Nov 2013 20:55:39 +0000 (21:55 +0100)]
re PR middle-end/59273 (ICE in expand_expr_real_2, at expr.c:9188 on alpha)

PR middle-end/59273
* tree-vect-generic.c (optimize_vector_constructor): Don't optimize
if there isn't optab handler for the corresponding vector PLUS_EXPR.

From-SVN: r205414

10 years agore PR rtl-optimization/59166 (ICE in simplify_subreg, at simplify-rtx.c:5901 on valid...
Jakub Jelinek [Tue, 26 Nov 2013 20:54:37 +0000 (21:54 +0100)]
re PR rtl-optimization/59166 (ICE in simplify_subreg, at simplify-rtx.c:5901 on valid code (at -O1 and above with -g enabled))

PR rtl-optimization/59166
* ira.c (find_moveable_pseudos): Use DF_REF_REAL_LOC instead of
DF_REF_LOC in validate_change call.
(split_live_ranges_for_shrink_wrap): Likewise.

* gcc.dg/torture/pr59166.c: New test.

From-SVN: r205413

10 years agore PR c++/58874 ([c++11] ICE with OpenMP reduction declaration and -std=c++11)
Jakub Jelinek [Tue, 26 Nov 2013 20:39:56 +0000 (21:39 +0100)]
re PR c++/58874 ([c++11] ICE with OpenMP reduction declaration and -std=c++11)

PR c++/58874
* parser.c (cp_parser_late_parsing_for_member): For OpenMP UDRs
pass 2 instead of 0 to finish_function.

* g++.dg/gomp/pr58874.C: New test.

From-SVN: r205412

10 years agore PR middle-end/59150 (ICE: in expand_one_var, at cfgexpand.c:1242 with -fopenmp)
Jakub Jelinek [Tue, 26 Nov 2013 20:38:59 +0000 (21:38 +0100)]
re PR middle-end/59150 (ICE: in expand_one_var, at cfgexpand.c:1242 with -fopenmp)

PR middle-end/59150
* omp-low.c (lower_rec_input_clause): For reduction with placeholder
of references to constant size types in simd loops, defer emitting
initializer for the new_var, emit it later on only if not using
SIMD arrays for it.

* g++.dg/gomp/pr59150.C: New test.

From-SVN: r205411

10 years agore PR middle-end/59152 (ICE: loop 2's latch does not have an edge to its header with...
Jakub Jelinek [Tue, 26 Nov 2013 20:38:10 +0000 (21:38 +0100)]
re PR middle-end/59152 (ICE: loop 2's latch does not have an edge to its header with -fopenmp -fipa-pure-const)

PR middle-end/59152
* omp-low.c (expand_omp_for_static_chunk): Don't set loop->latch
for the inner loop if collapse_bb is non-NULL.
(expand_omp_simd): Use cont_bb rather than e->dest as latch.

* c-c++-common/gomp/pr59152.c: New test.

From-SVN: r205410

10 years agoopenmp-simd-1.c: Cleanup original tree dump.
Uros Bizjak [Tue, 26 Nov 2013 19:37:01 +0000 (20:37 +0100)]
openmp-simd-1.c: Cleanup original tree dump.

* gcc.dg/gomp/openmp-simd-1.c: Cleanup original tree dump.
* gcc.dg/gomp/openmp-simd-2.c: Ditto.
* g++.dg/gomp/openmp-simd-1.C: Ditto.
* g++.dg/gomp/openmp-simd-2.C: Ditto.
* gfortran.dg/c_loc_test_22.f90: Ditto.
* gcc.dg/tree-ssa/attr-alias-2.c: Cleanup optimized tree dump.
* gcc.dg/tree-ssa/isolate-5.c: Ditto.
* gcc.dg/tree-ssa/pr57361.c: Cleanup dse1 tree dump.
* gcc.dg/vect/vect-124.c: Cleanup vect tree dump.
* gcc.dg/pr57518.c: Cleanup ira rtl dump.
* gcc.dg/tree-prof/cold_partition_label.c: Cleanup saved temps.

From-SVN: r205408

10 years ago2013-11-26 Bernd Edlinger <bernd.edlinger@hotmail.de>
Bernd Edlinger [Tue, 26 Nov 2013 19:00:51 +0000 (19:00 +0000)]
2013-11-26  Bernd Edlinger  <bernd.edlinger@hotmail.de>

revised the ChangeLog from r205398:
moved ada changes from gcc/ChangeLog to gcc/ada/Changelog

From-SVN: r205407

10 years agocompiler: If type defined as type, forward hash/equal functions.
Ian Lance Taylor [Tue, 26 Nov 2013 18:09:09 +0000 (18:09 +0000)]
compiler: If type defined as type, forward hash/equal functions.

Fixes http://golang.org/issue/6789 .

From-SVN: r205404

10 years agoRemove parameter keep_aligning from get_inner_reference.
Bernd Edlinger [Tue, 26 Nov 2013 16:58:40 +0000 (16:58 +0000)]
Remove parameter keep_aligning from get_inner_reference.

2013-11-26  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        Remove parameter keep_aligning from get_inner_reference.
        * tree.h (get_inner_reference): Adjust header.
        * expr.c (get_inner_reference): Remove parameter keep_aligning.
        (get_bit_range, expand_assignment,
        expand_expr_addr_expr_1, expand_expr_real_1): Adjust.
        * asan.c (instrument_derefs): Adjust.
        * builtins.c (get_object_alignment_2): Adjust. Remove handling of
        VIEW_CONVERT_EXPR.
        * cfgexpand.c (expand_debug_expr): Adjust.
        * dbxout.c (dbxout_expand_expr): Adjust.
        * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
        loc_list_from_tree, fortran_common): Adjust.
        * fold-const.c (optimize_bit_field_compare,
        decode_field_reference, fold_unary_loc, fold_comparison,
        split_address_to_core_and_offset): Adjust.
        * gimple-ssa-strength-reduction.c (slsr_process_ref): Adjust.
        * simplifx-rtx.c (delegitimize_mem_from_attrs): Adjust.
        * tree-affine.c (tree_to_aff_combination,
        get_inner_reference_aff): Adjust.
        * tree-data-ref.c (split_constant_offset_1,
        dr_analyze_innermost): Adjust.
        * tree-vect-data-refs.c (vect_check_gather,
        vect_analyze_data_refs): Adjust.
        * tree-scalar-evolution.c (interpret_rhs_expr): Adjust.
        * tree-ssa-loop-ivopts.c (may_be_unaligned_p,
        split_address_cost): Adjust.
        * tsan.c (instrument_expr): Adjust.
        * ada/gcc-interface/decl.c (elaborate_expression_1): Adjust.
        * ada/gcc-interface/trans.c (Attribute_to_gnu): Adjust.
        * ada/gcc-interface/utils2.c (build_unary_op): Adjust.
        * config/mips/mips.c (r10k_safe_mem_expr_p): Adjust.

From-SVN: r205398

10 years agoarm.c (arm_legitimize_address): Check xop1 is not a constant immediate before force_reg.
Yufeng Zhang [Tue, 26 Nov 2013 16:36:14 +0000 (16:36 +0000)]
arm.c (arm_legitimize_address): Check xop1 is not a constant immediate before force_reg.

gcc/

* config/arm/arm.c (arm_legitimize_address): Check xop1 is not
a constant immediate before force_reg.

gcc/testsuite/

* gcc.target/arm/20131120.c: New test.

From-SVN: r205397

10 years agore PR tree-optimization/59245 (ICE on valid code at -O3 on x86_64-linux-gnu in set_va...
Richard Biener [Tue, 26 Nov 2013 15:14:52 +0000 (15:14 +0000)]
re PR tree-optimization/59245 (ICE on valid code at -O3 on x86_64-linux-gnu in set_value_range, at tree-vrp.c:443)

2013-11-26  Richard Biener  <rguenther@suse.de>

PR tree-optimization/59245
* tree-vrp.c (set_value_range): Assert that we don't have
overflowed constants (but our infinities).
(set_value_range_to_value): Drop all overflow flags.
(vrp_visit_phi_node): Likewise.
(vrp_visit_assignment_or_call): Use set_value_range_to_value
to set a constant range.

* gcc.dg/torture/pr59245.c: New testcase.

From-SVN: r205395

10 years agore PR target/59290 ([ARM] regression on negdi-2.c (big-endian))
Kyrylo Tkachov [Tue, 26 Nov 2013 15:06:06 +0000 (15:06 +0000)]
re PR target/59290 ([ARM] regression on negdi-2.c (big-endian))

[gcc/]
2013-11-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

PR target/59290
* config/arm/arm.md (*zextendsidi_negsi): New pattern.
* config/arm/arm.c (arm_new_rtx_costs): Initialise cost correctly
for zero_extend case.

[gcc/testsuite/]
2013-11-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

PR target/59290
* gcc.target/arm/negdi-2.c: Scan more general register names.

From-SVN: r205394

10 years agoAdd -fuse-ld=bfd/-fuse-ld=gold support to exec-tool.in
H.J. Lu [Tue, 26 Nov 2013 13:31:25 +0000 (13:31 +0000)]
Add -fuse-ld=bfd/-fuse-ld=gold support to exec-tool.in

PR bootstrap/55552
* configure.ac (install_gold_as_default): New.  Set to yes for
--disable-ld or --enable-gold=default.
(gcc_cv_ld_gold_srcdir): New.
(gcc_cv_ld): Also check in-tree gold if install_gold_as_default
is yes.
(ORIGINAL_LD_BFD_FOR_TARGET): New AC_SUBST.
(ORIGINAL_LD_GOLD_FOR_TARGET): Likewise.
* configure: Regenerated.

* exec-tool.in (ORIGINAL_LD_BFD_FOR_TARGET): New variable.
(ORIGINAL_LD_GOLD_FOR_TARGET): Likewise.
(original) [collect-ld && -fuse-ld=bfd]: Set to
$ORIGINAL_LD_BFD_FOR_TARGET.
(original) [collect-ld && -fuse-ld=gold]: Set to
$ORIGINAL_LD_GOLD_FOR_TARGET.
(dir) [collect-ld && ../gold/ld-new]: Set to gold.
(fast_install) [collect-ld && ../gold/ld-new]: Set to yes.

From-SVN: r205392

10 years agoarm.c (require_pic_register): Handle high pic base register for thumb-1.
Terry Guo [Tue, 26 Nov 2013 11:58:37 +0000 (11:58 +0000)]
arm.c (require_pic_register): Handle high pic base register for thumb-1.

gcc/ChangeLog
2013-11-26  Terry Guo  <terry.guo@arm.com>

* config/arm/arm.c (require_pic_register): Handle high pic base
register for thumb-1.
(arm_load_pic_register): Also initialize high pic base register.
* doc/invoke.texi: Update documentation for option -mpic-register.

gcc/testsuite/ChangeLog
2013-11-26  Terry Guo  <terry.guo@arm.com>

* gcc.target/arm/thumb1-pic-high-reg.c: New case.
* gcc.target/arm/thumb1-pic-single-base.c: New case.

From-SVN: r205391

10 years agore PR target/58314 (SH4 error: 'asm' operand requires impossible reload)
Oleg Endo [Tue, 26 Nov 2013 11:48:16 +0000 (11:48 +0000)]
re PR target/58314 (SH4 error: 'asm' operand requires impossible reload)

PR target/58314
PR target/50751
* config/sh/sh.c (max_mov_insn_displacement, disp_addr_displacement):
Prefix function names with 'sh_'.  Make them non-static.
* config/sh/sh-protos.h (sh_disp_addr_displacement,
sh_max_mov_insn_displacement): Add declarations.
* config/sh/constraints.md (Q): Reject QImode.
(Sdd): Use match_code "mem".
(Snd): Fix erroneous matching of non-memory operands.
* config/sh/predicates.md (short_displacement_mem_operand): New
predicate.
(general_movsrc_operand): Disallow PC relative QImode loads.
* config/sh/sh.md (*mov<mode>_reg_reg): Remove it.
(*movqi, *movhi): Merge both insns into...
(*mov<mode>): ... this new insn.  Replace generic 'm' constraints with
'Snd' and 'Sdd' constraints.  Calculate insn length dynamically based
on the operand types.

From-SVN: r205390

10 years agore PR c++/58700 (ICE declaring static bit-field)
Paolo Carlini [Tue, 26 Nov 2013 11:31:46 +0000 (11:31 +0000)]
re PR c++/58700 (ICE declaring static bit-field)

/cp
2013-11-26  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/58700
* decl.c (grokdeclarator): Don't try to pass declarator->id_loc
to build_lang_decl_loc when declarator is null.

/testsuite
2013-11-26  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/58700
* g++.dg/parse/bitfield4.C: New.

From-SVN: r205389

10 years agoFix --enable-werror-always build errors:
Joern Rennecke [Tue, 26 Nov 2013 11:04:00 +0000 (11:04 +0000)]
Fix --enable-werror-always build errors:

        * config/epiphany/epiphany.c (epiphany_expand_prologue):
        Remove unused variable save_config.
        (epiphany_compute_frame_size): Avoid signed/unsigned comparison in
        assert.

From-SVN: r205388

10 years agocvt.c (cp_convert_and_check): Avoid calling cp_convert unnecessarily.
Paolo Carlini [Tue, 26 Nov 2013 10:12:30 +0000 (10:12 +0000)]
cvt.c (cp_convert_and_check): Avoid calling cp_convert unnecessarily.

2013-11-26  Paolo Carlini  <paolo.carlini@oracle.com>

* cvt.c (cp_convert_and_check): Avoid calling cp_convert
unnecessarily.

From-SVN: r205387

10 years ago[AArch64] [4/4 Fix vtbx1] Handle vtbx{1,3} emulation sequence using
James Greenhalgh [Tue, 26 Nov 2013 10:04:51 +0000 (10:04 +0000)]
[AArch64] [4/4 Fix vtbx1] Handle vtbx{1,3} emulation sequence using
 other intrinsics

gcc/
* config/aarch64/arm_neon.h (vtbx1_<psu>8): Emulate behaviour
using other intrinsics.
(vtbx3_<psu>8): Likewise.

From-SVN: r205386

10 years ago[AArch64] [3/4 Fix vtbx1]Implement bsl intrinsics using builtins
James Greenhalgh [Tue, 26 Nov 2013 10:03:14 +0000 (10:03 +0000)]
[AArch64] [3/4 Fix vtbx1]Implement bsl intrinsics using builtins

gcc/
* config/aarch64/aarch64-builtins.c
(aarch64_types_bsl_p_qualifiers): New.
(aarch64_types_bsl_s_qualifiers): Likewise.
(aarch64_types_bsl_u_qualifiers): Likewise.
(TYPES_BSL_P): Likewise.
(TYPES_BSL_S): Likewise.
(TYPES_BSL_U): Likewise.
(BUILTIN_VALLDIF): Likewise.
(BUILTIN_VDQQH): Likewise.
* config/aarch64/aarch64-simd-builtins.def (simd_bsl): New.
* config/aarch64/aarch64-simd.md
(aarch64_simd_bsl<mode>_internal): Handle more modes.
(aarch64_simd_bsl<mode>): Likewise.
* config/aarch64/arm_neon.h
(vbsl<q>_<fpsu><8,16,32,64): Implement using builtins.
* config/aarch64/iterators.md (VALLDIF): New.
(Vbtype): Handle more modes.

From-SVN: r205385

10 years ago[AArch64] [2/4 Fix vtbx1] Handle poly types in the new Simd types infrastructure
James Greenhalgh [Tue, 26 Nov 2013 10:00:49 +0000 (10:00 +0000)]
[AArch64] [2/4 Fix vtbx1] Handle poly types in the new Simd types infrastructure

gcc/
* config/aarch64/aarch64-builtins.c
(aarch64_type_qualifiers): Add qualifier_poly.
(aarch64_build_scalar_type): Also build Poly types.
(aarch64_build_vector_type): Likewise.
(aarch64_build_type): Likewise.
(aarch64_build_signed_type): New.
(aarch64_build_unsigned_type): Likewise.
(aarch64_build_poly_type): Likewise.
(aarch64_init_simd_builtins): Also handle Poly types.

From-SVN: r205384

10 years ago[AArch64] [1/4 Fix vtbx1] Allow signed and unsigned versions of intrinsics
James Greenhalgh [Tue, 26 Nov 2013 09:59:10 +0000 (09:59 +0000)]
[AArch64] [1/4 Fix vtbx1] Allow signed and unsigned versions of intrinsics
to coexist.

gcc/
* config/aarch64/aarch64-builtins.c
(VAR1): Use new naming scheme for aarch64_builtins.
(aarch64_builtin_vectorized_function): Use new
aarch64_builtins names.

From-SVN: r205383

10 years agore PR tree-optimization/59287 (points-to analysis confused by union accesses)
Richard Biener [Tue, 26 Nov 2013 09:04:44 +0000 (09:04 +0000)]
re PR tree-optimization/59287 (points-to analysis confused by union accesses)

2013-11-26  Richard Biener  <rguenther@suse.de>

PR tree-optimization/59287
* tree-ssa-structalias.c (get_constraint_for_component_ref):
Remove no longer necessary special-casing of union accesses.

* gcc.dg/tree-ssa/alias-29.c: New testcase.

From-SVN: r205380

10 years agopretty-print.c (output_buffer::~output_buffer): Really free the obstacks.
Richard Biener [Tue, 26 Nov 2013 08:45:18 +0000 (08:45 +0000)]
pretty-print.c (output_buffer::~output_buffer): Really free the obstacks.

2013-11-26  Richard Biener  <rguenther@suse.de>

* pretty-print.c (output_buffer::~output_buffer): Really
free the obstacks.

From-SVN: r205379

10 years agoDaily bump.
GCC Administrator [Tue, 26 Nov 2013 00:17:23 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r205372

10 years agosyscall: Set SizeofSockaddrAny to the value the go distribution uses
Ian Lance Taylor [Mon, 25 Nov 2013 22:54:05 +0000 (22:54 +0000)]
syscall: Set SizeofSockaddrAny to the value the go distribution uses

In particular this means that the names Getsockname returns are not
truncated to 26 characters.

Fixes issue 6829

https://codereview.appspot.com/31840043/

From-SVN: r205368

10 years agore PR c++/54485 (g++ should diagnose default arguments in out-of-line definitions...
Paolo Carlini [Mon, 25 Nov 2013 22:24:58 +0000 (22:24 +0000)]
re PR c++/54485 (g++ should diagnose default arguments in out-of-line definitions for template class member functions)

/cp
2013-11-25  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/54485
* decl.c (duplicate_decls): Enforce 8.3.6/6 about default arguments
for member functions of class templates.

/testsuite
2013-11-25  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/54485
* g++.dg/other/default8.C: New.
* g++.dg/tc1/dr217.C: Remove xfail.
* g++.dg/other/default5.C: Adjust.
* g++.old-deja/g++.mike/p1989.C: Likewise.

From-SVN: r205367

10 years agore PR c++/58607 ([c++11] ICE with undeclared variable in constexpr)
Paolo Carlini [Mon, 25 Nov 2013 20:51:56 +0000 (20:51 +0000)]
re PR c++/58607 ([c++11] ICE with undeclared variable in constexpr)

/cp
2013-11-25  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/58607
* semantics.c (check_constexpr_ctor_body): Check for BIND_EXPR_VARS.

/testsuite
2013-11-25  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/58607
* g++.dg/cpp0x/constexpr-ice9.C: New.

From-SVN: r205364

10 years agotree-ssa-threadupdate.c (thread_through_all_blocks): Selectively invalidate loop...
Jeff Law [Mon, 25 Nov 2013 18:24:57 +0000 (11:24 -0700)]
tree-ssa-threadupdate.c (thread_through_all_blocks): Selectively invalidate loop information.

* tree-ssa-threadupdate.c (thread_through_all_blocks): Selectively
invalidate loop information.

From-SVN: r205361

10 years agocrt1.S (start): Don't do VBR_SETUP for SH2E.
Oleg Endo [Mon, 25 Nov 2013 17:11:50 +0000 (17:11 +0000)]
crt1.S (start): Don't do VBR_SETUP for SH2E.

* config/sh/crt1.S (start): Don't do VBR_SETUP for SH2E.

From-SVN: r205360

10 years agosh.md (doloop_end_split): Add missing SI mode.
Oleg Endo [Mon, 25 Nov 2013 17:04:17 +0000 (17:04 +0000)]
sh.md (doloop_end_split): Add missing SI mode.

* config/sh/sh.md (doloop_end_split): Add missing SI mode.

From-SVN: r205359

10 years agore PR target/53976 ([SH] Unnecessary clrt/sett after bt/bf)
Oleg Endo [Mon, 25 Nov 2013 16:47:16 +0000 (16:47 +0000)]
re PR target/53976 ([SH] Unnecessary clrt/sett after bt/bf)

PR target/53976
PR target/59243
* config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value): Update
comments.
(sh_optimize_sett_clrt::find_last_ccreg_values): Check stack of
previously visited basic blocks before recursing instead of only one
basic block.

From-SVN: r205358

10 years agoRemove GCC_LIBSTDCXX_RAW_CXX_FLAGS
Rainer Orth [Mon, 25 Nov 2013 16:32:22 +0000 (16:32 +0000)]
Remove GCC_LIBSTDCXX_RAW_CXX_FLAGS

* configure.ac (GCC_LIBSTDCXX_RAW_CXX_FLAGS): Remove.
* configure: Regenerate.

From-SVN: r205357

10 years agore PR c++/58810 (ICE with invalid function typedef)
Paolo Carlini [Mon, 25 Nov 2013 16:10:29 +0000 (16:10 +0000)]
re PR c++/58810 (ICE with invalid function typedef)

/cp
2013-11-25  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/58810
* decl.c (grokdeclarator): Don't handle qualified free functions here,
leave the diagnostic to grokfndecl.

/testsuite
2013-11-25  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/58810
* g++.dg/other/cv_func3.C: New.
* g++.dg/other/cv_func.C: Adjust.
* g++.dg/parse/fn-typedef2.C: Likewise.

From-SVN: r205356

10 years agoSuppress some warnings for soft-fp files
Rainer Orth [Mon, 25 Nov 2013 16:02:12 +0000 (16:02 +0000)]
Suppress some warnings for soft-fp files

* config/t-softfp (soft-fp-objects-base): New variable.
(soft-fp-objects): Use it.

From-SVN: r205355

10 years agoaarch64.c (cortexa53_tuning): New struct.
Kyrylo Tkachov [Mon, 25 Nov 2013 15:26:04 +0000 (15:26 +0000)]
aarch64.c (cortexa53_tuning): New struct.

* config/aarch64/aarch64.c (cortexa53_tuning): New struct.
* config/aarch64/aarch64-cores.def (cortex-a53):
Use cortexa53 tuning struct.

From-SVN: r205354

10 years agore PR bootstrap/59260 (fold-const.c:14871:5: error: 'hash_table' has not been declared)
Andrew MacLeod [Mon, 25 Nov 2013 13:23:09 +0000 (13:23 +0000)]
re PR bootstrap/59260 (fold-const.c:14871:5: error: 'hash_table' has not been declared)

PR bootstrap/59260
* fold-const.c: Include hash-table.h.

From-SVN: r205352

10 years agopr59250.C: New test.
Marek Polacek [Mon, 25 Nov 2013 11:17:23 +0000 (11:17 +0000)]
pr59250.C: New test.

2013-11-25  Marek Polacek  <polacek@redhat.com>

testsuite/
* g++.dg/ubsan/pr59250.C: New test.

From-SVN: r205349

10 years agoFix up CL.
Marek Polacek [Mon, 25 Nov 2013 11:15:08 +0000 (11:15 +0000)]
Fix up CL.

From-SVN: r205348

10 years agoubsan.c (ubsan_create_data): Increase the size of the fields array.
Marek Polacek [Mon, 25 Nov 2013 10:46:20 +0000 (10:46 +0000)]
ubsan.c (ubsan_create_data): Increase the size of the fields array.

2013-11-25  Marek Polacek  <polacek@redhat.com>

* ubsan.c (ubsan_create_data): Increase the size of the fields array.

From-SVN: r205347

10 years agotree-dfa.c: Remove unused convert.h include.
Richard Biener [Mon, 25 Nov 2013 09:58:03 +0000 (09:58 +0000)]
tree-dfa.c: Remove unused convert.h include.

2013-11-25  Richard Biener  <rguenther@suse.de>

* tree-dfa.c: Remove unused convert.h include.

From-SVN: r205346

10 years agore PR fortran/59143 ([OOP] Bogus warning with array-valued type-bound procedure)
Janus Weil [Mon, 25 Nov 2013 09:45:40 +0000 (10:45 +0100)]
re PR fortran/59143 ([OOP] Bogus warning with array-valued type-bound procedure)

2013-11-25  Janus Weil  <janus@gcc.gnu.org>

PR fortran/59143
* interface.c (get_expr_storage_size): Handle array-valued type-bound
procedures.

2013-11-25  Janus Weil  <janus@gcc.gnu.org>

PR fortran/59143
* gfortran.dg/typebound_proc_30.f90: New.

From-SVN: r205345

10 years agore PR c++/59080 ([c++11] ICE with array of auto)
Paolo Carlini [Mon, 25 Nov 2013 09:29:18 +0000 (09:29 +0000)]
re PR c++/59080 ([c++11] ICE with array of auto)

/cp
2013-11-25  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/59080
* pt.c (unify): Don't call unify_array_domain with a NULL_TREE
third argument.

PR c++/59096
* pt.c (apply_late_template_attributes): Check that TREE_VALUE
isn't NULL_TREE in the attribute_takes_identifier_p case.

/testsuite
2013-11-25  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/59080
* g++.dg/cpp0x/initlist75.C: New.

PR c++/59096
* g++.dg/cpp0x/gen-attrs-57.C: New.

From-SVN: r205344

10 years agoDisallow implicit function templates in local functions unless defining a lambda.
Adam Butcher [Mon, 25 Nov 2013 07:43:55 +0000 (07:43 +0000)]
Disallow implicit function templates in local functions unless defining a lambda.

gcc/cp/
PR c++/59112
PR c++/59113
* parser.c (cp_parser_parameter_declaration_clause): Disallow implicit
function templates in local functions unless defining a lambda.

gcc/testsuite/
PR c++/59112
PR c++/59113
g++.dg/cpp1y/pr58533.C: Updated testcase.
g++.dg/cpp1y/pr59112.C: New testcase.
g++.dg/cpp1y/pr59113.C: New testcase.

From-SVN: r205343

10 years agoinvoke.texi (-mslow-flash-data): Document new option.
Terry Guo [Mon, 25 Nov 2013 06:41:20 +0000 (06:41 +0000)]
invoke.texi (-mslow-flash-data): Document new option.

gcc/ChangeLog
2013-11-25  Terry Guo  <terry.guo@arm.com>

* doc/invoke.texi (-mslow-flash-data): Document new option.
* config/arm/arm.opt (mslow-flash-data): New option.
* config/arm/arm-protos.h (arm_max_const_double_inline_cost): Declare
it.
* config/arm/arm.h (TARGET_USE_MOVT): Always true when literal pools
are disabled.
(arm_disable_literal_pool): Declare it.
* config/arm/arm.c (arm_disable_literal_pool): New variable.
(arm_option_override): Handle new option.
(thumb2_legitimate_address_p): Don't allow symbol references when
literal pools are disabled.
(arm_max_const_double_inline_cost): New function.
* config/arm/arm.md (types.md): Include it before ...
(use_literal_pool): New attribute.
(enabled): Use new attribute.
(split pattern): Replace symbol+offset with MOVW/MOVT.

gcc/testsuite/ChangeLog
2013-11-25  Terry Guo  <terry.guo@arm.com>

* gcc.target/arm/thumb2-slow-flash-data.c: New.

From-SVN: r205342

10 years agoDaily bump.
GCC Administrator [Mon, 25 Nov 2013 00:16:58 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r205341

10 years agore PR bootstrap/59279 (r205337 breaks bootstrap with java)
Steven Bosscher [Sun, 24 Nov 2013 21:59:49 +0000 (21:59 +0000)]
re PR bootstrap/59279 (r205337 breaks bootstrap with java)

PR bootstrap/59279
Revert previous commit.

From-SVN: r205338

10 years agojump.c (reset_insn_reg_label_operand_notes): New function, split out from ...
Steven Bosscher [Sun, 24 Nov 2013 19:15:36 +0000 (19:15 +0000)]
jump.c (reset_insn_reg_label_operand_notes): New function, split out from ...

* jump.c (reset_insn_reg_label_operand_notes): New function,
split out from ...
(init_label_info): ... here.  Reset LABEL_NUSES in cfglayout mode.
* cfgcleanup.c (delete_dead_jump_tables_between): New function,
split out from ...
(delete_dead_jumptables): ... here.  Handle cfglayout mode.
(cleanup_cfg): Delete dead jump tables in cfglayout mode if an
expensive CFG cleanup is called for.
* cfgrtl.c (fixup_reorder_chain): Remove BARRIERs from fallthru paths.
(cfg_layout_finalize): Delete dead jump tables before re-building
the insns chain.
* ira.c (ira): Rebuild jump labels *after* deleting unreachable
basic blocks, not before.
* loop-init.c (rtl_loop_done): Call for an expensive CFG cleanup.

* modulo-sched.c (sms_schedule): Do not look for BARRIERs in the
insns chain of a scheduling extended basic block, they cannot appear
there in cfglayout mode.

From-SVN: r205337

10 years agoinvoke.texi (-fsanitize=leak): Add link to the wiki page.
Tobias Burnus [Sun, 24 Nov 2013 16:02:10 +0000 (17:02 +0100)]
invoke.texi (-fsanitize=leak): Add link to the wiki page.

2013-11-24  Tobias Burnus  <burnus@net-b.de>

        * doc/invoke.texi (-fsanitize=leak): Add link to the wiki page.

From-SVN: r205336

10 years agoscanner.c (gfc_open_intrinsic_module): Remove function.
Francois-Xavier Coudert [Sun, 24 Nov 2013 14:43:20 +0000 (14:43 +0000)]
scanner.c (gfc_open_intrinsic_module): Remove function.

* scanner.c (gfc_open_intrinsic_module): Remove function.
* gfortran.h (gfc_open_intrinsic_module): Remove prototype.

From-SVN: r205335

10 years agors6000.c (rs6000_expand_vec_perm_const_1): Correct for little endian.
Bill Schmidt [Sun, 24 Nov 2013 14:23:54 +0000 (14:23 +0000)]
rs6000.c (rs6000_expand_vec_perm_const_1): Correct for little endian.

2013-11-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Correct
for little endian.

From-SVN: r205333

10 years agoDon't include extra "expr.h" in graphite-sese-to-poly.c
H.J. Lu [Sun, 24 Nov 2013 13:56:32 +0000 (13:56 +0000)]
Don't include extra "expr.h" in graphite-sese-to-poly.c

* graphite-sese-to-poly.c: Don't include extra "expr.h".

From-SVN: r205332

10 years ago* testsuite/ChangeLog: Fix ChangeLog entry.
Uros Bizjak [Sun, 24 Nov 2013 12:50:47 +0000 (13:50 +0100)]
* testsuite/ChangeLog: Fix ChangeLog entry.

From-SVN: r205325

10 years agofloat-exact-1.c: Use dg-add-options ieee.
Uros Bizjak [Sun, 24 Nov 2013 10:11:15 +0000 (11:11 +0100)]
float-exact-1.c: Use dg-add-options ieee.

* gcc.dg/float-exact-1.c: Use dg-add-options ieee.
[LDBL_MANT_DIG == 113]: Fix wrong variable name.

From-SVN: r205324

10 years agosyscall: Only call varargs libc functions from C code.
Ian Lance Taylor [Sun, 24 Nov 2013 02:38:28 +0000 (02:38 +0000)]
syscall: Only call varargs libc functions from C code.

From-SVN: r205321

10 years agoDaily bump.
GCC Administrator [Sun, 24 Nov 2013 00:16:51 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r205320

10 years agore PR c++/59031 (vtable lookup not optimized away)
Easwaran Raman [Sat, 23 Nov 2013 21:01:46 +0000 (21:01 +0000)]
re PR c++/59031 (vtable lookup not optimized away)

PR c++/59031
* call.c (build_new_method_call_1): Comnpare function context
with BASELINK_BINFO type rather than instance type before
marking the call with LOOKUP_NONVIRTUAL.

From-SVN: r205317

10 years agocompiler: Fix backend representation of calls to interface methods.
Ian Lance Taylor [Sat, 23 Nov 2013 19:01:57 +0000 (19:01 +0000)]
compiler: Fix backend representation of calls to interface methods.

Also unify all identical result parameter sets into a single
struct type, and fix the use of backend function pointers.

* go-gcc.cc (Gcc_backend::function_type): Add result_struct
parameter.

From-SVN: r205316

10 years ago* cilk-common.c (expand_builtin_cilk_detach): Dereference worker.
Eric Botcazou [Sat, 23 Nov 2013 16:44:02 +0000 (16:44 +0000)]
* cilk-common.c (expand_builtin_cilk_detach): Dereference worker.

From-SVN: r205313

10 years agore PR c++/58868 (ICE: in count_type_elements, at expr.c:5495 with -std=gnu++0x)
Jason Merrill [Sat, 23 Nov 2013 16:28:57 +0000 (11:28 -0500)]
re PR c++/58868 (ICE: in count_type_elements, at expr.c:5495 with -std=gnu++0x)

PR c++/58868
* init.c (build_aggr_init): Don't clobber the type of init
if we got an INIT_EXPR back from build_vec_init.
(build_vec_init): Do digest_init on trivial initialization.

From-SVN: r205311

10 years agore PR c++/58525 (__cxa_throw_bad_array_new_length is generated with -fno-exceptions)
Alexander Ivchenko [Sat, 23 Nov 2013 16:28:42 +0000 (16:28 +0000)]
re PR c++/58525 (__cxa_throw_bad_array_new_length is generated with -fno-exceptions)

PR c++/58525
* call.c (build_operator_new_call): Add flag_exceptions check.
* decl.c (compute_array_index_type): Ditto.
* init.c (build_new_1): Ditto.
(build_vec_init): Ditto.

From-SVN: r205310

10 years agore PR target/33704 (AIX runs c++ constructors in incorrect order)
David Edelsohn [Sat, 23 Nov 2013 15:38:07 +0000 (10:38 -0500)]
re PR target/33704 (AIX runs c++ constructors in incorrect order)

libgcc:

PR target/33704
        * config/rs6000/aixinitfini.c: New file.
        * config/rs6000/t-aix-cxa (LIB2ADD_ST): Add aixinitfini.c.
        * config/rs6000/libgcc-aix-cxa.ver (GCC_4.9): Add libgcc initfini
        symbols.

gcc:

PR target/33704
        * config/rs6000/aix.h (COLLECT_SHARED_INIT_FUNC): Define.
        (COLLECT_SHARED_FINI_FUNC): Define.

        * collect2.c (aix_shared_initname): Declare.
        (aix_shared_fininame): Declare.
        (symkind): Add SYM_AIXI and SYM_AIXD.
        (scanfilter_masks): Add SCAN_AIXI and SCAN_AIXD.
        (struct names special): Add GLOBAL__AIXI_ and GLOBAL__AIXD_.
        (aixlazy_flag): Parse.
        (extract_init_priority): SYM_AIXI and SYM_AIXD have highest priority.
        (scan_prog_file, COFF): Handle SYM_AIXI and SYM_AIXD.

Co-Authored-By: Andrew Dixie <andrewd@gentrack.com>
From-SVN: r205309

10 years agors6000.c (IN_NAMED_SECTION): New macro.
David Edelsohn [Sat, 23 Nov 2013 15:25:09 +0000 (15:25 +0000)]
rs6000.c (IN_NAMED_SECTION): New macro.

* config/rs6000/rs6000.c (IN_NAMED_SECTION): New macro.
(rs6000_xcoff_select_section): Place decls with stricter alignment
into named sections.
(rs6000_xcoff_unique_section): Allow unique sections for
uninitialized data with strict alignment.

From-SVN: r205308

10 years agore PR tree-optimization/59154 (internal compiler error: tree check: expected ssa_name...
Jakub Jelinek [Sat, 23 Nov 2013 14:21:46 +0000 (15:21 +0100)]
re PR tree-optimization/59154 (internal compiler error: tree check: expected ssa_name, have integer_cst)

PR tree-optimization/59154
* tree-ssa-reassoc.c (maybe_optimize_range_tests): When changing
rhs1 of a cast and new_op is invariant, fold_convert it.
* tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Only call
simplify_conversion_from_bitmask if rhs1 is a SSA_NAME.

From-SVN: r205307

10 years agore PR target/56788 (_mm_frcz_sd and _mm_frcz_ss ignore their second argument)
Uros Bizjak [Sat, 23 Nov 2013 13:24:19 +0000 (14:24 +0100)]
re PR target/56788 (_mm_frcz_sd and _mm_frcz_ss ignore their second argument)

PR target/56788
* config/i386/i386.c (bdesc_multi_arg) <IX86_BUILTIN_VFRCZSS>:
Declare as MULTI_ARG_1_SF instruction.
<IX86_BUILTIN_VFRCZSD>: Decleare as MULTI_ARG_1_DF instruction.
* config/i386/sse.md (*xop_vmfrcz<mode>2): Rename
from *xop_vmfrcz_<mode>.
* config/i386/xopintrin.h (_mm_frcz_ss): Use __builtin_ia32_movss
to merge scalar result with __A.
(_mm_frcz_sd): Use __builtin_ia32_movsd to merge scalar
result with __A.

From-SVN: r205306

10 years agogimplify.h (recalculate_side_effects): Delete.
Eric Botcazou [Sat, 23 Nov 2013 10:23:02 +0000 (10:23 +0000)]
gimplify.h (recalculate_side_effects): Delete.

* gimplify.h (recalculate_side_effects): Delete.
* gimplify.c (recalculate_side_effects): Make static and add comment.
ada/
* gcc-interface/trans.c (Loop_Statement_to_gnu): Set TREE_SIDE_EFFECTS
on the conditional expression directly.

From-SVN: r205305

10 years agore PR fortran/59228 (ICE-on-invalid with assumed type and ASYNCHRONOUS)
Janus Weil [Sat, 23 Nov 2013 09:14:11 +0000 (10:14 +0100)]
re PR fortran/59228 (ICE-on-invalid with assumed type and ASYNCHRONOUS)

2013-11-23  Janus Weil  <janus@gcc.gnu.org>

PR fortran/59228
* interface.c (compare_parameter): Check for array spec.

2013-11-23  Janus Weil  <janus@gcc.gnu.org>

PR fortran/59228
* gfortran.dg/asynchronous_4.f90: New.

From-SVN: r205304

10 years agosh.md: Use nonimmediate_operand rather than general_operand for the destination of...
Richard Sandiford [Sat, 23 Nov 2013 09:07:19 +0000 (09:07 +0000)]
sh.md: Use nonimmediate_operand rather than general_operand for the destination of a...

gcc/
* config/sh/sh.md: Use nonimmediate_operand rather than general_operand
for the destination of a define_peephole2.  Likewise register_operand
rather than arith_reg_operand.  Remove constraints from
define_peephole2s.

From-SVN: r205303

10 years agomn10300-protos.h (mn10300_store_multiple_operation): Delete.
Richard Sandiford [Sat, 23 Nov 2013 09:07:01 +0000 (09:07 +0000)]
mn10300-protos.h (mn10300_store_multiple_operation): Delete.

gcc/
* config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation):
Delete.
(mn10300_store_multiple_operation_p): Declare.
* config/mn10300/mn10300.c (mn10300_store_multiple_operation):
Rename to...
(mn10300_store_multiple_operation_p): ...this and remove mode
argument.
* config/mn10300/predicates.md (mn10300_store_multiple_operation):
Define.

From-SVN: r205302

10 years agobfin-protos.h (push_multiple_operation): Delete.
Richard Sandiford [Sat, 23 Nov 2013 09:06:42 +0000 (09:06 +0000)]
bfin-protos.h (push_multiple_operation): Delete.

gcc/
* config/bfin/bfin-protos.h (push_multiple_operation): Delete.
(pop_multiple_operation): Delete.
(analyze_push_multiple_operation): Declare.
(analyze_pop_multiple_operation): Declare.
* config/bfin/bfin.c (push_multiple_operation): Rename to...
(analyze_push_multiple_operation): ...this and remove mode argument.
(pop_multiple_operation): Rename to...
(analyze_pop_multiple_operation): ...this and remove mode argument.
* config/bfin/predicates.md (push_multiple_operation): Define.
(pop_multiple_operation): Likewise.

From-SVN: r205301

10 years agovsx.md (fusion peepholes): Disable when !TARGET_VSX.
Alan Modra [Sat, 23 Nov 2013 05:35:18 +0000 (16:05 +1030)]
vsx.md (fusion peepholes): Disable when !TARGET_VSX.

* config/rs6000/vsx.md (fusion peepholes): Disable when !TARGET_VSX.

From-SVN: r205299

10 years agoDaily bump.
GCC Administrator [Sat, 23 Nov 2013 00:17:10 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r205297

10 years agoFix demangler to handle conversion operators correctly.
Cary Coutant [Fri, 22 Nov 2013 22:25:49 +0000 (22:25 +0000)]
Fix demangler to handle conversion operators correctly.

libiberty/
PR other/59195
* cp-demangle.c (struct d_info_checkpoint): New struct.
(struct d_print_info): Add current_template field.
(d_operator_name): Set flag when processing a conversion
operator.
(cplus_demangle_type): When processing <template-args> for
a conversion operator, backtrack if necessary.
(d_expression_1): Renamed from d_expression.
(d_expression): New wrapper around d_expression_1.
(d_checkpoint): New function.
(d_backtrack): New function.
(d_print_init): Initialize current_template.
(d_print_comp): Set current_template.
(d_print_cast): Put current_template in scope for
printing conversion operator name.
(cplus_demangle_init_info): Initialize is_expression and
is_conversion.
* cp-demangle.h (struct d_info): Add is_expression and
is_conversion fields.
* testsuite/demangle-expected: New test cases.

From-SVN: r205292

10 years agore PR sanitizer/59061 (Port leaksanitizer)
Jakub Jelinek [Fri, 22 Nov 2013 21:13:08 +0000 (22:13 +0100)]
re PR sanitizer/59061 (Port leaksanitizer)

PR sanitizer/59061
* common.opt (static-liblsan): Add.
* config/gnu-user.h (STATIC_LIBLSAN_LIBS, STATIC_LIBUBSAN_LIBS):
Define.
* flag-types.h (enum sanitize_code): Add SANITIZE_LEAK.  Renumber
SANITIZE_SHIFT, SANITIZE_DIVIDE, SANITIZE_UNREACHABLE, SANITIZE_VLA,
SANITIZE_RETURN.
* opts.c (common_handle_option): Handle -fsanitize=leak.
* gcc.c (ADD_STATIC_LIBLSAN_LIBS, LIBLSAN_SPEC): Define.
(LIBUBSAN_SPEC): Don't test LIBUBSAN_EARLY_SPEC.
(LIBUBSAN_EARLY_SPEC): Remove.
(SANITIZER_EARLY_SPEC): Don't do anything for libubsan.
(SANITIZER_SPEC): Add -fsanitize=leak handling.
(sanitize_spec_function): Handle %sanitize(leak).
* doc/invoke.texi (-static-liblsan, -fsanitize=leak): Document.

* c-c++-common/asan/no-redundant-instrumentation-7.c: Fix
cleanup-tree-dump directive.

* configure.tgt: Set LSAN_SUPPORTED=yes for x86_64-linux.
* configure.ac (LSAN_SUPPORTED): New AM_CONDITIONAL.
* configure: Regenerated.
* lsan/Makefile.am (toolexeclib_LTLIBRARIES, lsan_files,
liblsan_la_SOURCES, liblsan_la_LIBADD, liblsan_la_LDFLAGS): Add.
* lsan/Makefile.in: Regenerated.

From-SVN: r205290

10 years agosafe_local_iterator.h (_Safe_local_iterator<>): Remove _M_bucket, use same informatio...
François Dumont [Fri, 22 Nov 2013 20:55:53 +0000 (20:55 +0000)]
safe_local_iterator.h (_Safe_local_iterator<>): Remove _M_bucket, use same information in normal local_iterator.

2013-11-22  François Dumont  <fdumont@gcc.gnu.org>

* include/debug/safe_local_iterator.h (_Safe_local_iterator<>):
Remove _M_bucket, use same information in normal local_iterator.
(operator==): Remove redundant _M_can_compare check.
* include/debug/safe_local_iterator.tcc: Adapt.
* include/debug/unordered_set: Likewise.
* include/debug/unordered_map: Likewise.

From-SVN: r205289

10 years ago20081223-1.c: Add -ffat-lto-objects.
Jan Hubicka [Fri, 22 Nov 2013 20:48:07 +0000 (21:48 +0100)]
20081223-1.c: Add -ffat-lto-objects.

* gcc.dg/20081223-1.c: Add -ffat-lto-objects.
* gcc.dg/vect/vect.exp: Add -ffat-lto-objects.

From-SVN: r205288

10 years agolibgo: Update libtool support for powerpc64le-linux-gnu.
Ian Lance Taylor [Fri, 22 Nov 2013 20:39:46 +0000 (20:39 +0000)]
libgo: Update libtool support for powerpc64le-linux-gnu.

From Ulrich Weigand.

From-SVN: r205287

10 years agoMakefile.am (check_DEJAGNU_normal_targets): Add 10.
Jakub Jelinek [Fri, 22 Nov 2013 20:38:59 +0000 (21:38 +0100)]
Makefile.am (check_DEJAGNU_normal_targets): Add 10.

* testsuite/Makefile.am (check_DEJAGNU_normal_targets): Add 10.
(check-DEJAGNU): Add normal10, run 28_regex/[ab]*
tests as another separate job.
* testsuite/Makefile.in: Regenerated.

From-SVN: r205286

10 years agosanitizer_linux.cc (__sanitizer): Grab one change from upstream to fix build.
Mike Stump [Fri, 22 Nov 2013 20:33:06 +0000 (20:33 +0000)]
sanitizer_linux.cc (__sanitizer): Grab one change from upstream to fix build.

        * sanitizer_common/sanitizer_linux.cc (__sanitizer): Grab one
        change from upstream to fix build.

From-SVN: r205285

10 years agoipa.c (symtab_remove_unreachable_nodes): Fix up comment typos.
Aldy Hernandez [Fri, 22 Nov 2013 20:08:44 +0000 (20:08 +0000)]
ipa.c (symtab_remove_unreachable_nodes): Fix up comment typos.

* ipa.c (symtab_remove_unreachable_nodes): Fix up comment typos.
* ipa-prop.c (get_vector_of_formal_parm_types): Renamed to ...
(ipa_get_vector_of_formal_parm_types): ... this.  No longer static.
(ipa_modify_formal_parameters): Adjust caller.  Remove
synth_parm_prefix argument.  Use operator enum instead of bit fields.
Add assert for properly handling vector of references.  Handle
creating brand new parameters.
(ipa_modify_call_arguments): Use operator enum instead of bit
fields.
(ipa_combine_adjustments): Same.  Assert that IPA_PARM_OP_NEW is not
used.
(ipa_modify_expr, get_ssa_base_param, ipa_get_adjustment_candidate):
New functions.
(ipa_dump_param_adjustments): Rename reduction to new_decl.
Use operator enum instead of bit fields.
* ipa-prop.h (enum ipa_parm_op): New.
(struct ipa_parm_adjustment): New field op.  Rename reduction
to new_decl, new_arg_prefix to arg_prefix and remove remove_param
and copy_param.
(ipa_modify_formal_parameters): Remove last argument.
(ipa_get_vector_of_formal_parm_types, ipa_modify_expr,
ipa_get_adjustment_candidate): New prototypes.
* tree-sra.c (turn_representatives_into_adjustments): Use operator
enum.  Set arg_prefix.
(get_adjustment_for_base): Use operator enum.
(sra_ipa_modify_expr): Rename to ipa_modify_expr and move to
ipa-prop.c.
(sra_ipa_modify_assign): Rename sra_ipa_modify_expr to
ipa_modify_expr.
(ipa_sra_modify_function_body): Same.  No longer static.
(sra_ipa_reset_debug_stmts): Use operator enum.
(modify_function): Do not pass prefix argument.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r205284

10 years agoubsan.c (ubsan_source_location): Don't crash on unknown locations.
Jakub Jelinek [Fri, 22 Nov 2013 20:07:31 +0000 (21:07 +0100)]
ubsan.c (ubsan_source_location): Don't crash on unknown locations.

* ubsan.c (ubsan_source_location): Don't crash on
unknown locations.
(ubsan_pass): Ignore clobber stmts.

* sanitizer.def (BUILT_IN_UBSAN_HANDLE_MISSING_RETURN): New built-in.
* opts.c (common_handle_option): Add -fsanitize=return.
* flag-types.h (enum sanitize_code): Add SANITIZE_RETURN and
or it into SANITIZE_UNDEFINED.
c-family/
* c-ubsan.h (ubsan_instrument_return): New prototype.
* c-ubsan.c (ubsan_instrument_return): New function.
cp/
* cp-gimplify.c: Include target.h and c-family/c-ubsan.h.
(cp_ubsan_maybe_instrument_return): New function.
(cp_genericize): Call it if -fsanitize=return.
testsuite/
* g++.dg/ubsan/return-1.C: New test.
* g++.dg/ubsan/return-2.C: New test.

From-SVN: r205283

10 years agosanitizer.def (BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT, [...]): New.
Jakub Jelinek [Fri, 22 Nov 2013 20:04:45 +0000 (21:04 +0100)]
sanitizer.def (BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT, [...]): New.

* sanitizer.def (BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT,
BUILT_IN_ASAN_AFTER_DYNAMIC_INIT): New.
* asan.c (instrument_derefs): Handle also VAR_DECL loads/stores.
Don't instrument accesses to VAR_DECLs which are known to fit
into their bounds and the vars are known to have shadow bytes
indicating allowed access.
(asan_dynamic_init_call): New function.
(asan_add_global): If vnode->dynamically_initialized,
set __has_dynamic_init to 1 instead of 0.
(initialize_sanitizer_builtins): Add BT_FN_VOID_CONST_PTR var.
* asan.h (asan_dynamic_init_call): New prototype.
* cgraph.h (varpool_node): Add dynamically_initialized bitfield.
cp/
* decl2.c: Include asan.h.
(one_static_initialization_or_destruction): If -fsanitize=address,
init is non-NULL and guard is NULL, set
vnode->dynamically_initialized.
(do_static_initialization_or_destruction): Call
__asan_{before,after}_dynamic_init around the static initialization.
testsuite/
* c-c++-common/asan/no-redundant-instrumentation-1.c: Tweak to avoid
optimizing away some __asan_report* calls.

From-SVN: r205282

10 years agore PR rtl-optimization/10474 (shrink wrapping for functions)
Martin Jambor [Fri, 22 Nov 2013 19:37:00 +0000 (20:37 +0100)]
re PR rtl-optimization/10474 (shrink wrapping for functions)

PR rtl-optimization/10474
* ira.c (interesting_dest_for_shprep_1): New function.
(interesting_dest_for_shprep): Use interesting_dest_for_shprep_1,
also check parallels.

testsuite/
* gcc.dg/pr10474.c: Also test ppc64.
* gcc.dg/ira-shrinkwrap-prep-1.c: Also tes ppc64, changed all ints
        to longs.
* gcc.dg/ira-shrinkwrap-prep-2.c: Likewise.

From-SVN: r205281

10 years agotree-ssa-threadedge.c (record_temporary_equivalence): Handle NULL for RHS, which...
Jeff Law [Fri, 22 Nov 2013 18:52:23 +0000 (11:52 -0700)]
tree-ssa-threadedge.c (record_temporary_equivalence): Handle NULL for RHS, which we used to invalidate equivalences.

* tree-ssa-threadedge.c (record_temporary_equivalence): Handle
NULL for RHS, which we used to invalidate equivalences.
(record_temporary_equivalences_from_phis): New bitmap arguments
and a boolean indicating if we have passed a backedge.  If we
have passed a backedge, then set the appropriate bit in the
bitmaps for the SRC & DEST of PHIs creating equivalences.
(invalidate_equivalences, dummy_simplify): New functions.
(cond_arg_set_in_b): Remove.
(record_temporary_equivalences_from_stmts_at_dest): New bitmap
arguments and a boolean indicating if we have passed a backedge.
If we have passed a backedge, then perform invalidations as
needed.
(thread_around_empty_blocks): If we have seen a backedge, then
use the dummy simplify routine.
(thread_through_normal_block): Likewise.  Pass bitmaps and
backedge status to children.  Do not pessimize so much when
traversing backedges in the CFG.
(thread_across_edge): Manage the SRC_MAP/DST_MAP bitmaps.
If we have seen a backedge, then use the dummy simplify routine.
Do not pessimize so much when traversing backedges.

From-SVN: r205279