platform/upstream/gcc.git
7 years agolibgomp hsa plugin: debug output for HSA runtime library loading failure
Thomas Schwinge [Fri, 19 May 2017 13:32:04 +0000 (15:32 +0200)]
libgomp hsa plugin: debug output for HSA runtime library loading failure

libgomp/
* plugin/plugin-hsa.c (DLSYM_FN, init_hsa_runtime_functions):
Debug output for failure.

From-SVN: r248277

7 years agoEnable by default -Werror just for bootstrap-debug.mk and default build.
Martin Liska [Fri, 19 May 2017 13:31:01 +0000 (15:31 +0200)]
Enable by default -Werror just for bootstrap-debug.mk and default build.

2017-05-19  Martin Liska  <mliska@suse.cz>

* configure.ac: Add --enable-werror-always just for
bootstrap-debug (or none build config) and do not add it
when we are on a release branch.
* configure: Regenerated.

From-SVN: r248276

7 years agotoplev.c (general_init): Call register dump lang hook.
Nathan Sidwell [Fri, 19 May 2017 13:10:36 +0000 (13:10 +0000)]
toplev.c (general_init): Call register dump lang hook.

LANG_HOOK_REGISTER_DUMPS
gcc/
* toplev.c (general_init): Call register dump lang hook.
* doc/invoke.texi: Document -fdump-lang option family.
* dumpfile.c (dump_files): Remove class dump here.
(FIRST_AUTO_NUMBERED_DUMP): Adjust.
* dumpfile.h (tree_dump_index): Remove TDI_class.
* langhooks-def.h (lhd_register_dumps): Declare.
(LANG_HOOKS_REGISTER_DUMPS): Define.
(LANG_HOOKS_INITIALIZER): Add it.
* langhooks.c (lhd_register_dumps): Define.
* langhooks.h (struct lang_hooks): Add register_dumps.
c-family/
* c-opts.c (class_dump_file, class_dump_flags): Delete.
(c_common_parse_file): Remove class dump handling.
(get_dump_info): Likewise.
cp/
* class.c (class_dump_id): Define.
(dump_class_hierarchy, dump_vtable, dump_vtt): Use it.
* cp-objcp-common.c (cp_register_dumps): New.
* cp-objcp-common.h (cp_register_dumps): Declare.
(LANG_HOOKS_REGISTER_DUMPS): Override.
* cp-tree.h (class_dump_id): Declare.
testsuite/
* g++.dg/inherit/covariant7.C: Adjust.

From-SVN: r248271

7 years ago[ARM] Only test tls-disable-literal-pool.c if target supports native TLS
Prakhar Bahuguna [Fri, 19 May 2017 13:04:27 +0000 (13:04 +0000)]
[ARM] Only test tls-disable-literal-pool.c if target supports native TLS

2017-05-19  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>

    gcc/testsuite/
    * gcc.target/arm/tls-disable-literal-pool.c: Change
    require-effective-target to tls_native.
    Move dg-error to return statement line and change to dg-message.

From-SVN: r248270

7 years agore PR c++/80593 (GCC 7, aligned_storage and “dereferencing type-punned pointer will...
Richard Biener [Fri, 19 May 2017 12:34:54 +0000 (12:34 +0000)]
re PR c++/80593 (GCC 7, aligned_storage and “dereferencing type-punned pointer will break strict-aliasing rules”)

2017-05-19  Richard Biener  <rguenther@suse.de>

PR c++/80593
* c-warn.c (strict_aliasing_warning): Do not warn for accesses
to alias-set zero memory.

* g++.dg/warn/Wstrict-aliasing-bogus-char-2.C: New testcase.
* g++.dg/warn/Wstrict-aliasing-6.C: Adjust expected outcome.

From-SVN: r248269

7 years agocontext.h (context::set_passes): New.
Nathan Sidwell [Fri, 19 May 2017 12:32:48 +0000 (12:32 +0000)]
context.h (context::set_passes): New.

* context.h (context::set_passes): New.
* context.c (context::context): Do not create pass manager.
* toplev.c (general_init): Create pass manager here.

From-SVN: r248268

7 years agoPR libstdc++/80796 Add new std::search overload for C++17
Jonathan Wakely [Fri, 19 May 2017 12:11:31 +0000 (13:11 +0100)]
PR libstdc++/80796 Add new std::search overload for C++17

PR libstdc++/80796
* include/bits/stl_algo.h (search): Add new overload for C++17.
* testsuite/25_algorithms/search/searcher.cc: New.

From-SVN: r248266

7 years agors6000: Make constant formation a tiny bit better
Segher Boessenkool [Fri, 19 May 2017 11:29:21 +0000 (13:29 +0200)]
rs6000: Make constant formation a tiny bit better

If we cannot load a constant into a register in one insn, and that
constant is a valid mask (for rotate instructions), we currently
prefer to load -1 and then mask it.  This patch makes us not do that if
instead we could use two add or or instructions, since those are
sometimes faster on certain CPUs (and never are slower).

* config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
use this splitter if two add or or instructions would also work for
the constant we want to generate.

From-SVN: r248265

7 years agore PR tree-optimization/80821 (genmatch conflicting predicates)
Richard Biener [Fri, 19 May 2017 11:13:48 +0000 (11:13 +0000)]
re PR tree-optimization/80821 (genmatch conflicting predicates)

2017-05-19  Richard Biener  <rguenther@suse.de>

PR build/80821
* genmatch.c (dt_node::gen_kids_1): Add missing scope around
predicate evaluation.

From-SVN: r248264

7 years agoipa-inline.h (ipa_call_summary): Turn sizes into signed; add ctor.
Jan Hubicka [Fri, 19 May 2017 09:36:56 +0000 (11:36 +0200)]
ipa-inline.h (ipa_call_summary): Turn sizes into signed; add ctor.

* ipa-inline.h (ipa_call_summary): Turn sizes into signed;
add ctor.
* ipa-inline.c (want_inline_small_function_p): Do not cast to
unsigned.

From-SVN: r248263

7 years agoipa-inline-analysis.c (cgraph_2edge_hook_list, [...]): Remove.
Jan Hubicka [Fri, 19 May 2017 08:52:26 +0000 (10:52 +0200)]
ipa-inline-analysis.c (cgraph_2edge_hook_list, [...]): Remove.

* ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
(inline_edge_summary_vec): Turn into ...
(ipa_call_summaries): ... this one.
(redirect_to_unreachable, edge_set_predicate,
evaluate_properties_for_edge, inline_summary_alloc,
reset_ipa_call_summary, reset_inline_summary,
inline_summary_t::duplicate): Update.
(inline_edge_duplication_hook): Turn to ...
(ipa_call_summary_t::duplicate): ... this one.
(inline_edge_removal_hook): Turn to ...
(ipa_call_summary_t::remove): ... this one.
(dump_inline_edge_summary): Turn to ...
(dump_ipa_call_summary): ... this one.
(estimate_function_body_sizes): Update.
(inline_update_callee_summaries): Update.
(remap_edge_change_prob): Update.
(remap_edge_summaries): Update.
(inline_merge_summary): Update.
(do_estimate_edge_time): Update.
(inline_generate_summary): Update.
(inline_read_section): Update.
(inline_read_summary): Update.
(inline_free_summary): Update.
* ipa-inline.c (can_inline_edge_p): Update.
(compute_inlined_call_time): Update.
(want_inline_small_function_p): Update.
(edge_badness): Update.
(early_inliner): Update.
* ipa-inline.h (inline_edge_summary): Turn to ...
(ipa_call_summary): ... this one.
(ipa_call_summary_t): New class.
(inline_edge_summary_t, inline_edge_summary_vec): Remove.
(ipa_call_summaries): New.
(inline_edge_summary): Remove.
(estimate_edge_growth): Update.
* ipa-profile.c (ipa_propagate_frequency_1): Update.
* ipa-prop.c (ipa_make_edge_direct_to_target): Update.
* ipa-split.c (execute_split_functions): Update.
* ipa.c (symbol_table::remove_unreachable_nodes): Update.

From-SVN: r248262

7 years agore PR middle-end/80764 (ICE at -O3 in both 32-bit and 64-bit modes on x86_64-linux...
Richard Biener [Fri, 19 May 2017 08:23:37 +0000 (08:23 +0000)]
re PR middle-end/80764 (ICE at -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu (internal compiler error: in verify_loop_structure, at cfgloop.c:1644))

2017-05-19  Richard Biener  <rguenther@suse.de>

PR middle-end/80764
* cfgexpand.c (expand_gimple_cond): Fix loop fixup.

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

From-SVN: r248261

7 years agoDaily bump.
GCC Administrator [Fri, 19 May 2017 00:16:28 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r248260

7 years agors6000: Separate shrink-wrapping for FPRs
Segher Boessenkool [Thu, 18 May 2017 23:38:04 +0000 (01:38 +0200)]
rs6000: Separate shrink-wrapping for FPRs

This patch implements separate shrink-wrapping for the non-volatile
floating point registers (FPR14..FPR31).  It is pretty much exactly
analogous to the code for GPRs.

* config/rs6000/rs6000.c (struct machine_function): Add field
fpr_is_wrapped_separately.
(rs6000_get_separate_components): Use 64 components.  Handle the
new FPR components.
(rs6000_components_for_bb): Handle the FPR components.
(rs6000_emit_prologue_components): Handle the FPR components.
(rs6000_emit_epilogue_components): Handle the FPR components.
(rs6000_set_handled_components): Handle the FPR components.
(rs6000_emit_prologue): Don't output prologue code for those FPRs
that are already separately shrink-wrapped.
(rs6000_emit_epilogue): Don't output epilogue code for those FPRs
that are already separately shrink-wrapped.

From-SVN: r248256

7 years agore PR go/80814 (commit aa443150c83535fedccb3dee80daa7e01fafd92d causes a build error.)
Ian Lance Taylor [Thu, 18 May 2017 22:44:12 +0000 (22:44 +0000)]
re PR go/80814 (commit aa443150c83535fedccb3dee80daa7e01fafd92d causes a build error.)

PR go/80814
* Makefile.am (AM_GOCFLAGS): Define.
* Makefile.in: Rebuild.

From-SVN: r248255

7 years agore PR target/80510 (Optimize Power7/power8 Altivec load/stores)
Michael Meissner [Thu, 18 May 2017 19:34:13 +0000 (19:34 +0000)]
re PR target/80510 (Optimize Power7/power8 Altivec load/stores)

[gcc]
2017-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/80510
* config/rs6000/predicates.md (simple_offsettable_mem_operand):
New predicate.

* config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
(define_peephole2 for Altivec d-form load): Add peepholes to catch
cases where the register allocator uses a move and an offsettable
memory operation to/from a FPR register on ISA 2.06/2.07.
(define_peephole2 for Altivec d-form store): Likewise.

[gcc/testsuite]
2017-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/80510
* gcc.target/powerpc/pr80510-1.c: New test.
* gcc.target/powerpc/pr80510-2.c: Likewise.

From-SVN: r248254

7 years agoAdd testcase to ensure that #pragma GCC diagnostic push/pop works with -Wtraditional
Eric Gallager [Thu, 18 May 2017 18:55:33 +0000 (18:55 +0000)]
Add testcase to ensure that #pragma GCC diagnostic push/pop works with -Wtraditional

2017-05-18  Eric Gallager  <egall@gwmail.gwu.edu>

* gcc.dg/pragma-diag-7.c: New test.

From-SVN: r248253

7 years agogcc_release (build_gzip): Build xz tarball instead of bz2 tarball.
Matthias Klose [Thu, 18 May 2017 18:49:16 +0000 (18:49 +0000)]
gcc_release (build_gzip): Build xz tarball instead of bz2 tarball.

2017-05-18  Matthias Klose  <doko@ubuntu.com>

        * gcc_release (build_gzip): Build xz tarball instead of bz2 tarball.
        (build_diffs): Handle building diffs from either bz2 or xz tarballs,
        compress diffs using xz instead of bz2.
        (build_diff): Likewise.
        (upload_files): Check for *.xz files instead of *.bz2 files.
        (announce_snapshot): Announce xz tarball instead of bz2 tarball.
        (XZ): New definition.
        (<toplevel>): Look for both bz2 and xz compressed old tarballs.

From-SVN: r248251

7 years agocp-tree.h (OVL_ARG_DEPENDENT): Delete.
Nathan Sidwell [Thu, 18 May 2017 18:18:04 +0000 (18:18 +0000)]
cp-tree.h (OVL_ARG_DEPENDENT): Delete.

* cp-tree.h (OVL_ARG_DEPENDENT): Delete.
(OVL_USED_P): New.
(lookup_keep): Declare.
* name-lookup.c (add_function): Don't set OVL_ARG_DEPENDENT.
* pt.c (tsubst_copy): Assert lookup is persistent.
* semantics.c (finish_call_expr): Use lkp_iterator, call
lookup_keep.
* tree.c (ovl_copy): New.
(ovl_insert, ovl_iterator::remove_node): Copy immutable nodes.
(lookup_keep): New.

From-SVN: r248250

7 years agocompiler: ignore struct field tags for type conversion
Ian Lance Taylor [Thu, 18 May 2017 18:04:29 +0000 (18:04 +0000)]
compiler: ignore struct field tags for type conversion

    Go 1.8 includes a language change (https://golang.org/doc/go1.8#language):
    in an explicit conversion from one struct type to another, any field
    tags are ignored.

    This CL implements this language change in the gofrontend.  The tests
    for this are in the gc testsuite, which will be copied into the gccgo
    repository in due course.

    Updates golang/go#16085.

    Reviewed-on: https://go-review.googlesource.com/43614

From-SVN: r248248

7 years agore PR target/80799 (x86-32 bits generates MMX without EMMS)
Uros Bizjak [Thu, 18 May 2017 18:03:30 +0000 (20:03 +0200)]
re PR target/80799 (x86-32 bits generates MMX without EMMS)

PR target/80799
* config/i386/mmx.md (*mov<mode>_internal): Enable
alternatives 11, 12, 13 and 14 also for 32bit targets.
Remove alternatives 15, 16, 17 and 18.
* config/i386/sse.md (vec_concatv2di): Change
alternative (!x, *y) to (x, ?!*Yn).

testsuite/ChangeLog:

PR target/80799
* g++.dg/other/i386-11.C: New test.

From-SVN: r248246

7 years agoPR libstdc++/80478 make std::mem_fn work with noexcept functions
Jonathan Wakely [Thu, 18 May 2017 17:32:06 +0000 (18:32 +0100)]
PR libstdc++/80478 make std::mem_fn work with noexcept functions

PR libstdc++/80478
* include/std/functional (_Mem_fn_traits_base): Add specializations
for noexcept member function types.
* testsuite/20_util/function_objects/mem_fn/80478.cc: New test.

From-SVN: r248245

7 years agodumpfile.h (enum dump_kind): Remove stray comma.
Paolo Carlini [Thu, 18 May 2017 17:19:53 +0000 (17:19 +0000)]
dumpfile.h (enum dump_kind): Remove stray comma.

2017-05-18  Paolo Carlini  <paolo.carlini@oracle.com>

* dumpfile.h (enum dump_kind): Remove stray comma.

From-SVN: r248244

7 years agoMakefile.in: Add ipa-predicate.o and ipa-predicate.h
Jan Hubicka [Thu, 18 May 2017 17:04:25 +0000 (17:04 +0000)]
Makefile.in: Add ipa-predicate.o and ipa-predicate.h

* Makefile.in: Add ipa-predicate.o and ipa-predicate.h
* ipa-inline-analysis.c (NUM_CONDITIONS): turn into
predicate::num_conditions
(IS_NOT_CONSTANT): turn into predicate::is_not_constant.
(CHANGED): turn into predicate::changed.
(agg_position_info): Move to ipa-predicate.h
(add_condition, predicate::add_clause, predicate::operator &=,
predicate::or_with, predicate::evaluate, predicate::probability,
dump_condition, dump_clause, predicate::dump,
predicate::remap_after_duplication, predicate::remap_after_inlining,
predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
(evaluate_conditions_for_known_args): Update.
(set_cond_stmt_execution_predicate): Update.
* ipa-inline.h: Include ipa-predicate.h
(condition, inline_param_summary, conditions, agg_position_info,
predicate): Move to ipa-predicate.h
* ipa-predicate.c: New file.
* ipa-predicate.h: New file.

From-SVN: r248243

7 years agoc-format.c (local_tree_type_node): Add GTY attribute.
Bernd Edlinger [Thu, 18 May 2017 16:15:59 +0000 (16:15 +0000)]
c-format.c (local_tree_type_node): Add GTY attribute.

gcc/c-family:
2017-05-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * c-format.c (local_tree_type_node): Add GTY attribute.

gcc/c:
2017-05-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * config-lang.in (gtfiles): Add c-family/c-format.c.

From-SVN: r248242

7 years agoMakefile.in: Add ipa-predicate.o and ipa-predicate.h
Jan Hubicka [Thu, 18 May 2017 16:14:10 +0000 (16:14 +0000)]
Makefile.in: Add ipa-predicate.o and ipa-predicate.h

* Makefile.in: Add ipa-predicate.o and ipa-predicate.h
* ipa-inline-analysis.c (NUM_CONDITIONS): turn into
predicate::num_conditions
(IS_NOT_CONSTANT): turn into predicate::is_not_constant.
(CHANGED): turn into predicate::changed.
(agg_position_info): Move to ipa-predicate.h
(add_condition, predicate::add_clause, predicate::operator &=,
predicate::or_with, predicate::evaluate, predicate::probability,
dump_condition, dump_clause, predicate::dump,
predicate::remap_after_duplication, predicate::remap_after_inlining,
predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
(evaluate_conditions_for_known_args): Update.
(set_cond_stmt_execution_predicate): Update.
* ipa-inline.h: Include ipa-predicate.h
(condition, inline_param_summary, conditions, agg_position_info,
predicate): Move to ipa-predicate.h
* ipa-predicate.c: New file.
* ipa-predicate.h: New file.

From-SVN: r248241

7 years agoAdd an assert to leaf_function_p to ensure it is not called from a prolog or...
Wilco Dijkstra [Thu, 18 May 2017 15:58:33 +0000 (15:58 +0000)]
Add an assert to leaf_function_p to ensure it is not called from a prolog or...

Add an assert to leaf_function_p to ensure it is not called from a
prolog or epilog sequence (which would incorrectly return true in a
non-leaf function).  There are several targets which still call
leaf_function_p, and while most appear safe or appear aware of the
issue, it is likely not all such calls are safe.  This check enables
any such latent bugs to be found.

    gcc/
* final.c (leaf_function_p): Check we are not in a sequence.

From-SVN: r248240

7 years agocp-tree.h (OVL_USED): Replace with ...
Nathan Sidwell [Thu, 18 May 2017 15:20:04 +0000 (15:20 +0000)]
cp-tree.h (OVL_USED): Replace with ...

* cp-tree.h (OVL_USED): Replace with ...
(OVL_USING_P): ... this.
(ovl_iterator::using_p): Adjust.
* name-lookup.c (push_overloaded_decl_1)
do_nonmember_using_decl): Adjust.
* search.c (lookup_field_r): Adjust.
* tree.c (ovl_insert, ovl_scope): Adjust.
(--This line, and those below, will be ignored--

M    cp/tree.c
M    cp/cp-tree.h
M    cp/name-lookup.c
M    cp/search.c
M    cp/ChangeLog

From-SVN: r248229

7 years agoTransform TDF_{lang,tree,ipa,rtl} to dump_kind enum.
Martin Liska [Thu, 18 May 2017 14:23:46 +0000 (16:23 +0200)]
Transform TDF_{lang,tree,ipa,rtl} to dump_kind enum.

2017-05-18  Martin Liska  <mliska@suse.cz>

* cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
* dumpfile.c (dump_register): Use new enum dump_kind.
(get_dump_file_name): Likewise.
(dump_enable_all): Likewise.
(dump_switch_p_1): Likewise.
(enable_rtl_dump_file): Remove usage of TDF_RTL.
* dumpfile.h (enum dump_kind): New enum type.
(struct dump_file_info): Create constructor and
format fields and comments.
* passes.c (pass_manager::register_one_dump_file):
Use num dump_kind.
* statistics.c (statistics_early_init): Likewise.
* tree-ssa-loop-prefetch.c (dump_mem_details): Replace
TDF_TREE with TDF_SLIM.
(gather_memory_references_ref): Likewise.

From-SVN: r248206

7 years agoDefine CONSTEXPR macro and use it in vec.h.
Martin Liska [Thu, 18 May 2017 14:22:01 +0000 (16:22 +0200)]
Define CONSTEXPR macro and use it in vec.h.

2017-05-18  Martin Liska  <mliska@suse.cz>

* ansidecl.h: Define CONSTEXPR macro.
2017-05-18  Martin Liska  <mliska@suse.cz>

* vec.h (struct vnull): Use it.

From-SVN: r248205

7 years agoipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h (true_predicate...
Jan Hubicka [Thu, 18 May 2017 14:18:08 +0000 (16:18 +0200)]
ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h (true_predicate...

* ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
(true_predicate, false_predicate, true_predicate_p,
false_predicate_p): Remove.
(single_cond_predicate, not_inlined_predicate): Turn to member function
in ipa-inline.h
(add_condition): Update.
(add_clause): Turn to...
(predicate::add_clause): ... this one; update; allow passing NULL
as parameter.
(and_predicates): Turn to ...
(predicate::operator &=): ... this one.
(predicates_equal_p): Move to predicate::operator == in ipa-inline.h
(or_predicates): Turn to ...
(predicate::or_with): ... this one.
(evaluate_predicate): Turn to ...
(predicate::evaluate): ... this one.
(predicate_probability): Turn to ...
(predicate::probability): ... this one.
(dump_condition): Update.
(dump_predicate): Turn to ...
(predicate::dump): ... this one.
(account_size_time): Update.
(edge_set_predicate): Update.
(set_hint_predicate): UPdate.
(evaluate_conditions_for_known_args): Update.
(evaluate_properties_for_edge): Update.
(remap_predicate_after_duplication): Turn to...
(predicate::remap_after_duplication): ... this one.
(remap_hint_predicate_after_duplication): Update.
(inline_summary_t::duplicate): UPdate.
(dump_inline_edge_summary): Update.
(dump_inline_summary): Update.
(set_cond_stmt_execution_predicate): Update.
(set_switch_stmt_execution_predicate): Update.
(compute_bb_predicates): Update.
(will_be_nonconstant_expr_predicate): Update.
(will_be_nonconstant_predicate): Update.
(phi_result_unknown_predicate): Update.
(predicate_for_phi_result): Update.
(array_index_predicate): Update.
(estimate_function_body_sizes): Update.
(estimate_node_size_and_time): Update.
(estimate_ipcp_clone_size_and_time): Update.
(remap_predicate): Rename to ...
(predicate::remap_after_inlining): ... this one.
(remap_hint_predicate): Update.
(inline_merge_summary): Update.
(inline_update_overall_summary): Update.
(estimate_size_after_inlining): Update.
(read_predicate): Rename to ...
(predicate::stream_in): ... this one.
(read_inline_edge_summary): Update.
(write_predicate): Rename to ...
(predicate::stream_out): ... this one.
(write_inline_edge_summary): Update.
* ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
(clause_t): Turn to uint32_t
(predicate): Turn to class; implement constructor and operators
==, !=, &
(size_time_entry): Update.
(inline_summary): Update.
(inline_edge_summary): Update.

From-SVN: r248204

7 years agofold-vec-div-float.c: Update dg-requires and dg-options statements.
Will Schmidt [Thu, 18 May 2017 14:08:13 +0000 (14:08 +0000)]
fold-vec-div-float.c: Update dg-requires and dg-options statements.

2017-05-18  Will Schmidt  <will_schmidt@vnet.ibm.com>

[gcc/testsuite]

* fold-vec-div-float.c: Update dg-requires and dg-options statements.
* fold-vec-div-floatdouble.c: Likewise.
* fold-vec-logical-ands-char.c: Likewise.
* fold-vec-logical-ands-int.c: Likewise.
* fold-vec-logical-ands-short.c: Likewise.
* fold-vec-logical-ors-char.c: Likewise.
* fold-vec-logical-ors-int.c: Likewise.
* fold-vec-logical-ors-short.c: Likewise.
* fold-vec-logical-other-char.c: Likewise.
* fold-vec-mule-misc.c: Likewise.
* fold-vec-mult-float.c: Likewise.
* fold-vec-mult-floatdouble.c: Likewise.
* fold-vec-mult-int.c: Likewise.
* fold-vec-mult-int128-p9.c: Likewise.
* fold-vec-sub-floatdouble.c: Likewise.
* fold-vec-div-longlong.c: Update dg-requires and dg-options statements.
Add lp64 requirement.
* fold-vec-mult-int128-p8.c: Likewise.
* fold-vec-logical-ors-longlong.c: Fix comment typo.

From-SVN: r248202

7 years agoFix up dg-option to resolve problems reported by David Edelshon for AIX.
Steven Munroe [Thu, 18 May 2017 14:01:11 +0000 (14:01 +0000)]
Fix up dg-option to resolve problems reported by David Edelshon for AIX.

2017-05-17  Steven Munroe  <munroesj@gcc.gnu.org>

* gcc.target/powerpc/bmi-andn-1.c: Fix-up dg-options.
* gcc.target/powerpc/bmi-andn-2.c: Fix-up dg-options.
* gcc.target/powerpc/bmi-bextr-1.c: Fix-up dg-options.
* gcc.target/powerpc/bmi-bextr-2.c: Fix-up dg-options.
* gcc.target/powerpc/bmi-bextr-4.c: Fix-up dg-options.
* gcc.target/powerpc/bmi-bextr-5.c: Fix-up dg-options.
* gcc.target/powerpc/bmi-blsi-1.c: Fix-up dg-options.
* gcc.target/powerpc/bmi-blsi-2.c: Fix-up dg-options.
* gcc.target/powerpc/bmi-blsmsk-1.c: Fix-up dg-options.
* gcc.target/powerpc/bmi-blsmsk-2.c: Fix-up dg-options.
* gcc.target/powerpc/bmi-blsr-1.c: Fix-up dg-options.
* gcc.target/powerpc/bmi-blsr-2.c: Fix-up dg-options.
* gcc.target/powerpc/bmi-tzcnt-1.c: Fix-up dg-options.
* gcc.target/powerpc/bmi-tzcnt-2.c: Fix-up dg-options.
* gcc.target/powerpc/bmi2-bzhi32-1.c: Fix-up dg-options.
* gcc.target/powerpc/bmi2-bzhi64-1.c: Fix-up dg-options.
* gcc.target/powerpc/bmi2-bzhi64-1a.c: Fix-up dg-options.
* gcc.target/powerpc/bmi2-mulx32-1.c: Fix-up dg-options.
* gcc.target/powerpc/bmi2-mulx32-2.c: Fix-up dg-options.
* gcc.target/powerpc/bmi2-mulx64-1.c: Fix-up dg-options.
* gcc.target/powerpc/bmi2-mulx64-2.c: Fix-up dg-options.
* gcc.target/powerpc/bmi2-pdep32-1.c: Fix-up dg-options.
* gcc.target/powerpc/bmi2-pdep64-1.c: Fix-up dg-options.
* gcc.target/powerpc/bmi2-pext32-1.c: Fix-up dg-options.
* gcc.target/powerpc/bmi2-pext64-1.c: Fix-up dg-options.
* gcc.target/powerpc/bmi2-pext64-1a.c: Fix-up dg-options.

From-SVN: r248201

7 years agoMore dump_flags_t conversion
Thomas Schwinge [Thu, 18 May 2017 13:34:29 +0000 (15:34 +0200)]
More dump_flags_t conversion

gcc/brig/
* brigfrontend/brig-to-generic.h (class brig_to_generic): Use
"dump_flags_t" for "m_dump_flags" member.

From-SVN: r248200

7 years ago* c-decl.c (pushdecl_top_level): Delete unused function.
Nathan Sidwell [Thu, 18 May 2017 13:03:55 +0000 (13:03 +0000)]
* c-decl.c (pushdecl_top_level): Delete unused function.

From-SVN: r248199

7 years agocp-tree.h (lookup_add): Swap args.
Nathan Sidwell [Thu, 18 May 2017 12:55:11 +0000 (12:55 +0000)]
cp-tree.h (lookup_add): Swap args.

* cp-tree.h (lookup_add): Swap args.
(ovl_cons, build_overload): Delete.
* name-lookup.c (add_function, push_overloaded_decl_1)
do_nonmember_using_decl, merge_functions, remove_hidden_names):
Use lookup_add, ovl_insert.
* pt.c (check_explicit_specialization): Use lookup_add.
(do_class_deduction): Likewise. Refactor if.
* tree.c (lookup_add): Swap args.
(ovl_cons, build_overload): Delete.
(--This line, and those below, will be ignored--

M    cp/cp-tree.h
M    cp/name-lookup.c
M    cp/pt.c
M    cp/ChangeLog
M    cp/tree.c

From-SVN: r248198

7 years agoc-common.c (c_common_type_for_size): Use NULL_TREE instead of 0.
Marek Polacek [Thu, 18 May 2017 11:26:25 +0000 (11:26 +0000)]
c-common.c (c_common_type_for_size): Use NULL_TREE instead of 0.

* c-common.c (c_common_type_for_size): Use NULL_TREE instead of 0.
(c_common_fixed_point_type_for_size): Likewise.
(c_common_type_for_mode): Likewise.
(shorten_compare): Likewise.
(c_promoting_integer_type_p): Use false/true instead of 0/1.
* c-pragma.c (maybe_apply_renaming_pragma): Use NULL_TREE instead of 0.

* c-decl.c (match_builtin_function_types): Use NULL_TREE instead of 0.
(check_earlier_gotos): Likewise.
(define_label): Likewise.
(pending_xref_error): Likewise.
(smallest_type_quals_location): Likewise.
(grokdeclarator): Likewise.
(grokparms): Likewise.
(identifier_global_value): Likewise.
* c-typeck.c (set_nonincremental_init_from_string): Likewise.
(find_init_member): Likewise.

From-SVN: r248195

7 years agoMove X==15-X to match.pd
Marc Glisse [Thu, 18 May 2017 11:05:55 +0000 (13:05 +0200)]
Move X==15-X to match.pd

2017-05-18  Marc Glisse  <marc.glisse@inria.fr>

* fold-const.c (fold_binary_loc): Move transformation...
* match.pd (C - X CMP X): ... here.

From-SVN: r248193

7 years agoc-common.c (self_promoting_args_p): Change the return type to bool.
Marek Polacek [Thu, 18 May 2017 10:55:59 +0000 (10:55 +0000)]
c-common.c (self_promoting_args_p): Change the return type to bool.

* c-common.c (self_promoting_args_p): Change the return type to bool.
Use false/true instead of 0/1.
* c-common.h (self_promoting_args_p): Update.

* c-decl.c (start_decl): Use false/true instead of 0/1.
(grokdeclarator): Likewise.
(finish_struct): Likewise.
(start_function): Change the return type to bool.  Use false/true
instead of 0/1.
(declspecs_add_qual): Use UNKNOWN_LOCATION instead of 0.
* c-tree.h (start_function): Update.
* c-typeck.c (same_translation_unit_p): Change the return type to bool.
(set_designator): Change the return type to bool.  Use false/true
instead of 0/1.

From-SVN: r248192

7 years agoname-lookup.c (find_local_binding): New, broken out of ...
Nathan Sidwell [Thu, 18 May 2017 10:49:48 +0000 (10:49 +0000)]
name-lookup.c (find_local_binding): New, broken out of ...

* name-lookup.c (find_local_binding): New, broken out of ...
(lookup_name_innermost_nonclass_level_1): ... here.  Call it.
(set_namespace_binding): Swap scope & name args.
(namespace_binding_1): Likewise.
(pushdecl_maybe_friend_1): Adjust set_namespace_binding call.
(push_overloaded_decl_1): Likewise.
(set_global_binding): Likewise.
(get_namespace_binding): Adjust namespace_binding_1 call.

From-SVN: r248191

7 years agoFix typos in libstdc++ manual
Jonathan Wakely [Thu, 18 May 2017 10:26:02 +0000 (11:26 +0100)]
Fix typos in libstdc++ manual

* doc/xml/manual/policy_data_structures.xml: Fix typo.
* doc/xml/manual/test_policy_data_structures.xml: Likewise.
* doc/html/*: Regenerate.

From-SVN: r248189

7 years agore PR fortran/79968 (diagnostics: merge similar diagnostics containing -fdec-structure)
Fritz Reese [Thu, 18 May 2017 10:24:37 +0000 (10:24 +0000)]
re PR fortran/79968 (diagnostics: merge similar diagnostics containing -fdec-structure)

2017-05-18  Fritz Reese <fritzoreese@gmail.com>

    PR fortran/79968

    gcc/fortran/ChangeLog:

PR fortran/79968
* decl.c (match_attr_spec, gfc_match_automatic,
gfc_match_static, gfc_match_structure_decl): Unify diagnostic
errors regarding -fdec options.
* io.c (match_dec_etag, match_dec_vtag, match_dec_ftag): Ditto.

From-SVN: r248188

7 years agoUpdate libstdc++ version info in manual
Jonathan Wakely [Thu, 18 May 2017 10:09:32 +0000 (11:09 +0100)]
Update libstdc++ version info in manual

* doc/xml/manual/abi.xml: Document latest library versions.
* doc/xml/manual/build_hacking.xml: Document requirement to update
abi.xml when bumping library versions.
* doc/html/*: Regenerate.

From-SVN: r248186

7 years agoMAINTAINERS: Add self to Write After Approval
Sheldon Lobo [Thu, 18 May 2017 09:38:47 +0000 (09:38 +0000)]
MAINTAINERS: Add self to Write After Approval

* MAINTAINERS: Add self to Write After Approval

From-SVN: r248185

7 years agoMinor SPARC T4 and M7 fixes and additions.
Sheldon Lobo [Thu, 18 May 2017 09:34:26 +0000 (09:34 +0000)]
Minor SPARC T4 and M7 fixes and additions.

* config/sparc/sparc.c (sparc_option_override): Set function
alignment for -mcpu=niagara7 to 64 to match the I$ line.
* config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
latency to 1.
* config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
latency to 2.
* config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
* gcc.target/sparc/niagara7-align.c: New test.

From-SVN: r248184

7 years agore PR sanitizer/80797 (-fsanitize=null doesn't instrument &s->x)
Marek Polacek [Thu, 18 May 2017 07:18:24 +0000 (07:18 +0000)]
re PR sanitizer/80797 (-fsanitize=null doesn't instrument &s->x)

PR sanitizer/80797
* ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
(pass_ubsan::execute): Call gimple_assign_single_p instead of
gimple_assign_load_p.

* c-c++-common/ubsan/null-12.c: New test.

From-SVN: r248179

7 years agoDaily bump.
GCC Administrator [Thu, 18 May 2017 00:16:26 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r248178

7 years agoFix comparison of decimal float zeroes (PR80692)
Segher Boessenkool [Wed, 17 May 2017 21:57:23 +0000 (23:57 +0200)]
Fix comparison of decimal float zeroes (PR80692)

Decimal float negative zero should compare equal to positive zero.
Decimal float zeroes are encoded as value class "normal" (in real.c);
they need to be handled specially, but in this one case that does not
yet happen.  This fixes it.

PR middle-end/80692
* real.c (do_compare): Give decimal_do_compare preference over
comparing just the signs.

gcc/testsuite/
PR middle-end/80692
* gcc.c-torture/execute/pr80692.c: New testcase.

From-SVN: r248174

7 years agounwind-arm.h: Make _Unwind_GetIP...
Andreas Tobler [Wed, 17 May 2017 20:54:39 +0000 (22:54 +0200)]
unwind-arm.h: Make _Unwind_GetIP...

2017-05-17  Andreas Tobler  <andreast@gcc.gnu.org>

    * config/arm/unwind-arm.h: Make _Unwind_GetIP, _Unwind_GetIPInfo and
    _Unwind_SetIP available as functions for arm*-*-freebsd*.
    * config/arm/unwind-arm.c: Implement the above.

From-SVN: r248173

7 years agore PR fortran/80741 ([Regression 7/8] DTIO wrong code causes incorrect behaviour...
Jerry DeLisle [Wed, 17 May 2017 20:33:34 +0000 (20:33 +0000)]
re PR fortran/80741 ([Regression 7/8] DTIO wrong code causes incorrect behaviour of namelist READ)

2017-05-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libgfortran/80741
* gfortran.dg/read_4.f90: New test.

From-SVN: r248172

7 years agore PR fortran/80741 ([Regression 7/8] DTIO wrong code causes incorrect behaviour...
Jerry DeLisle [Wed, 17 May 2017 20:33:27 +0000 (20:33 +0000)]
re PR fortran/80741 ([Regression 7/8] DTIO wrong code causes incorrect behaviour of namelist READ)

2017-05-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libgfortran/80741
* gfortran.dg/read_4.f90: New test.

From-SVN: r248171

7 years agore PR fortran/80741 ([Regression 7/8] DTIO wrong code causes incorrect behaviour...
Jerry DeLisle [Wed, 17 May 2017 20:33:20 +0000 (20:33 +0000)]
re PR fortran/80741 ([Regression 7/8] DTIO wrong code causes incorrect behaviour of namelist READ)

2017-05-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libgfortran/80741
* transfer.c (finalize_transfer): Reset last_char to 'empty'.
* file_pos.c (formatted_backspace): Likewise.
(st_endfile): Likewise.
(st_rewind): Likewise.
(st_flush): Likewise.

PR fortran/80741
* trans-io.c (transfer_namelist_element): Change check from
NULL_TREE to null_pointer_node.

From-SVN: r248170

7 years agolibgo: add "vendor" to pkgpath for vendored standard packages
Ian Lance Taylor [Wed, 17 May 2017 20:16:13 +0000 (20:16 +0000)]
libgo: add "vendor" to pkgpath for vendored standard packages

    Ensure that the packages vendored into the standard library do not
    have the same pkgpath as the actual packages.  If we don't, attempts
    to build and test the actual packages will get confused.  The specific
    error I was seeing was import loops, causing some of the packages to
    fail to get initialized, causing an obscure run time crash.

    Reviewed-on: https://go-review.googlesource.com/43610

From-SVN: r248168

7 years agopr78604.c: Fix typo in dg-options.
Bill Schmidt [Wed, 17 May 2017 17:39:55 +0000 (17:39 +0000)]
pr78604.c: Fix typo in dg-options.

2017-05-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.target/powerpc/pr78604.c: Fix typo in dg-options.

From-SVN: r248165

7 years agoc-common.c: Use NULL_TREE instead of 0 where appropriate.
Marek Polacek [Wed, 17 May 2017 16:30:53 +0000 (16:30 +0000)]
c-common.c: Use NULL_TREE instead of 0 where appropriate.

* c-common.c: Use NULL_TREE instead of 0 where appropriate.
* c-warn.c: Likewise.

* c-decl.c: Use NULL_TREE instead of 0 where appropriate.
* c-typeck.c: Likewise.

From-SVN: r248161

7 years agoFixes to Doxygen comments in libstdc++ headers
Jonathan Wakely [Wed, 17 May 2017 16:02:33 +0000 (17:02 +0100)]
Fixes to Doxygen comments in libstdc++ headers

* include/bits/refwrap.h: Fix Doxygen warning.
* include/bits/specfun.h: Likewise.
* include/bits/std_function.h: Likewise.
* include/bits/stl_algo.h (set_union, set_intersection)
(set_difference, set_symmetric_difference): Add Doxygen @param tags
for output iterator parameters.
* include/bits/stl_iterator.h (inserter): Add Doxygen @param tag for
iterator parameter.
* include/std/mutex (try_lock, lock): Change Mutex to Lockable in
Doxygen comments.

From-SVN: r248160

7 years agocp-tree.h (default_hash_traits <lang_identifier *>): New specialization.
Nathan Sidwell [Wed, 17 May 2017 15:41:23 +0000 (15:41 +0000)]
cp-tree.h (default_hash_traits <lang_identifier *>): New specialization.

* cp-tree.h (default_hash_traits <lang_identifier *>): New
specialization.
* name-lookup.c (lookup_extern_c_fun_in_all_ns): Delete.
(extern_c_fns): New hash table.
(check_extern_c_conflict): New, broken out of ...
(pushdecl_maybe_friend_1): ... here.  Call it.
(c_linkage_bindings): Just look in hash table.

From-SVN: r248159

7 years agore PR fortran/80668 (wrong error message with -finit-derived)
Fritz Reese [Wed, 17 May 2017 15:13:58 +0000 (15:13 +0000)]
re PR fortran/80668 (wrong error message with -finit-derived)

2017-05-17  Fritz Reese <fritzoreese@gmail.com>

    PR fortran/80668

    gcc/fortran/ChangeLog:

PR fortran/80668
* expr.c (component_initializer): Don't generate initializers for
pointer components.
* invoke.texi (-finit-derived): Document.

    gcc/testsuite/ChangeLog:

PR fortran/80668
* gfortran.dg/pr80668.f90: New.

From-SVN: r248158

7 years ago* gcc.target/i386/pr80425-1.c: Add -mregparm=1 for 32bit targets.
Uros Bizjak [Wed, 17 May 2017 15:04:58 +0000 (17:04 +0200)]
* gcc.target/i386/pr80425-1.c: Add -mregparm=1 for 32bit targets.

From-SVN: r248157

7 years agomd.texi (Canonicalization of Instructions): Describe the canonical form of instructio...
Uros Bizjak [Wed, 17 May 2017 15:01:07 +0000 (17:01 +0200)]
md.texi (Canonicalization of Instructions): Describe the canonical form of instructions that inherently set a condition...

* doc/md.texi (Canonicalization of Instructions): Describe the
canonical form of instructions that inherently set a condition
code register.

From-SVN: r248156

7 years agore PR middle-end/80775 (-O3 produces ice in group_case_labels_stmt)
Peter Bergner [Wed, 17 May 2017 14:05:21 +0000 (09:05 -0500)]
re PR middle-end/80775 (-O3 produces ice in group_case_labels_stmt)

gcc/
PR middle-end/80775
* tree-cfg.c: Move deletion of unreachable case statements to after
the merging of consecutive case labels.

gcc/testsuite/
PR middle-end/80775
* gcc.dg/pr80775.c: New test.

From-SVN: r248155

7 years agoImplement new C++ intrinsics __is_assignable and __is_constructible.
Ville Voutilainen [Wed, 17 May 2017 13:54:23 +0000 (16:54 +0300)]
Implement new C++ intrinsics __is_assignable and __is_constructible.

c-family/

Implement new C++ intrinsics __is_assignable and __is_constructible.
* c-common.c (__is_assignable, __is_constructible): New.
* c-common.h (RID_IS_ASSIGNABLE, RID_IS_CONSTRUCTIBLE): Likewise.

cp/

PR c++/80654
PR c++/80682
Implement new C++ intrinsics __is_assignable and __is_constructible.
* cp-tree.h (CPTK_IS_ASSIGNABLE, CPTK_IS_CONSTRUCTIBLE): New.
(is_xible): New.
* cxx-pretty-print.c (pp_cxx_trait_expression): Handle
CPTK_IS_ASSIGNABLE and CPTK_IS_CONSTRUCTIBLE.
* method.c (constructible_expr): Set cp_unevaluated.
(is_xible_helper): New.
(is_trivially_xible): Adjust.
(is_xible): New.
* parser.c (cp_parser_primary_expression): Handle
RID_IS_ASSIGNABLE and RID_IS_CONSTRUCTIBLE.
(cp_parser_trait_expr): Likewise.
* semantics.c (trait_expr_value): Handle
CPTK_IS_ASSIGNABLE and CPTK_IS_CONSTRUCTIBLE.

testsuite/

* g++.dg/ext/80654.C: New.

libstdc++-v3/

Implement new C++ intrinsics __is_assignable and __is_constructible.
* include/std/type_traits (__do_is_static_castable_impl): Remove.
(__is_static_castable_impl, __is_static_castable_safe): Likewise.
(__is_static_castable, __do_is_direct_constructible_impl): Likewise.
(__is_direct_constructible_impl): Likewise.
(__is_direct_constructible_new_safe): Likewise.
(__is_base_to_derived_ref, __is_lvalue_to_rvalue_ref): Likewise.
(__is_direct_constructible_ref_cast): Likewise.
(__is_direct_constructible_new, __is_direct_constructible): Likewise.
(__do_is_nary_constructible_impl): Likewise.
(__is_nary_constructible_impl, __is_nary_constructible): Likewise.
(__is_constructible_impl): Likewise.
(is_constructible): Call the intrinsic.
(__is_assignable_helper): Remove.
(is_assignable): Call the intrinsic.
(is_trivially_constructible): Likewise.
(__is_trivially_copy_constructible_impl): New.
(is_trivially_copy_constructible): Use it.
(__is_trivially_move_constructible_impl): New.
(is_trivially_move_constructible): Use it.
(is_trivially_assignable): Call the intrinsic.
(__is_trivially_copy_assignable_impl): New.
(is_trivially_copy_assignable): Use it.
(__is_trivially_move_assignable_impl): New.
(is_trivially_move_assignable): Use it.
(testsuite/20_util/declval/requirements/1_neg.cc): Adjust.
(testsuite/20_util/is_trivially_copy_assignable/value.cc):
Add test for void.
(testsuite/20_util/is_trivially_copy_constructible/value.cc): Likewise.
(testsuite/20_util/is_trivially_move_assignable/value.cc): Likewise.
(testsuite/20_util/is_trivially_move_constructible/value.cc): Likewise.
(testsuite/20_util/make_signed/requirements/typedefs_neg.cc): Adjust.
(testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc):
Likewise.

From-SVN: r248153

7 years agocp-tree.h (ovl_iterator::using_p): New predicate.
Nathan Sidwell [Wed, 17 May 2017 12:37:30 +0000 (12:37 +0000)]
cp-tree.h (ovl_iterator::using_p): New predicate.

* cp-tree.h (ovl_iterator::using_p): New predicate.
(ovl_iterator::remove_node): New worker.
(ovl_insert): Declare.
* tree.c (ovl_insert): New.
(ovl_iterator::remove_node): New.
* class.c (add_method): Use ovl_iterator, ovl_insert.
(clone_function_decl): Fix description.
(clone_constructors_and_destructors): Use ovl_iterator.

From-SVN: r248151

7 years agoclass.c (handle_using_decl): Use OVL_FIRST, ovl_iterator.
Nathan Sidwell [Wed, 17 May 2017 11:21:50 +0000 (11:21 +0000)]
class.c (handle_using_decl): Use OVL_FIRST, ovl_iterator.

* class.c (handle_using_decl): Use OVL_FIRST, ovl_iterator.
(maybe_warn_about_overly_private_class): Use ovl_iterator.
(method_name_cmp, resort_method_name_cmp): Use OVL_NAME.
(resort_type_method_vec, finish_struct_methods): Use OVL_FIRST.
(get_base_fndecls): Use ovl_iterator.
(warn_hidden): Use OVL_NAME, ovl_iterator.
(add_implicitly_declared_members): Use ovl_iterator.
* constraint.cc (normalize_template_id_expression): Use OVL_FIRST,
flatten nested if.
(finish_shorthand_constraint): Simplify, use ovl_make.
* pt.c (make_constrained_auto): Simplify.  Use ovl_make.
* search.c (shared_member_p): Use ovl_iterator.
(lookup_field_fuzzy_info::fuzzy_lookup_fn): Use OVL_NAME.
(lookup_conversion_operator): Use OVL_FIRST.
(lookup_fnfiels_idx_nolazy): Use OVL_FIRST, OVL_NAME.
(look_for_overrides_here): Use ovl_iterator.
(lookup_conversions_r): Use OVL_FIRST, OVL_NAME, ovl_iterator.
* typeck.c (build_x_unary_op): Use ovl_make.

From-SVN: r248144

7 years agore PR sanitizer/80659 (-fsanitize=address evokes ICE in in gimplify_switch_expr)
Marek Polacek [Wed, 17 May 2017 09:59:20 +0000 (09:59 +0000)]
re PR sanitizer/80659 (-fsanitize=address evokes ICE in in gimplify_switch_expr)

PR sanitizer/80659
* c-decl.c (build_compound_literal): Set DECL_ARTIFICIAL and
DECL_IGNORED_P even for non-static compound literals.

* gcc.dg/asan/pr80659.c: New test.

From-SVN: r248143

7 years agoFix comment for cmse_nonsecure_call_clear_caller_saved
Thomas Preud'homme [Wed, 17 May 2017 09:18:25 +0000 (09:18 +0000)]
Fix comment for cmse_nonsecure_call_clear_caller_saved

2017-05-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
    readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
    restoring of callee-saved registers.

From-SVN: r248142

7 years agocompare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
Eric Botcazou [Wed, 17 May 2017 09:12:33 +0000 (09:12 +0000)]
compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.

* compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
* config/visium/visium.c (single_set_and_flags): Likewise.
* config/visium/visium.md (Substitutions): Likewise.

From-SVN: r248141

7 years agoIntroduce dump_flags_t type and use it instead of int type.
Martin Liska [Wed, 17 May 2017 09:01:36 +0000 (11:01 +0200)]
Introduce dump_flags_t type and use it instead of int type.

2017-05-17  Martin Liska  <mliska@suse.cz>

* class.c (dump_class_hierarchy): Introduce dump_flags_t type and
use it instead of int type.
(dump_vtable): Likewise.
(dump_vtt): Likewise.
* decl2.c (dump_tu): Likewise.
2017-05-17  Martin Liska  <mliska@suse.cz>

* c-common.h: Introduce dump_flags_t type and
use it instead of int type.
* c-gimplify.c (c_genericize): Likewise.
* c-opts.c: Likewise.
2017-05-17  Martin Liska  <mliska@suse.cz>

* c-decl.c (c_parse_final_cleanups): Introduce dump_flags_t type and
use it instead of int type.
2017-05-17  Martin Liska  <mliska@suse.cz>

* cfg.c: Introduce dump_flags_t type and
use it instead of int type.
* cfg.h: Likewise.
* cfghooks.c: Likewise.
* cfghooks.h (struct cfg_hooks): Likewise.
* cfgrtl.c: Likewise.
* cfgrtl.h: Likewise.
* cgraph.c (cgraph_node::get_body): Likewise.
* coretypes.h: Likewise.
* domwalk.c: Likewise.
* domwalk.h: Likewise.
* dumpfile.c (struct dump_option_value_info): Likewise.
(dump_enable_all): Likewise.
(dump_switch_p_1): Likewise.
(opt_info_switch_p): Likewise.
* dumpfile.h (enum tree_dump_index): Likewise.
(struct dump_file_info): Likewise.
* genemit.c: Likewise.
* generic-match-head.c: Likewise.
* gengtype.c (open_base_files): Likewise.
* gimple-pretty-print.c: Likewise.
* gimple-pretty-print.h: Likewise.
* graph.c (print_graph_cfg): Likewise.
* graphite-scop-detection.c (dot_all_sese): Likewise.
* ipa-devirt.c (build_type_inheritance_graph): Likewise.
* loop-unroll.c (report_unroll): Likewise.
* passes.c (pass_manager::register_one_dump_file): Likewise.
* print-tree.c: Likewise.
* statistics.c: Likewise.
* tree-cfg.c: Likewise.
* tree-cfg.h: Likewise.
* tree-dfa.c: Likewise.
* tree-dfa.h: Likewise.
* tree-dump.c (dump_function): Likewise.
* tree-dump.h (struct dump_info): Likewise.
* tree-pretty-print.c: Likewise.
* tree-pretty-print.h: Likewise.
* tree-ssa-live.c: Likewise.
* tree-ssa-live.h: Likewise.
* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
* tree-vect-loop.c: Likewise.
* tree-vect-slp.c: Likewise.

From-SVN: r248140

7 years agoBye bye, c_save_expr.
Marek Polacek [Wed, 17 May 2017 08:11:15 +0000 (08:11 +0000)]
Bye bye, c_save_expr.

From-SVN: r248139

7 years agoFix bogus pr78886.c failure for avr
Senthil Kumar Selvaraj [Wed, 17 May 2017 05:50:37 +0000 (05:50 +0000)]
Fix bogus pr78886.c failure for avr

The test fails for avr because malloc has been declared to take
an unsigned long, whereas size_t for avr is only unsigned int.

Fixed by typedef'ing __SIZE_TYPE__ to size_t and using it in the
malloc function declaration.

gcc/testsuite/

2017-05-17  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

* gcc.dg/tree-ssa/pr78886.c: Use __SIZE_TYPE__ instead of
unsigned long.

From-SVN: r248138

7 years agoreorgbug-1.c: Don't specify -O2.
Chenghua Xu [Wed, 17 May 2017 02:11:09 +0000 (02:11 +0000)]
reorgbug-1.c: Don't specify -O2.

2017-05-17  Chenghua Xu  <paul.hua.gm@gmail.com>

gcc/testsuite/
    * gcc.target/mips/reorgbug-1.c: Don't specify -O2.

From-SVN: r248137

7 years agoDaily bump.
GCC Administrator [Wed, 17 May 2017 00:16:22 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r248135

7 years agore PR tree-optimization/80457 (vectorizable_condition does not update the vectorizer...
James Greenhalgh [Tue, 16 May 2017 20:18:05 +0000 (20:18 +0000)]
re PR tree-optimization/80457 (vectorizable_condition does not update the vectorizer cost model)

[gcc]

2017-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
    Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/80457
* tree-vect-stmts.c (vect_model_simple_cost): Model the cost
of all arguments to a statement as scalar_to_vec operations.
(vectorizable_call): Adjust call to vect_model_simple_cost for
new parameter.
(vectorizable_conversion): Likewise.
(vectorizable_assignment): Likewise.
(vectorizable_shift): Likewise.
(vectorizable_operation): Likewise.
(vectorizable_comparison): Likewise.
(vect_is_simple_cond): Record the def types for operands.
(vectorizable_condition): Likewise, call vect_model_simple_cost.
* tree-vectorizer.h (vect_model_simple_cost): Add new parameter
for statement argument count.

[gcc/testsuite]

2017-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
    Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/80457
* gcc.target/powerpc/pr78604.c: Verify that vectorized COND_EXPRs
call vect_model_simple_cost.

Co-Authored-By: Bill Schmidt <wschmidt@linux.vnet.ibm.com>
From-SVN: r248130

7 years agore PR fortran/80554 ([f08] variable redefinition in submodule)
Paul Thomas [Tue, 16 May 2017 20:09:02 +0000 (20:09 +0000)]
re PR fortran/80554 ([f08] variable redefinition in submodule)

2017-05-16  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/80554
* decl.c (build_sym): In a submodule allow overriding of host
associated symbols from the ancestor module with a new
declaration.

2017-05-16  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/80554
* gfortran.dg/submodule_29.f08: New test.

From-SVN: r248129

7 years agoC++: fix-it hints suggesting accessors for private fields
David Malcolm [Tue, 16 May 2017 19:52:26 +0000 (19:52 +0000)]
C++: fix-it hints suggesting accessors for private fields

gcc/cp/ChangeLog:
* call.c (enforce_access): Add access_failure_info * param and use
it to record access failures.
* cp-tree.h (class access_failure_info): New class.
(enforce_access): Add access_failure_info * param, defaulting to
NULL.
(lookup_member): Likewise.
(locate_field_accessor): New function decl.
(perform_or_defer_access_check): Add access_failure_info * param,
defaulting to NULL.
* search.c (lookup_member): Add access_failure_info * param and
pass it on to call to perform_or_defer_access_check.
(matches_code_and_type_p): New function.
(field_access_p): New function.
(direct_accessor_p): New function.
(reference_accessor_p): New function.
(field_accessor_p): New function.
(struct locate_field_data): New struct.
(dfs_locate_field_accessor_pre): New function.
(locate_field_accessor): New function.
* semantics.c (perform_or_defer_access_check): Add
access_failure_info * param, and pass it on to call to
enforce_access.
* typeck.c (access_failure_info::record_access_failure): New method.
(access_failure_info::maybe_suggest_accessor): New method.
(finish_class_member_access_expr): Pass an access_failure_info
instance to the lookup_member call, and call its
maybe_suggest_accessor method afterwards.

gcc/testsuite/ChangeLog:
* g++.dg/other/accessor-fixits-1.C: New test case.
* g++.dg/other/accessor-fixits-2.C: New test case.
* g++.dg/other/accessor-fixits-3.C: New test case.
* g++.dg/other/accessor-fixits-4.C: New test case.

From-SVN: r248128

7 years agors6000-c: Add support for built-in functions vector unsigned long long vec_bperm...
Carl Love [Tue, 16 May 2017 19:32:54 +0000 (19:32 +0000)]
rs6000-c: Add support for built-in functions vector unsigned long long vec_bperm (vector...

gcc/ChangeLog:

2017-05-16  Carl Love  <cel@us.ibm.com>

* config/rs6000/rs6000-c: Add support for built-in functions
vector unsigned long long vec_bperm (vector unsigned long long,
                                     vector unsigned char)
vector signed long long vec_mule (vector signed int,
                                  vector signed int)
vector unsigned long long vec_mule (vector unsigned int,
                                    vector unsigned int)
vector signed long long vec_mulo (vector signed int,
                                  vector signed int)
vector unsigned long long vec_mulo (vector unsigned int,
                                    vector unsigned int)
vector signed char vec_sldw (vector signed char,
                             vector signed char,
                             const int)
vector unsigned char vec_sldw (vector unsigned char,
                               vector unsigned char,
                               const int)
vector signed short vec_sldw (vector signed short,
                              vector signed short,
                              const int)
vector unsigned short vec_sldw (vector unsigned short,
                                vector unsigned short,
                                const int)
vector signed int vec_sldw (vector signed int,
                            vector signed int,
                            const int)
vector unsigned int vec_sldw (vector unsigned int,
                              vector unsigned int,
                              const int)
vector signed long long vec_sldw (vector signed long long,
                                  vector signed long long,
                                  const int)
vector unsigned long long vec_sldw (vector unsigned long long,
                                    vector unsigned long long,
                                    const int)
* config/rs6000/rs6000-c: Add support for built-in functions
* config/rs6000/rs6000-builtin.def: Add definition for SLDW.
* config/rs6000/altivec.h: Add defintion for vec_sldw.
* doc/extend.texi: Update the built-in documentation for the
new built-in functions.

gcc/testsuite/ChangeLog:

2017-05-16  Carl Love  <cel@us.ibm.com>

* gcc.target/powerpc/builtins-3.c: New vec_mule, vec_mulo test cases.
* gcc.target/powerpc/builtins-3-p8.c: Add tests for the new Power 8
built-ins to the test suite file.  Note, support for mradds exists
but no test case exists.
* gcc.target/powerpc/builtins-3-p9.c: Add tests for the new Power 9
built-ins to the test suite file.

From-SVN: r248125

7 years agore PR sanitizer/80536 (UBSAN: compile time segfault)
Marek Polacek [Tue, 16 May 2017 19:25:04 +0000 (19:25 +0000)]
re PR sanitizer/80536 (UBSAN: compile time segfault)

PR sanitizer/80536
PR sanitizer/80386
* cp-gimplify.c (cp_fold): Handle SAVE_EXPR.

* tree.c (save_expr): Don't fold the expression.

* c-c++-common/ubsan/pr80536.c: New test.
* g++.dg/ubsan/pr80386.C: New test.

From-SVN: r248124

7 years agoname-lookup.c (check_local_shadow): New, broke out of ...
Nathan Sidwell [Tue, 16 May 2017 19:20:25 +0000 (19:20 +0000)]
name-lookup.c (check_local_shadow): New, broke out of ...

* name-lookup.c (check_local_shadow): New, broke out of ...
(pushdecl_maybe_friend_1): ... here.  Call it.

From-SVN: r248123

7 years ago* ChangeLog: Fix whitespace.
Uros Bizjak [Tue, 16 May 2017 19:11:11 +0000 (21:11 +0200)]
* ChangeLog: Fix whitespace.

From-SVN: r248122

7 years agocp-tree.h (OVL_NESTED_P, [...]): New.
Nathan Sidwell [Tue, 16 May 2017 18:29:36 +0000 (18:29 +0000)]
cp-tree.h (OVL_NESTED_P, [...]): New.

* cp-tree.h (OVL_NESTED_P, OVL_LOOKUP_P): New.
(ovl_first): Move inline definition to end of file.
(ovl_make, lookup_add): Declare.
(get_fns, get_first_fn): Make pure.
* tree.c (ovl_cache): New.
(ovl_make, lookup_add): New.
* pt.c (do_class_deduction): Don't add candidates that will be
elided.

From-SVN: r248121

7 years agocall.c (build_user_type_conversion_1): Use OVL_FIRST.
Nathan Sidwell [Tue, 16 May 2017 17:36:03 +0000 (17:36 +0000)]
call.c (build_user_type_conversion_1): Use OVL_FIRST.

* call.c (build_user_type_conversion_1): Use OVL_FIRST.
(print_error_for_call_faulure): Use OVL_NAME.
(build_op_call_1): Use ovl_iterator.
(add_candidates): Use OVL_FIRST & lkp_iterator.
(build_op_delete_call): Use MAYBE_BASELINK_FUNCTIONS &
lkp_iterator.
* class.c (deduce_noexcept_on_destructors): Use ovl_iterator.
(type_has_user_nondefault_constructor)
in_class_defaulted_default_constructor,
type_has_user_provided_constructor,
type_has_user_provided_or_explicit_constructor,
type_has_non_user_provided_default_constructor,
vbase_has_user_provided_move_assign,
type_has_move_constructor, type_has_move_assign,
type_has_user_declared_move_constructor,
type_has_user_declared_move_assign,
type_build_ctor_call, type_build_dtor_call,
type_requires_array_cookie, explain_non_literal_class): Likewise.
(finish_struct): Use lkp_iterator.
(resolve_address_of_overloaded_function): Use OVL_NAME,
lkp_iterator.
(note_name_declared_in_class): Use OVL_NAME.
* cxx-pretty-print.c (pp_cxx_unqualified_id): Use OVL_FIRST.
(pp_cxx_qualified_id, cxx_pretty_printer::id_expression)
cxx_pretty_printer::expression): Likewise.
* decl2.c (check_classfn): Use ovl_iterator.
* pt.c (retrieve_specialization): Use ovl_iterator.
* tree.c (cp_tree_equal): Use lkp_iterator.
(type_has_nontrivial_copy_init): Use ovl_iterator.
((--This line, and those below, will be ignored--

M    cp/ChangeLog
M    cp/call.c
M    cp/class.c
M    cp/pt.c
M    cp/decl2.c
M    cp/tree.c
M    cp/cxx-pretty-print.c

From-SVN: r248120

7 years agotypeck2.c (cxx_incomplete_type_diagnostic): Revert change and check is_overloaded_fn.
Nathan Sidwell [Tue, 16 May 2017 16:15:47 +0000 (16:15 +0000)]
typeck2.c (cxx_incomplete_type_diagnostic): Revert change and check is_overloaded_fn.

* typeck2.c (cxx_incomplete_type_diagnostic): Revert change and
check is_overloaded_fn.

From-SVN: r248119

7 years agoarmv8_2-fp16-neon-1.c (vceqz): Fix regex.
Tamar Christina [Tue, 16 May 2017 15:57:28 +0000 (15:57 +0000)]
armv8_2-fp16-neon-1.c (vceqz): Fix regex.

2017-05-16  Tamar Christina  <tamar.christina@arm.com>

* gcc.target/arm/armv8_2-fp16-neon-1.c (vceqz): Fix regex.
* gcc.target/arm/armv8_2-fp16-neon-2.c (vceqz): Fix regex.

From-SVN: r248117

7 years agoi386.i386.md (*movsi_internal): Split (?rm,*y) alternative to (?r,*Yn) and (?m,*y...
Uros Bizjak [Tue, 16 May 2017 14:55:17 +0000 (16:55 +0200)]
i386.i386.md (*movsi_internal): Split (?rm,*y) alternative to (?r,*Yn) and (?m,*y) alternatives...

* config/i386.i386.md (*movsi_internal): Split (?rm,*y) alternative
to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
and (?*y,m).  Update insn attributes.

From-SVN: r248114

7 years agoAdd default value for last argument of dump functions.
Martin Liska [Tue, 16 May 2017 14:51:02 +0000 (16:51 +0200)]
Add default value for last argument of dump functions.

2017-05-16  Martin Liska  <mliska@suse.cz>

* parser.c (cp_lexer_print_token): Add default value for flags
argument of print_gimple_stmt, print_gimple_expr,
print_generic_stmt and print_generic_expr.
2017-05-16  Martin Liska  <mliska@suse.cz>

* cgraph.c (cgraph_edge::resolve_speculation): Add default value for flags
argument of print_gimple_stmt, print_gimple_expr,
print_generic_stmt and print_generic_expr.
* cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
* coretypes.h: Likewise.
* except.c (dump_eh_tree): Likewise.
* gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
* gimple-pretty-print.h: Likewise.
* gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
(backprop::push_to_worklist): Likewise.
(backprop::pop_from_worklist): Likewise.
(backprop::process_use): Likewise.
(backprop::intersect_uses): Likewise.
(note_replacement): Likewise.
* gimple-ssa-store-merging.c (pass_store_merging::terminate_all_aliasing_chains): Likewise.
(imm_store_chain_info::coalesce_immediate_stores): Likewise.
(pass_store_merging::execute): Likewise.
* gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
(ssa_base_cand_dump_callback): Likewise.
(dump_incr_vec): Likewise.
(replace_refs): Likewise.
(replace_mult_candidate): Likewise.
(create_add_on_incoming_edge): Likewise.
(create_phi_basis): Likewise.
(insert_initializers): Likewise.
(all_phi_incrs_profitable): Likewise.
(introduce_cast_before_cand): Likewise.
(replace_one_candidate): Likewise.
* gimplify.c (gimplify_expr): Likewise.
* graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
(set_rename): Likewise.
(rename_uses): Likewise.
(copy_loop_phi_nodes): Likewise.
(add_close_phis_to_merge_points): Likewise.
(copy_loop_close_phi_args): Likewise.
(copy_cond_phi_args): Likewise.
(graphite_copy_stmts_from_block): Likewise.
(translate_pending_phi_nodes): Likewise.
* graphite-poly.c (print_pdr): Likewise.
(dump_gbb_cases): Likewise.
(dump_gbb_conditions): Likewise.
(print_scop_params): Likewise.
* graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
(build_cross_bb_scalars_use): Likewise.
(gather_bbs::before_dom_children): Likewise.
* hsa-dump.c (dump_hsa_immed): Likewise.
* ipa-cp.c (print_ipcp_constant_value): Likewise.
(get_replacement_map): Likewise.
* ipa-inline-analysis.c (dump_condition): Likewise.
(estimate_function_body_sizes): Likewise.
* ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
(ipa_polymorphic_call_context::get_dynamic_type): Likewise.
* ipa-prop.c (ipa_dump_param): Likewise.
(ipa_print_node_jump_functions_for_edge): Likewise.
(ipa_modify_call_arguments): Likewise.
(ipa_modify_expr): Likewise.
(ipa_dump_param_adjustments): Likewise.
(ipa_dump_agg_replacement_values): Likewise.
(ipcp_modif_dom_walker::before_dom_children): Likewise.
* ipa-pure-const.c (check_stmt): Likewise.
(pass_nothrow::execute): Likewise.
* ipa-split.c (execute_split_functions): Likewise.
* omp-offload.c (dump_oacc_loop_part): Likewise.
(dump_oacc_loop): Likewise.
* trans-mem.c (tm_log_emit): Likewise.
(tm_memopt_accumulate_memops): Likewise.
(dump_tm_memopt_set): Likewise.
(dump_tm_memopt_transform): Likewise.
* tree-cfg.c (gimple_verify_flow_info): Likewise.
(print_loop): Likewise.
* tree-chkp-opt.c (chkp_print_addr): Likewise.
(chkp_gather_checks_info): Likewise.
(chkp_get_check_result): Likewise.
(chkp_remove_check_if_pass): Likewise.
(chkp_use_outer_bounds_if_possible): Likewise.
(chkp_reduce_bounds_lifetime): Likewise.
* tree-chkp.c (chkp_register_addr_bounds): Likewise.
(chkp_mark_completed_bounds): Likewise.
(chkp_register_incomplete_bounds): Likewise.
(chkp_mark_invalid_bounds): Likewise.
(chkp_maybe_copy_and_register_bounds): Likewise.
(chkp_build_returned_bound): Likewise.
(chkp_get_bound_for_parm): Likewise.
(chkp_build_bndldx): Likewise.
(chkp_get_bounds_by_definition): Likewise.
(chkp_generate_extern_var_bounds): Likewise.
(chkp_get_bounds_for_decl_addr): Likewise.
* tree-chrec.c (chrec_apply): Likewise.
* tree-data-ref.c (dump_data_reference): Likewise.
(dump_subscript): Likewise.
(dump_data_dependence_relation): Likewise.
(analyze_overlapping_iterations): Likewise.
* tree-inline.c (expand_call_inline): Likewise.
(tree_function_versioning): Likewise.
* tree-into-ssa.c (dump_defs_stack): Likewise.
(dump_currdefs): Likewise.
(dump_names_replaced_by): Likewise.
(dump_update_ssa): Likewise.
(update_ssa): Likewise.
* tree-object-size.c (pass_object_sizes::execute): Likewise.
* tree-parloops.c (build_new_reduction): Likewise.
(try_create_reduction_list): Likewise.
(ref_conflicts_with_region): Likewise.
(oacc_entry_exit_ok_1): Likewise.
(oacc_entry_exit_single_gang): Likewise.
* tree-pretty-print.h: Likewise.
* tree-scalar-evolution.c (set_scalar_evolution): Likewise.
(get_scalar_evolution): Likewise.
(add_to_evolution): Likewise.
(get_loop_exit_condition): Likewise.
(analyze_evolution_in_loop): Likewise.
(analyze_initial_condition): Likewise.
(analyze_scalar_evolution): Likewise.
(instantiate_scev): Likewise.
(number_of_latch_executions): Likewise.
(gather_chrec_stats): Likewise.
(final_value_replacement_loop): Likewise.
(scev_const_prop): Likewise.
* tree-sra.c (dump_access): Likewise.
(disqualify_candidate): Likewise.
(create_access): Likewise.
(reject): Likewise.
(maybe_add_sra_candidate): Likewise.
(create_access_replacement): Likewise.
(analyze_access_subtree): Likewise.
(analyze_all_variable_accesses): Likewise.
(sra_modify_assign): Likewise.
(initialize_constant_pool_replacements): Likewise.
(find_param_candidates): Likewise.
(decide_one_param_reduction): Likewise.
(replace_removed_params_ssa_names): Likewise.
* tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
* tree-ssa-copy.c (dump_copy_of): Likewise.
(copy_prop_visit_cond_stmt): Likewise.
* tree-ssa-dce.c (mark_operand_necessary): Likewise.
* tree-ssa-dom.c (pass_dominator::execute): Likewise.
(record_equivalences_from_stmt): Likewise.
* tree-ssa-dse.c (compute_trims): Likewise.
(delete_dead_call): Likewise.
(delete_dead_assignment): Likewise.
* tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
(forward_propagate_into_cond): Likewise.
(pass_forwprop::execute): Likewise.
* tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
* tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children): Likewise.
(move_computations_worker): Likewise.
(execute_sm): Likewise.
* tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
(remove_exits_and_undefined_stmts): Likewise.
(remove_redundant_iv_tests): Likewise.
* tree-ssa-loop-ivopts.c (dump_use): Likewise.
(adjust_iv_update_pos): Likewise.
* tree-ssa-math-opts.c (bswap_replace): Likewise.
* tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
(value_replacement): Likewise.
* tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
* tree-ssa-pre.c (print_pre_expr): Likewise.
(get_representative_for): Likewise.
(create_expression_by_pieces): Likewise.
(insert_into_preds_of_block): Likewise.
(eliminate_insert): Likewise.
(eliminate_dom_walker::before_dom_children): Likewise.
(eliminate): Likewise.
(remove_dead_inserted_code): Likewise.
* tree-ssa-propagate.c (substitute_and_fold): Likewise.
* tree-ssa-reassoc.c (get_rank): Likewise.
(eliminate_duplicate_pair): Likewise.
(eliminate_plus_minus_pair): Likewise.
(eliminate_not_pairs): Likewise.
(undistribute_ops_list): Likewise.
(eliminate_redundant_comparison): Likewise.
(update_range_test): Likewise.
(optimize_range_tests_var_bound): Likewise.
(optimize_vec_cond_expr): Likewise.
(rewrite_expr_tree): Likewise.
(rewrite_expr_tree_parallel): Likewise.
(linearize_expr): Likewise.
(break_up_subtract): Likewise.
(linearize_expr_tree): Likewise.
(attempt_builtin_powi): Likewise.
(attempt_builtin_copysign): Likewise.
(transform_stmt_to_copy): Likewise.
(transform_stmt_to_multiply): Likewise.
(dump_ops_vector): Likewise.
* tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
(print_scc): Likewise.
(set_ssa_val_to): Likewise.
(visit_reference_op_store): Likewise.
(visit_use): Likewise.
(sccvn_dom_walker::before_dom_children): Likewise.
(run_scc_vn): Likewise.
* tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Likewise.
(expr_hash_elt::print): Likewise.
(const_and_copies::pop_to_marker): Likewise.
(const_and_copies::record_const_or_copy_raw): Likewise.
* tree-ssa-structalias.c (compute_dependence_clique): Likewise.
* tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
(dump_predicates): Likewise.
(find_uninit_use): Likewise.
(warn_uninitialized_phi): Likewise.
(pass_late_warn_uninitialized::execute): Likewise.
* tree-ssa.c (verify_vssa): Likewise.
(verify_ssa): Likewise.
(maybe_optimize_var): Likewise.
* tree-vrp.c (dump_value_range): Likewise.
(dump_all_value_ranges): Likewise.
(dump_asserts_for): Likewise.
(register_edge_assert_for_2): Likewise.
(vrp_visit_cond_stmt): Likewise.
(vrp_visit_switch_stmt): Likewise.
(vrp_visit_stmt): Likewise.
(vrp_visit_phi_node): Likewise.
(simplify_cond_using_ranges_1): Likewise.
(fold_predicate_in): Likewise.
(evrp_dom_walker::before_dom_children): Likewise.
(evrp_dom_walker::push_value_range): Likewise.
(evrp_dom_walker::pop_value_range): Likewise.
(execute_early_vrp): Likewise.

From-SVN: r248113

7 years agocp-tree.h (class ovl_iterator, [...]): New OVERLOAD iterators.
Nathan Sidwell [Tue, 16 May 2017 14:46:30 +0000 (14:46 +0000)]
cp-tree.h (class ovl_iterator, [...]): New OVERLOAD iterators.

* cp-tree.h (class ovl_iterator, class lkp_iterator): New OVERLOAD
iterators.
(MAYBE_BASELINK_FUNCTIONS): New.
* constraint.cc (resolve_constraint_check): Use lkp_iterator.
* decl2.c (maybe_warn_sized_delete): Use ovl_iterator.
* lambda.c (maybe_generic_this_capture): Use lkp_iterator.
* method.c (inherited_ctor_binfo): Use ovl_iterator.
(binfo_inherited_from): Likewise.
* parser.c (lookup_literal_operator): Use lkp_iterator.
* pt.c (iterative_hash_template_arg): Use lkp_iterator.
(print_candidates_1): Likewise.
(determine_specialization): Likewise.
(resolve_overloaded_unification): Likewise.
(resolve_nondeduced_context): Likewise.
(type_dependent_expression_p): Likewise.
(dependent_template_p): Likewise.
* ptree.c (cxx_print_xnode): Likewise.
* semantics.c (omp_reduction_lookup): Use lkp_iterator.
(classtype_has_nothrow_assign_or_copy_p): Use ovl_iterator.
* typeck.c (check_template_keyword): Use lkp_iterator.

From-SVN: r248112

7 years agoTest source_location::current() in default member initializer
Jonathan Wakely [Tue, 16 May 2017 14:26:14 +0000 (15:26 +0100)]
Test source_location::current() in default member initializer

* testsuite/experimental/source_location/1.cc: Change expected result
for source_location::current() used in default member initializer.

From-SVN: r248111

7 years agoImplement std::experimental::source_location (N4519)
Jonathan Wakely [Tue, 16 May 2017 13:37:52 +0000 (14:37 +0100)]
Implement std::experimental::source_location (N4519)

* configure: Regenerate.
* doc/xml/manual/status_cxx2017.xml: Update status table.
* doc/html/*: Regenerate.
* include/Makefile.am: Add new header.
* include/Makefile.in: Regenerate.
* include/experimental/source_location: New header implementing N4519.
* testsuite/experimental/source_location/1.cc: New test.

From-SVN: r248110

7 years agoFix forward declaration of std::type_info for versioned-namespace
Jonathan Wakely [Tue, 16 May 2017 13:16:34 +0000 (14:16 +0100)]
Fix forward declaration of std::type_info for versioned-namespace

PR libstdc++/80285
* include/bits/shared_ptr_base.h [!__cpp_rtti] (type_info): Declare
outside versioned namespace.

From-SVN: r248109

7 years agocp-tree.h (OVL_FIRST, OVL_NAME): New.
Nathan Sidwell [Tue, 16 May 2017 13:15:53 +0000 (13:15 +0000)]
cp-tree.h (OVL_FIRST, OVL_NAME): New.

* cp-tree.h (OVL_FIRST, OVL_NAME): New.
(ovl_first): New.
* constexpr.c (function_concept_check): Use OVL_FIRST.
* cvt.c (build_expr_type_conversion): Likewise.
* decl.c (poplevel, grokdeclarator): Use OVL_NAME.
* decl2.c (mark_used): Use OVL_FIRST.
* error.c (dump_decl): Use OVL_FIRST, OVL_NAME.
(dump_expr, location_of): Use OVL_FIRST.
* friend.c (do_friend): Use OVL_NAME.
* init.c (build_offset_ref): Use OVL_FIRST.
* mangle.c (write_member_name): Likewise.
(write_expression): Use OVL_NAME.
* method.c (strip_inheriting_ctors): Use OVL_FIRST.
* name-lookup.c (pushdecl_class_level): Use OVL_NAME.
* pt.c (check_explicit_specialization): Use OVL_FIRST.
(check_template_shadow): Likewise.
(tsubst_template_args): Use OVL_NAME.
(tsubst_baselink): Use OVL_FIRST.
* semantics.c (perform_koenig_lookup): Use OVL_NAME.
* tree.c (get_first_fn): Use OVL_FIRST.
* typeck.c (finish_class_member_access_expr): Use OVL_NAME.
(cp_build_addr_expr_1): Use OVL_FIRST.

From-SVN: r248108

7 years agoRegenerate libstdc++-v3/configure for versioned-namespace soname
Jonathan Wakely [Tue, 16 May 2017 13:12:16 +0000 (14:12 +0100)]
Regenerate libstdc++-v3/configure for versioned-namespace soname

* configure: Regenerate.

From-SVN: r248107

7 years agopt.c (tsubst_copy_and_build): Remove unnecessary COMPONENT_REF peeking.
Nathan Sidwell [Tue, 16 May 2017 13:12:01 +0000 (13:12 +0000)]
pt.c (tsubst_copy_and_build): Remove unnecessary COMPONENT_REF peeking.

* pt.c (tsubst_copy_and_build): Remove unnecessary COMPONENT_REF
peeking.
* semantics.c (finish_id_expression): Directly init local var.
(finish_omp_reduction_clause): Use really_overloaded_fn.
* tree.c (get_fns): Document.  Assert we got an overload.
(get_first_fn) Document.
* typeck.c (cp_build_addr_expr_1): Pass arg directly to
really_overloaded_fn.
* typeck2.c (cxx_inomplete_type_diagnostic): Use get_first_fn directly.

From-SVN: r248106

7 years agooptional (_Optional_base::_M_get): Check precondition.
Marc Glisse [Tue, 16 May 2017 12:54:16 +0000 (14:54 +0200)]
optional (_Optional_base::_M_get): Check precondition.

2017-05-16  Marc Glisse  <marc.glisse@inria.fr>

* include/std/optional (_Optional_base::_M_get): Check precondition.
* testsuite/20_util/optional/cons/value_neg.cc: Update line numbers.

From-SVN: r248099

7 years agocp-tree.h (SCOPE_DEPTH): New.
Nathan Sidwell [Tue, 16 May 2017 11:32:40 +0000 (11:32 +0000)]
cp-tree.h (SCOPE_DEPTH): New.

* cp-tree.h (SCOPE_DEPTH): New.
* name-lookup.h (is_nested_namespace): Declare.
* name-lookup.c (is_nested_namespace): New.
(is_ancestor): Use it.
(set_decl_namespace): Likewise.
(push_namespace): Set SCOPE_DEPTH.
* pt.c (check_specialization_namespace): Use is_nested_namespace.
(check_unqualigied_spec_or_inst): Likewise.

From-SVN: r248095

7 years agodwarf2out.c (loc_list_from_tree_1): Do not create DW_OP_GNU_variable_value for DECL_I...
Richard Biener [Tue, 16 May 2017 11:00:59 +0000 (11:00 +0000)]
dwarf2out.c (loc_list_from_tree_1): Do not create DW_OP_GNU_variable_value for DECL_IGNORED_P decls.

2017-05-16  Richard Biener  <rguenther@suse.de>

* dwarf2out.c (loc_list_from_tree_1): Do not create
DW_OP_GNU_variable_value for DECL_IGNORED_P decls.

From-SVN: r248094

7 years agodwarf2out.c (resolve_variable_value_in_expr): Lookup DIE just generated.
Richard Biener [Tue, 16 May 2017 10:58:54 +0000 (10:58 +0000)]
dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE just generated.

2017-05-16  Richard Biener  <rguenther@suse.de>

* dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
just generated.
(note_variable_value_in_expr): If we resolved the decl ref
do not push to the stack.

From-SVN: r248093

7 years agoAdd cross-reference for test permutations in libstdc++ manual
Jonathan Wakely [Tue, 16 May 2017 10:37:22 +0000 (11:37 +0100)]
Add cross-reference for test permutations in libstdc++ manual

* doc/xml/manual/appendix_contributing.xml: Link to test docs and
note higher DejaGnu version requirement.
* doc/html/*: Regenerate.

From-SVN: r248092

7 years agoAdd cross-reference for BADNAMES in libstdc++ manual
Jonathan Wakely [Tue, 16 May 2017 09:46:21 +0000 (10:46 +0100)]
Add cross-reference for BADNAMES in libstdc++ manual

* doc/xml/manual/appendix_contributing.xml: Link to the list of bad
identifiers.
* doc/html/*: Regenerate.

From-SVN: r248091

7 years agoCommitted on behalf of Matthew Wahab
Matthew Wahab [Tue, 16 May 2017 09:23:42 +0000 (09:23 +0000)]
Committed on behalf of Matthew Wahab

gcc/
2017-05-16  Matthew Wahab  <matthew.wahab@arm.com>

* config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
operations in fast-math mode.
(vaddq_f16): Likewise.
(vmul_f16): Likewise.
(vmulq_f16): Likewise.
(vsub_f16): Likewise.
(vsubq_f16): Likewise.
* config/arm/neon.md (add<mode>3): New.
(sub<mode>3): New.
(fma:<VH:mode>3): New.  Also remove outdated comment.
(mul<mode>3): New.

testsuite/
2017-05-16  Matthew Wahab  <matthew.wahab@arm.com>

* gcc.target/arm/armv8_2-fp16-arith-1.c: Expand comment.  Update
expected output of vadd, vsub and vmul instructions.
* gcc.target/arm/armv8_2-fp16-arith-2.c: New.
* gcc.target/arm/armv8_2-fp16-neon-2.c: New.
* gcc.target/arm/armv8_2-fp16-neon-3.c: New.

From-SVN: r248090

7 years agoFix 2 typos in ipa-devirt.c.
Martin Liska [Tue, 16 May 2017 08:57:05 +0000 (10:57 +0200)]
Fix 2 typos in ipa-devirt.c.

2017-05-16  Martin Liska  <mliska@suse.cz>

PR ipa/79849.
PR ipa/79850.
* ipa-devirt.c (warn_types_mismatch): Fix typo.
(odr_types_equivalent_p): Likewise.

From-SVN: r248089