gcc.git
6 years agoudivmodsi4.c (__udivmodsi4): Rename to conform to coding standard.
Paul Koning [Thu, 18 Oct 2018 18:01:15 +0000 (14:01 -0400)]
udivmodsi4.c (__udivmodsi4): Rename to conform to coding standard.

* udivmodsi4.c (__udivmodsi4): Rename to conform to coding
standard.
* divmod.c: Update references to __udivmodsi4.
* udivmod.c: Ditto.
* udivhi3.c: New file.
* udivmodhi4.c: New file.
* config/pdp11/t-pdp11 (LIB2ADD): Add the new files.

From-SVN: r265277

6 years agoImprove -dumpversion and -dumpfullversion documentation
Jonathan Wakely [Thu, 18 Oct 2018 17:43:00 +0000 (18:43 +0100)]
Improve -dumpversion and -dumpfullversion documentation

* doc/invoke.texi (-dumpversion): Improve grammar.
(-dumpfullversion): Make more consistent with -dumpversion.

From-SVN: r265276

6 years agoi386.c (ix86_emit_fp_unordered_jump): Set JUMP_LABEL to the jump insn.
Uros Bizjak [Thu, 18 Oct 2018 16:49:20 +0000 (18:49 +0200)]
i386.c (ix86_emit_fp_unordered_jump): Set JUMP_LABEL to the jump insn.

* config/i386/i386.c (ix86_emit_fp_unordered_jump):
Set JUMP_LABEL to the jump insn.
(ix86_emit_i387_log1p): Use ix86_expand_branch to expand branch.
Predict emitted jump and add label to jump insn.

From-SVN: r265274

6 years agoFix missing entry to gcc/ada/ChangeLog for r265240
David Malcolm [Thu, 18 Oct 2018 16:09:56 +0000 (16:09 +0000)]
Fix missing entry to gcc/ada/ChangeLog for r265240

From-SVN: r265272

6 years agoFix ICE in substring-handling building 502.gcc_r (PR 87562)
David Malcolm [Thu, 18 Oct 2018 15:44:39 +0000 (15:44 +0000)]
Fix ICE in substring-handling building 502.gcc_r (PR 87562)

In r264887 I broke the build of 502.gcc_r due to an ICE.
The ICE occurs when generating a location for an sprintf warning within
a string literal, where the sprintf call is in a macro.

The root cause is a bug in the original commit of substring locations
(r239175).  get_substring_ranges_for_loc has code to handle the case
where the string literal is in a very long source line that exceeds the
length that the current linemap can represent: the start of the token
is in one line map, but then another line map is started, and the end
of the token is in the new linemap.  get_substring_ranges_for_loc handles
this by using the linemap of the end-point when building location_t
values within the string.  When extracting the linemap for the endpoint
in r239175 I erroneously used LRK_MACRO_EXPANSION_POINT, which should
have instead been LRK_SPELLING_LOCATION.

I believe this bug was dormant due to rejecting macro locations earlier
in the function, but in r264887 I allowed some macro locations in order
to deal with locations coming from the C++ lexer, and this uncovered
the bug: if a string literal was defined in a macro, locations within
the string literal would be looked up using the linemap of the expansion
point of the macro, rather than of the spelling point.  This would lead
to garbage location_t values, and, depending on the precise line numbers
of the two locations, an assertion failure (which was causing the build
failure in 502.gcc_r).

This patch fixes the bug by using LRK_SPELLING_LOCATION, and adds some
bulletproofing to the "two linemaps" case.

Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu
(g++.sum gained 5 PASS results; gcc.sum gained 3 PASS results).
I also verified that this fixes the build of 502.gcc_r.

gcc/ChangeLog:
PR tree-optimization/87562
* input.c (get_substring_ranges_for_loc): Use
LRK_SPELLING_LOCATION rather than LRK_MACRO_EXPANSION_POINT when
getting the linemap for the endpoint.  Verify that it's either
in the same linemap as the start point's spelling location, or
at least in the same file.

gcc/testsuite/ChangeLog:
PR tree-optimization/87562
* c-c++-common/substring-location-PR-87562-1-a.h: New file.
* c-c++-common/substring-location-PR-87562-1-b.h: New file.
* c-c++-common/substring-location-PR-87562-1.c: New test.
* gcc.dg/plugin/diagnostic-test-string-literals-1.c: Add test for
PR 87562.
* gcc.dg/plugin/pr87562-a.h: New file.
* gcc.dg/plugin/pr87562-b.h: New file.

From-SVN: r265271

6 years agoPR libstdc++/87641 correctly initialize accumulator in valarray::sum()
Jonathan Wakely [Thu, 18 Oct 2018 15:38:50 +0000 (16:38 +0100)]
PR libstdc++/87641 correctly initialize accumulator in valarray::sum()

Use the value of the first element as the initial value of the
__valarray_sum accumulator. Value-initialization might not create the
additive identity for the value type.

Make a similar change to __valarray_product even though it's only ever
used internally with a value_type of size_t.

PR libstdc++/87641
* include/bits/valarray_array.h (__valarray_sum): Use first element
to initialize accumulator instead of value-initializing it.
(__valarray_product<_Tp>): Move to ...
* src/c++98/valarray.cc (__valarray_product<_Tp>): Here. Use first
element to initialize accumulator.
(__valarray_product(const valarray<size_t>&)): Remove const_cast made
unnecessary by LWG 389.
* testsuite/26_numerics/valarray/87641.cc: New test.

From-SVN: r265270

6 years agoi386.c (ix86_builtin_vectorization_cost): Do not feed width-specific load/store costs...
Richard Biener [Thu, 18 Oct 2018 14:31:29 +0000 (14:31 +0000)]
i386.c (ix86_builtin_vectorization_cost): Do not feed width-specific load/store costs through ix86_vec_cost.

2018-10-18  Richard Biener  <rguenther@suse.de>

* config/i386/i386.c (ix86_builtin_vectorization_cost): Do not
feed width-specific load/store costs through ix86_vec_cost.
* config/i386/x86-tune-costs.h (athlon_cost): Adjust.
(k8_cost): Likewise.
(bdver_cost): Likewise.
(znver1_cost): Likewise.
(btver1_cost): Likewise.
(btver2_cost): Likewise.

From-SVN: r265268

6 years agoCall simplify_gen_subreg to simplify subreg of vec_merge
H.J. Lu [Thu, 18 Oct 2018 12:34:13 +0000 (12:34 +0000)]
Call simplify_gen_subreg to simplify subreg of vec_merge

Simplify
(subreg (vec_merge (X)
   (vector)
   (const_int ((1 << N) | M)))
(N * sizeof (outermode)))
to
(subreg (X) (N * sizeof (outermode)))

* simplify-rtx.c (simplify_subreg): Call simplify_gen_subreg
to simplify subreg of vec_merge.

From-SVN: r265267

6 years agoi386.c: Fix costing of vector FMA.
Richard Biener [Thu, 18 Oct 2018 12:19:44 +0000 (12:19 +0000)]
i386.c: Fix costing of vector FMA.

2018-10-18  Richard Biener  <rguenther@suse.de>

* config/i386/i386.c: Fix costing of vector FMA.

From-SVN: r265266

6 years agoi386.c (ix86_vec_cost): Remove !parallel path and argument.
Richard Biener [Thu, 18 Oct 2018 11:47:51 +0000 (11:47 +0000)]
i386.c (ix86_vec_cost): Remove !parallel path and argument.

2018-10-18  Richard Biener  <rguenther@suse.de>

* config/i386/i386.c (ix86_vec_cost): Remove !parallel path
and argument.
(ix86_builtin_vectorization_cost): For vec_construct properly
cost insertion into SSE regs.
(...): Adjust calls to ix86_vec_cost.

From-SVN: r265265

6 years agore PR fortran/58618 (Wrong code with character substring and ASSOCIATE)
Paul Thomas [Thu, 18 Oct 2018 10:37:39 +0000 (10:37 +0000)]
re PR fortran/58618 (Wrong code with character substring and ASSOCIATE)

2018-10-18  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/58618
* trans-stmt.c (trans_associate_var): All strings that return
as pointer types can be assigned directly to the associate
name so remove 'attr' and the condition that uses it.

2018-10-18  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/58618
* gfortran.dg/associate_45.f90 : New test.

From-SVN: r265264

6 years agore PR fortran/58618 (Wrong code with character substring and ASSOCIATE)
Paul Thomas [Thu, 18 Oct 2018 10:33:25 +0000 (10:33 +0000)]
re PR fortran/58618 (Wrong code with character substring and ASSOCIATE)

2018-10-18  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/58618
* trans-decl.c (gfc_get_symbol_decl): Deal correctly with the
initialization with NULL() of a deferred length pointer.

2018-10-18  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/58618
* gfortran.dg/deferred_character_30.f90 : New test.

From-SVN: r265263

6 years agore PR tree-optimization/87087 (Optimization hangs up and consumes over 15Gb of memory)
Richard Biener [Thu, 18 Oct 2018 08:40:54 +0000 (08:40 +0000)]
re PR tree-optimization/87087 (Optimization hangs up and consumes over 15Gb of memory)

2018-10-18  Richard Biener  <rguenther@suse.de>

PR middle-end/87087
Revert
2018-02-07  Richard Biener  <rguenther@suse.de>

        PR tree-optimization/84204
        * tree-chrec.c (chrec_fold_plus_1): Remove size limiting in
        this place.

* gcc.dg/torture/pr87087.c: New testcase.
* gcc.dg/graphite/pr84204.c: XFAIL.
* gcc.dg/graphite/pr85935.c: Likewise.

From-SVN: r265261

6 years agoSimplify subreg of vec_merge of vec_duplicate
H.J. Lu [Thu, 18 Oct 2018 08:18:42 +0000 (08:18 +0000)]
Simplify subreg of vec_merge of vec_duplicate

We can simplify

  (subreg (vec_merge (vec_duplicate X)
     (vector)
     (const_int ((1 << N) | M)))
  (N * sizeof (X)))

to X when mode of X is the same as of mode of subreg.

gcc/

PR target/87537
* simplify-rtx.c (simplify_subreg): Simplify subreg of vec_merge
of vec_duplicate.
(test_vector_ops_duplicate): Add test for a scalar subreg of a
VEC_MERGE of a VEC_DUPLICATE.

gcc/testsuite/

PR target/87537
* gcc.target/i386/pr87537-1.c: New test.

From-SVN: r265260

6 years agorevert: [multiple changes]
François Dumont [Thu, 18 Oct 2018 05:36:02 +0000 (05:36 +0000)]
revert: [multiple changes]

2018-10-18  François Dumont  <fdumont@gcc.gnu.org>

Partial revert.
2018-10-08  François Dumont  <fdumont@gcc.gnu.org>

* include/debug/list (list<>::cbegin()): Use C++11 direct
initialization.
(list<>::cend()): Likewise.
(list<>::erase(const_iterator, const_iterator)): Ensure consistent
iterator comparisons.
(list<>::splice(const_iterator, list&&, const_iterator,
const_iterator)): Likewise.

Partial revert.
2018-10-15  François Dumont  <fdumont@gcc.gnu.org>

* include/debug/vector (vector<>::cbegin()): Use C++11 direct
initialization.
(vector<>::cend()): Likewise.
(vector<>::insert(const_iterator, const _Tp&)): Use consistent
iterator comparison.
(vector<>::erase(const_iterator)): Likewise.
(vector<>::erase(const_iterator, const_iterator)): Likewise.

From-SVN: r265259

6 years agoDaily bump.
GCC Administrator [Thu, 18 Oct 2018 00:16:50 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r265255

6 years agoAdd -std=c2x, -std=gnu2x, -Wc11-c2x-compat, C2X _Static_assert support.
Joseph Myers [Wed, 17 Oct 2018 23:58:54 +0000 (00:58 +0100)]
Add -std=c2x, -std=gnu2x, -Wc11-c2x-compat, C2X _Static_assert support.

Now new features are starting to be added to a C2X draft (in the C2x
branch of the C standard git repository, no public WG14 document yet),
it's time to add -std=c2x and associated options to GCC for use in
enabling C2X features.

This patch adds the expected set of options: -std=c2x, -std=gnu2x,
-Wc11-c2x-compat.  A first C2X feature is added (the only one so far
in the repository that's obviously relevant to GCC): support (as in
C++) for the string constant to be omitted in _Static_assert.  This
feature is duly also supported as an extension in earlier standard
modes (diagnosed with -pedantic, unless -Wno-c11-c2x-compat is given,
or with -Wc11-c2x-compat even in C2X mode).

Bootstrapped with no regressions on x86_64-pc-linux-gnu.

gcc/
* doc/cpp.texi (__STDC_VERSION__): Document C2X handling.
* doc/invoke.texi (-std=c2x, -std=gnu2x): Document new options.
* doc/standards.texi (C Language): Document C2X.
* dwarf2out.c (highest_c_language), config/rl78/rl78.c
(rl78_option_override): Handle "GNU C2X" language name.

gcc/c/
* c-errors.c (pedwarn_c11): New function.
* c-parser.c (disable_extension_diagnostics): Save
warn_c11_c2x_compat and set it to 0.
(restore_extension_diagnostics): Restore warn_c11_c2x_compat.
(c_parser_static_assert_declaration_no_semi): Handle
_Static_assert without string constant.
* c-tree.h (pedwarn_c11): New prototype.

gcc/c-family/
* c-common.c (flag_isoc2x): New variable.
* c-common.h (clk_c): Update comment to reference C2X.
(flag_isoc99, flag_isoc11): Update comments to reference future
standard versions in general.
(flag_isoc2x): Declare.
* c-opts.c (set_std_c2x): New function.
(c_common_handle_option): Handle -std=c2x and -std=gnu2x.
(set_std_c89, set_std_c99, set_std_c11, set_std_c17): Set
flag_isoc2x to 0.
* c.opt (Wc11-c2x-compat, std=c2x, std=gnu2x): New options.

gcc/testsuite/
* gcc.dg/c11-static-assert-7.c, gcc.dg/c11-static-assert-8.c,
gcc.dg/c11-static-assert-9.c, gcc.dg/c2x-static-assert-1.c,
gcc.dg/c2x-static-assert-2.c, gcc.dg/c99-static-assert-2.c,
gcc.dg/gnu2x-static-assert-1.c: New tests.
* gcc.dg/missing-symbol-3.c: Update expected fix-it text.

libcpp/
* include/cpplib.h (enum c_lang): Add CLK_GNUC2X and CLK_STDC2X.
* init.c (lang_defaults): Add GNUC2X and STDC2X entries.
(cpp_init_builtins): Define __STDC_VERSION__ to 202000L for C2X.

From-SVN: r265251

6 years agoUpdate C17 option descriptions not to say "expected to be published".
Joseph Myers [Wed, 17 Oct 2018 21:41:42 +0000 (22:41 +0100)]
Update C17 option descriptions not to say "expected to be published".

* c.opt (std=c17, std=c18, std=gnu17, std=gnu18, std=iso9899:2017)
(std=iso9899:2018): Document C17 as published in 2018.

From-SVN: r265250

6 years agoUpdate manual references for C17 having been published.
Joseph Myers [Wed, 17 Oct 2018 21:33:30 +0000 (22:33 +0100)]
Update manual references for C17 having been published.

This patch makes references in the manual to C17 reflect it having
been published in July 2018.  (For the reasons it took so long to get
to ballot and publication, see the WG14 convenor's report to the last
SC22 plenary - SC22 N5297 - where it references "A troubling new trend
where ISO CS has begun enforcing undocumented rules that are approved
neither by the TMB nor by the WG 14 editors, leading to a decrease in
the usefulness of standards documents.".)

Tested with "make info html pdf".

* doc/invoke.texi (-std=c17), doc/standards.texi (C Language):
Document C17 as published in 2018.

From-SVN: r265249

6 years agoFix select-type regression
Tobias Burnus [Wed, 17 Oct 2018 19:58:58 +0000 (21:58 +0200)]
Fix select-type regression

        PR fortran/87632
        * resolve.c (resolve_select_type): Use correct variable.

        PR fortran/87632
        * gfortran.dg/select_type_47.f90: New.

From-SVN: r265248

6 years agore PR libstdc++/87619 (sizeof(std::variant) can be reduced if its variant_size is...
Ville Voutilainen [Wed, 17 Oct 2018 19:08:51 +0000 (22:08 +0300)]
re PR libstdc++/87619 (sizeof(std::variant) can be reduced if its variant_size is UCHAR_MAX)

PR libstdc++/87619

* include/std/variant (__select_index): Fix an off-by-one.
* testsuite/20_util/variant/87619.cc: New.

From-SVN: r265247

6 years agolibgcc: apply LIB2FUNCS_EXCLUDE logic to LIB2FUNCS_ST
Rasmus Villemoes [Wed, 17 Oct 2018 18:39:48 +0000 (20:39 +0200)]
libgcc: apply LIB2FUNCS_EXCLUDE logic to LIB2FUNCS_ST

One target file (config/c6x/t-elf) lists _printf and _gcc_bcmp in
LIB2FUNCS_EXCLUDE, but that does not have any effect, since those are
not filtered away from LIB2FUNCS_ST. Another option is to do as in
config/rl78/t-rl78, which explicitly sets LIB2FUNCS_ST

# Remove __gcc_bcmp from LIB2FUNCS_ST
LIB2FUNCS_ST = _eprintf

but honouring LIB2FUNCS_EXCLUDE also for LIB2FUNCS_ST seems more
natural.

From-SVN: r265246

6 years agore PR middle-end/87623 (bytes swapped in register when comparing cause fail when...
Eric Botcazou [Wed, 17 Oct 2018 17:49:28 +0000 (17:49 +0000)]
re PR middle-end/87623 (bytes swapped in register when comparing cause fail when compiled with  -O1 or higher)

PR middle-end/87623
* fold-const.c (fold_truth_andor_1): If the right side is not constant,
bail out if both sides do not have the same storage order.

From-SVN: r265242

6 years agobitmap.c (bitmap_head::dump): New.
Aldy Hernandez [Wed, 17 Oct 2018 15:59:25 +0000 (15:59 +0000)]
bitmap.c (bitmap_head::dump): New.

* bitmap.c (bitmap_head::dump): New.
* bitmap.h (bitmap_head): Add dump().
* gimple-ssa-evrp-analyze.c
(evrp_range_analyzer::try_find_new_range): Adjust for value_range API.
(evrp_range_analyzer::set_ssa_range_info): Same.
(evrp_range_analyzer::record_ranges_from_phis): Same.
(evrp_range_analyzer::record_ranges_from_stmt): Same.
* gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Same.
* gimple-ssa-sprintf.c (get_int_range): Same.
(format_integer): Same.
(sprintf_dom_walker::handle_gimple_call): Same.
* ipa-cp.c (ipcp_vr_lattice::meet_with_1): Same.
(ipcp_vr_lattice::top_p): Same.
(ipcp_vr_lattice::bottom_p): Same.
(ipcp_vr_lattice::set_to_bottom): Same.
(ipa_vr_operation_and_type_effects): Same.
(propagate_vr_across_jump_function): Same.
(ipcp_store_vr_results): Same.
* ipa-prop.c (struct ipa_vr_ggc_hash_traits): Same.
(ipa_print_node_jump_functions_for_edge): Same.
(ipa_get_value_range): Same.
(ipa_compute_jump_functions_for_edge): Same.
(ipa_write_jump_function): Same.
* tree-ssa-dom.c (simplify_stmt_for_jump_threading): Same.
* tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
Same.
* vr-values.c (set_value_range_to_nonnegative): Same.
(set_value_range_to_truthvalue): Same.
(vr_values::get_value_range): Same.
(vr_values::set_defs_to_varying): Same.
(vr_values::update_value_range): Same.
(symbolic_range_based_on_p): Same.
(vr_values::op_with_boolean_value_range_p): Same.
(vr_values::extract_range_for_var_from_comparison_expr): Same.
(vr_values::extract_range_from_ssa_name): Same.
(vr_values::extract_range_from_binary_expr): Same.
(vr_values::extract_range_from_unary_expr): Same.
(vr_values::extract_range_from_cond_expr): Same.
(vr_values::extract_range_from_comparison): Same.
(vr_values::check_for_binary_op_overflow): Same.
(vr_values::extract_range_basic): Same.
(vr_values::extract_range_from_assignment): Same.
(compare_ranges): Same.
(compare_range_with_value): Same.
(vr_values::adjust_range_with_scev): Same.
(vrp_valueize): Same.
(vrp_valueize_1): Same.
(vr_values::get_vr_for_comparison): Same.
(vr_values::compare_name_with_value): Same.
(vr_values::compare_names): Same.
(vr_values::vrp_evaluate_conditional): Same.
(find_case_label_ranges): Same.
(vr_values::vrp_visit_switch_stmt): Same.
(vr_values::extract_range_from_phi_node): Same.
(vr_values::simplify_div_or_mod_using_ranges): Same.
(vr_values::simplify_bit_ops_using_ranges): Same.
(test_for_singularity): Same.
(range_fits_type_p): Same.
(vr_values::simplify_cond_using_ranges_1): Same.
(vr_values::simplify_switch_using_ranges): Same.
(vr_values::simplify_float_conversion_using_ranges): Same.
(vr_values::two_valued_val_range_p): Same.
(vr_values::add_equivalence): Move to value_range::equiv_add.
* vr-values.h (vr_values::add_equivalence): Remove.
(VR_INITIALIZER): Remove.
* tree-vrp.c (value_range::set): New.
(value_range::equiv_add): New.
(value_range::value_range): New.
(value_range::deep_copy): New.
(value_range::check): New.
(value_range::equal_p): New.
(value_range::ignore_equivs_equal_p): New.
(value_range::operator==): New.
(value_range::operator!=): New.
(value_range::symbolic_p): New.
(value_range::numeric_p): New.
(value_range::set_undefined): New.
(value_range::set_varying): New.
(value_range::may_contain_p): New.
(value_range::equiv_clear): New.
(value_range::singleton_p): New.
(value_range::intersect): New.
(value_range::dump): New.
(value_range::set_and_canonicalize): New.
(set_value_range): Adjust for value_range API.
(set_value_range_to_undefined): Same.
(set_value_range_to_varying): Same.
(set_and_canonicalize_value_range): Same.
(set_value_range_to_nonnull): Same.
(set_value_range_to_null): Same.
(range_is_null): Same.
(range_is_nonnull): Same.
(range_int_cst_p): Same.
(range_int_cst_singleton_p): Same.
(symbolic_range_p): Same.
(range_includes_zero_p): Same.
(value_range_constant_singleton): Same.
(vrp_set_zero_nonzero_bits): Same.
(ranges_from_anti_range): Same.
(extract_range_into_wide_ints): Same.
(extract_range_from_multiplicative_op): Same.
(set_value_range_with_overflow): Same.
(extract_range_from_binary_expr_1): Same.
(extract_range_from_unary_expr): Same.
(dump_value_range): Same.
(debug_value_range): Same.
(vrp_prop::check_array_ref): Same.
(vrp_prop::check_mem_ref): Same.
(vrp_prop::vrp_initialize): Same.
(vrp_prop::visit_stmt): Same.
(intersect_ranges): Same.
(vrp_prop::visit_phi): Same.
(vrp_prop::vrp_finalize): Same.
(determine_value_range_1): Same.
(determine_value_range): Same.
(vrp_intersect_ranges_1): Rename to...
(vrp_intersect_1): this.
(vrp_intersect_ranges): Rename to...
(value_range::intersect_helper): ...this.
(vrp_meet_1): Rename to...
(value_range::union_helper): ...this.
(vrp_meet): Rename to...
(value_range::union_): ...this.
(copy_value_range): Remove.
* tree-vrp.h (struct value_range): Rewrite into a proper class.
(value_range::vrtype): New.
(value_range::type): New.
(value_range::equiv): New.
(value_range::min): New.
(value_range::max): New.
(value_range::varying_p): New.
(value_range::undefined_p): New.
(value_range::null_p): New.
(value_range::equiv_add): New.
(copy_value_range): Remove.

From-SVN: r265241

6 years agoRun selftests for C++ as well as C
David Malcolm [Wed, 17 Oct 2018 13:56:05 +0000 (13:56 +0000)]
Run selftests for C++ as well as C

gcc/ChangeLog:
* Makefile.in (SELFTEST_TARGETS): New.
(selftest) Change from s-selftest-c to $(SELFTEST_TARGETS).
(C_SELFTEST_FLAGS, C_SELFTEST_DEPS, s-selftest-c, selftest-c-gdb)
(selftest-gdb, selftest-c-valgrind, selftest-valgrind): Move to
c/Make-lang.in.
(CPP_SELFTEST_FLAGS, CPP_SELFTEST_DEPS, s-selftest-c++)
(selftest-c++-gdb, selftest-c++-valgrind): Move to
cp/Make-lang.in.
* configure: Regenerate.
* configure.ac (selftest_languages): New.

gcc/brig/ChangeLog:
* Make-lang.in (selftest-brig): New.

gcc/c/ChangeLog:
* Make-lang.in (selftest-c): New.
(C_SELFTEST_FLAGS, C_SELFTEST_DEPS, s-selftest-c, selftest-c-gdb)
(selftest-gdb, selftest-c-valgrind, selftest-valgrind): Move here
from gcc/Makefile.in.

gcc/cp/ChangeLog:
* Make-lang.in (selftest-c++): New.
(CPP_SELFTEST_FLAGS, CPP_SELFTEST_DEPS, s-selftest-c++)
(selftest-c++-gdb, selftest-c++-valgrind): Move here from
gcc/Makefile.in.

gcc/fortran/ChangeLog:
* Make-lang.in (selftest-fortran): New.

gcc/go/ChangeLog:
* Make-lang.in (selftest-go): New.

gcc/jit/ChangeLog:
* Make-lang.in (selftest-jit): New.

gcc/lto/ChangeLog:
* Make-lang.in (selftest-lto): New.

gcc/objc/ChangeLog:
* Make-lang.in (selftest-objc): New.

gcc/objcp/ChangeLog:
* Make-lang.in (selftest-obj-c++): New.

From-SVN: r265240

6 years agotree-vrp.c (extract_range_from_multiplicative_op): Remove overflow wraps argument.
Aldy Hernandez [Wed, 17 Oct 2018 12:32:08 +0000 (12:32 +0000)]
tree-vrp.c (extract_range_from_multiplicative_op): Remove overflow wraps argument.

        * tree-vrp.c (extract_range_from_multiplicative_op): Remove
overflow wraps argument.
        (extract_range_from_binary_expr_1): Do not pass overflow wraps to
wide_int_range_multiplicative_op.
        * wide-int-range.cc (wide_int_range_mult_wrapping): Remove
overflow wraps argument.
        (wide_int_range_multiplicative_op): Same.
        (wide_int_range_lshift): Same.
        (wide_int_range_div): Same.
        * wide-int-range.h (wide_int_range_multiplicative_op): Same.
        (wide_int_range_lshift): Same.
        (wide_int_range_div): Same.

From-SVN: r265238

6 years agowide-int-range.h (wide_int_range_shift_undefined_p): Adjust to use sign as argument.
Aldy Hernandez [Wed, 17 Oct 2018 12:31:58 +0000 (12:31 +0000)]
wide-int-range.h (wide_int_range_shift_undefined_p): Adjust to use sign as argument.

* wide-int-range.h (wide_int_range_shift_undefined_p): Adjust to
use sign as argument.
* tree-vrp.c (extract_range_from_binary_expr_1): Pass sign to
wide_int_range_shift_undefined_p.

From-SVN: r265237

6 years ago2018-10-17 Paolo Carlini <paolo.carlini@oracle.com>
Paolo Carlini [Wed, 17 Oct 2018 07:34:28 +0000 (07:34 +0000)]
2018-10-17  Paolo Carlini  <paolo.carlini@oracle.com>

* Fix typo in ChangeLog.

From-SVN: r265234

6 years agore PR c++/84705 (internal compiler error: in add_stmt, at cp/semantics.c:390)
Paolo Carlini [Wed, 17 Oct 2018 07:32:15 +0000 (07:32 +0000)]
re PR c++/84705 (internal compiler error: in add_stmt, at cp/semantics.c:390)

/cp
2018-10-17  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/84705
* init.c (build_cplus_new): Avoid duplicate diagnostic about
incomplete type, early return error_mark_node if the second
argument is error_mark_node.

/testsuite
2018-10-17  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/84705
* g++.dg/cpp0x/pr84705.C: New.

From-SVN: r265233

6 years agore PR fortran/56386 ([F03] ICE with ASSOCIATE construct and an derived type array...
Paul Thomas [Wed, 17 Oct 2018 07:16:16 +0000 (07:16 +0000)]
re PR fortran/56386 ([F03] ICE with ASSOCIATE construct and an derived type array component)

2018-10-17  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/56386
PR fortran/58906
PR fortran/77385
PR fortran/80260
PR fortran/82077
* resolve.c (resolve_variable): Fix up expressions with array
associate names, where the parser did not detect that this is
array and there was no array part_ref in the expression.

2018-10-17  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/56386
PR fortran/58906
PR fortran/77385
* gfortran.dg/associate_44.f90 : New test.

PR fortran/80260
* gfortran.dg/select_type_45.f90 : New test.

PR fortran/82077
* gfortran.dg/select_type_46.f90 : New test.

From-SVN: r265232

6 years agoDaily bump.
GCC Administrator [Wed, 17 Oct 2018 00:17:01 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r265228

6 years ago* es.po: Update.
Joseph Myers [Wed, 17 Oct 2018 00:10:29 +0000 (01:10 +0100)]
* es.po: Update.

From-SVN: r265223

6 years agoFix regression in std::random_device default constructor
Jonathan Wakely [Tue, 16 Oct 2018 22:42:39 +0000 (23:42 +0100)]
Fix regression in std::random_device default constructor

When the default constructor was split out into a separate function (in
r261522) I accidentally  made it call _M_init("mt19937") instead of
_M_init_pretr1("mt19937"). That means it will always throw an exception,
because "mt19937" isn't a valid token accepted by the _M_init function.
Restore the original behaviour by calling _M_init_pretr1("mt19937").

* include/bits/random.h (random_device) [!_GLIBCXX_USE_DEV_RANDOM]:
Fix default constructor to call correct function.

From-SVN: r265218

6 years agoExtend source-expr test case
Tobias Burnus [Tue, 16 Oct 2018 21:07:31 +0000 (23:07 +0200)]
Extend source-expr test case

        PR fortran/67125
        * gfortran.dg/allocate_with_source_26.f90: Extend
        testcase with polymorphic variables.

From-SVN: r265215

6 years agoFix bounds with ALLOCATE with source-expr
Tobias Burnus [Tue, 16 Oct 2018 18:37:08 +0000 (20:37 +0200)]
Fix bounds with ALLOCATE with source-expr

        PR fortran/67125
        * trans-array.c (gfc_array_init_size, gfc_array_allocate):
        Rename argument e3_is_array_constr to e3_has_nodescriptor
        and update comments.
        * trans-stmt.c (gfc_trans_allocate): Also fix lower bound
        to 1 for nonalloc/nonpointer func results/vars besides
        array constructors.

        PR fortran/67125
        * gfortran.dg/allocate_with_source_26.f90: New.

From-SVN: r265212

6 years agoHandle form_team w/ function args
Tobias Burnus [Tue, 16 Oct 2018 18:32:11 +0000 (20:32 +0200)]
Handle form_team w/ function args

        PR fortran/87556
        * trans-stmt.c (form_team, change_team, sync_team):
        Don't ignore argse.pre/argse.post.

From-SVN: r265211

6 years ago[AArch64] Use @ pattern to eliminate switch statement in one more place
Kyrylo Tkachov [Tue, 16 Oct 2018 17:28:56 +0000 (17:28 +0000)]
[AArch64] Use @ pattern to eliminate switch statement in one more place

We can use the new '@' modifier to MD patterns to generate mode-parametrised gen_ functions
for the despeculate_copy patterns and therefore remove the switch on modes in aarch64.c
that is used to pick the right generator. This simplifies the code.

* config/aarch64/aarch64.md (despeculate_copy<ALLI_TI:mode>):
Rename to...
(@despeculate_copy<ALLI_TI:mode>): ... This.
* config/aarch64/aarch64.c (aarch64_speculation_safe_value): Remove
switch statement.

From-SVN: r265210

6 years agoRename namespace alias in test to avoid name collision
Jonathan Wakely [Tue, 16 Oct 2018 16:13:00 +0000 (17:13 +0100)]
Rename namespace alias in test to avoid name collision

* testsuite/experimental/net/internet/address/v4/creation.cc: Do not
declare ip in global namespace, to avoid collision with struct ip
defined in <netinet/ip.h>.

From-SVN: r265205

6 years agoFix versioned namespace macros for Networking TS
Jonathan Wakely [Tue, 16 Oct 2018 16:12:51 +0000 (17:12 +0100)]
Fix versioned namespace macros for Networking TS

We no longer put the versioned namespace macros on the innermost
namespace, but always nested directly below namespace std.

* include/experimental/bits/net.h: Move versioned namespace macros
to correct location.
* include/experimental/buffer: Likewise.
* include/experimental/executor: Likewise.
* include/experimental/internet: Likewise.
* include/experimental/io_context: Likewise.
* include/experimental/netfwd: Likewise.
* include/experimental/socket: Likewise.
* include/experimental/timer: Likewise.

From-SVN: r265204

6 years agoUse autoconf to check for features needed by Networking TS
Jonathan Wakely [Tue, 16 Oct 2018 16:12:32 +0000 (17:12 +0100)]
Use autoconf to check for features needed by Networking TS

* config.h.in: Regenerate.
* configure: Regenerate.
* configure.ac: Check for headers used by Networking TS.
* include/experimental/executor: Include <condition_variable>
instead of <mutex>.
* include/experimental/internet: Use autoconf macros for available
headers.  Include <sys/socket.h> for.  Remove <cstring> and use
__builtin_memcpy and __builtin_strchr.
(resolver_errc) [!_GLIBCXX_HAVE_NETDB_H]: Do not define.
(address_v4::to_string, address_v6::to_string)
[!_GLIBCXX_HAVE_ARPA_INET_H]: Likewise.
(basic_resolver_results) [!_GLIBCXX_HAVE_NETDB_H]: Make private
constructors report errors.
[!_GLIBCXX_HAVE_NETINET_TCP_H] (tcp::no_delay): Do not define.
* include/experimental/io_context: Likewise.
* include/experimental/socket: Likewise.
[!_GLIBCXX_HAVE_SYS_SOCKET_H, !_GLIBCXX_HAVE_POLL_H] (socket_base): Do
not define nested types when relevant header not available.
(__socket_impl::native_non_blocking) [!_GLIBCXX_HAVE_FCNTL_H]: Report
an error.
(__basic_socket_impl::open, __basic_socket_impl::local_endpoint)
(__basic_socket_impl::bind) [!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
(__basic_socket_impl::io_control) [!_GLIBCXX_HAVE_SYS_IOCTL_H]:
Likewise.
(basic_socket::at_mark, basic_socket::shutdown)
(basic_socket::remote_endpoint, basic_socket::connect)
(basic_socket::async_connect) [!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
(basic_socket::available) [_GLIBCXX_HAVE_SYS_IOCTL_H]: Check macro
for <sys/ioctl.h> availability.
(basic_socket::wait) [!_GLIBCXX_HAVE_POLL_H]: Likewise.
(basic_datagram_socket::receive, basic_datagram_socket::async_receive)
(basic_datagram_socket::receive_from)
(basic_datagram_socket::async_receive_from)
(basic_datagram_socket::send, basic_datagram_socket::async_send)
(basic_datagram_socket::send_to, basic_datagram_socket::async_send_to)
[!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
(basic_stream_socket::receive, basic_stream_socket::async_receive)
(basic_stream_socket::send, basic_stream_socket::async_send)
[!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
(basic_socket_acceptor::listen, basic_socket_acceptor::accept)
(basic_socket_acceptor::async_accept) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
Likewise.
(basic_socket_acceptor::wait) [!_GLIBCXX_HAVE_POLL_H]: Likewise.

From-SVN: r265203

6 years agoUse effective target in Networking TS tests
Jonathan Wakely [Tue, 16 Oct 2018 15:37:10 +0000 (16:37 +0100)]
Use effective target in Networking TS tests

* testsuite/experimental/net/headers.cc: Remove dg-options.
* testsuite/experimental/net/buffer/arithmetic.cc: Replace dg-options
with dg-do using effective target.
* testsuite/experimental/net/buffer/const.cc: Likewise.
* testsuite/experimental/net/buffer/creation.cc: Likewise.
* testsuite/experimental/net/buffer/mutable.cc: Likewise.
* testsuite/experimental/net/buffer/size.cc: Likewise.
* testsuite/experimental/net/buffer/traits.cc: Likewise.
* testsuite/experimental/net/execution_context/use_service.cc:
Likewise.
* testsuite/experimental/net/internet/address/v4/comparisons.cc:
Likewise.
* testsuite/experimental/net/internet/address/v4/cons.cc: Likewise.
* testsuite/experimental/net/internet/address/v4/creation.cc:
Likewise.
* testsuite/experimental/net/internet/address/v4/members.cc: Likewise.
* testsuite/experimental/net/internet/resolver/base.cc: Likewise.
* testsuite/experimental/net/internet/resolver/ops/lookup.cc:
Likewise.
* testsuite/experimental/net/internet/resolver/ops/reverse.cc:
Likewise.
* testsuite/experimental/net/timer/waitable/cons.cc: Likewise.
* testsuite/experimental/net/timer/waitable/dest.cc: Likewise.
* testsuite/experimental/net/timer/waitable/ops.cc: Likewise.

From-SVN: r265200

6 years agoAdd missing return
Jonathan Wakely [Tue, 16 Oct 2018 15:24:00 +0000 (16:24 +0100)]
Add missing return

* include/experimental/socket (basic_socket::at_mark): Add missing
return.

From-SVN: r265199

6 years agoDefine _GLIBCXX_USE_DEV_RANDOM as replacement for _GLIBCXX_USE_RANDOM_TR1
Jonathan Wakely [Tue, 16 Oct 2018 14:49:29 +0000 (15:49 +0100)]
Define _GLIBCXX_USE_DEV_RANDOM as replacement for _GLIBCXX_USE_RANDOM_TR1

Define and use a new macro with a more descriptive name. Only use the
old macro in <tr1/random.h>.

* acinclude.m4 (GLIBCXX_CHECK_RANDOM_TR1): Replace with ...
(GLIBCXX_CHECK_DEV_RANDOM): New macro with more descriptive name.
Define _GLIBCXX_USE_DEV_RANDOM as well as _GLIBCXX_USE_RANDOM_TR1.
* config.h.in: Regenerate.
* configure: Regenerate.
* configure.ac: Use GLIBCXX_CHECK_DEV_RANDOM instead of
GLIBCXX_CHECK_RANDOM_TR1.
crossconfig.m4: Likewise.
* include/bits/random.h (random_device): Use _GLIBCXX_USE_DEV_RANDOM
instead of _GLIBCXX_USE_RANDOM_TR1.
* testsuite/26_numerics/random/random_device/cons/token.cc: Likewise.

From-SVN: r265197

6 years agoIntroduce dg-add-options net_ts
Rainer Orth [Tue, 16 Oct 2018 12:27:52 +0000 (12:27 +0000)]
Introduce dg-add-options net_ts

* testsuite/lib/dg-options.exp (add_options_for_net_ts): New proc.
* testsuite/experimental/net/internet/address/v4/comparisons.cc:
Add dg-add-options net_ts.
* testsuite/experimental/net/internet/address/v4/cons.cc: Likewise.
* testsuite/experimental/net/internet/address/v4/creation.cc: Likewise.
* testsuite/experimental/net/internet/address/v4/members.cc: Likewise.
* testsuite/experimental/net/internet/resolver/base.cc: Likewise.
* testsuite/experimental/net/internet/resolver/ops/lookup.cc: Likewise.
* testsuite/experimental/net/internet/resolver/ops/reverse.cc: Likewise.

From-SVN: r265192

6 years agoFix tests that fail when compiled without optimisation
Jonathan Wakely [Tue, 16 Oct 2018 12:06:05 +0000 (13:06 +0100)]
Fix tests that fail when compiled without optimisation

* testsuite/20_util/duration/literals/range_neg.cc: Adjust pruned
diagnostic to account for quotes around 'constexpr'.
* testsuite/23_containers/deque/capacity/max_size.cc: Define static
variable.
* testsuite/23_containers/vector/capacity/max_size.cc: Likewise.

From-SVN: r265190

6 years agoPR libstdc++/87618 fix typos in linker script
Jonathan Wakely [Tue, 16 Oct 2018 11:14:37 +0000 (12:14 +0100)]
PR libstdc++/87618 fix typos in linker script

PR libstdc++/87618
* config/abi/pre/gnu.ver: Fix typos in patterns for basic_stringbuf.
* testsuite/27_io/basic_stringbuf/cons/char/default.cc: Disable
optimisation to check constructor definition can be linked to.
* testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc: Likewise.

From-SVN: r265188

6 years agofixincludes: vxworks: regs.h: Fix includes in regs.h wrapper
Rasmus Villemoes [Tue, 16 Oct 2018 09:40:27 +0000 (11:40 +0200)]
fixincludes: vxworks: regs.h: Fix includes in regs.h wrapper

A quick experiment reveals that this hack is needed for C code - simply
removing this hack entirely breaks the build of libstdc++, since
regs.h (more accurately, the cpu-specific header it pulls in) defines
structs in terms of types from vxTypesOld. Those definitions are
properly guarded by #ifndef _ASMLANGUAGE, but the cpu-files do not take
care to include vxTypesOld.h for the types they depend on.

But when using regs.h from some assembly file, the assembler chokes on
the typedefs in vxTypesOld.h. We can fix that by guarding the include of
vxTypesOld by !_ASMLANGUAGE. This should not affect existing C code.

Now, the OS' regs.h contains preprocessor conditionals such as

#if     CPU_FAMILY==I960
...
#endif  /* CPU_FAMILY==I960 */
#if     CPU_FAMILY==MC680X0
...
#endif  /* CPU_FAMILY==MC680X0 */

Without definitions of CPU_FAMILY, I960 etc., these would all be true,
which will not end well. Code using the fix-included regs.h
automatically get vxCpu.h via a chain of includes from vxTypesOld.h, but
we can make regs.h a little more self-contained for both C and asm users
by doing an explicit include of vxCpu.h.

From-SVN: r265187

6 years agoObsolete Solaris 10 support
Rainer Orth [Tue, 16 Oct 2018 08:50:48 +0000 (08:50 +0000)]
Obsolete Solaris 10 support

contrib:
* config-list.mk (LIST): Switch to i686-solaris2.11,
sparc64-sun-solaris2.11.

gcc:
* config.gcc: Obsolete *-*-solaris2.10*.
* doc/install.texi (Specific, *-*-solaris2*): Document it.

From-SVN: r265186

6 years agoDaily bump.
GCC Administrator [Tue, 16 Oct 2018 00:17:03 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r265183

6 years agoft32.md (ft32_general_movsrc_operand): Disable reg + sym +- const_int addressing...
Jeff Law [Mon, 15 Oct 2018 23:22:05 +0000 (17:22 -0600)]
ft32.md (ft32_general_movsrc_operand): Disable reg + sym +- const_int addressing modes.

* config/ft32/ft32.md (ft32_general_movsrc_operand): Disable
reg + sym +- const_int addressing modes.

From-SVN: r265179

6 years agodiagnostics: add minimum width to left margin for line numbers
David Malcolm [Mon, 15 Oct 2018 22:16:59 +0000 (22:16 +0000)]
diagnostics: add minimum width to left margin for line numbers

This patch adds a minimum width to the left margin used for printing
line numbers.   I set the default to 6.  Hence rather than:

some-filename:9:1: some message
9 | some source text
  | ^~~~~~~~~~~~~~~~
some-filename:10:1: another message
10 | more source text
   | ^~~~~~~~~~~~~~~~

we now print:

some-filename:9:42: some message
    9 | some source text
      | ^~~~~~~~~~~~~~~~
some-filename:10:42: another message
   10 | more source text
      | ^~~~~~~~~~~~~~~~

This implicitly fixes issues with margins failing to line up due
to different lengths of the number when we haven't read the full
file yet and so don't know the highest possible line number, for
line numbers up to 99999.

Doing so adds some whitespace on the left-hand side, for non-huge
files, at least.  I believe that this makes it easier to see where each
diagnostic starts, by visually breaking things up at the leftmost
column; my hope is to make it easier for the eye to see the different
diagnostics as if they were different "paragraphs".

gcc/ChangeLog:
* common.opt (fdiagnostics-minimum-margin-width=): New option.
* diagnostic-show-locus.c (layout::layout): Apply the minimum
margin width.
(layout::start_annotation_line): Only print up to 3 of the
margin character, to avoid touching the left-hand side.
(selftest::test_diagnostic_show_locus_fixit_lines): Update for
minimum margin width, as set by test_diagnostic_context's ctor.
(selftest::test_fixit_insert_containing_newline): Likewise.
(selftest::test_fixit_insert_containing_newline_2): Likewise.
(selftest::test_line_numbers_multiline_range): Clear
dc.min_margin_width.
* diagnostic.c (diagnostic_initialize): Initialize
min_margin_width.
* diagnostic.h (struct diagnostic_context): Add field
"min_margin_width".
* doc/invoke.texi: Add -fdiagnostics-minimum-margin-width=.
* opts.c (common_handle_option): Handle
OPT_fdiagnostics_minimum_margin_width_.
* selftest-diagnostic.c
(selftest::test_diagnostic_context::test_diagnostic_context):
Initialize min_margin_width to 6.
* toplev.c (general_init): Initialize global_dc->min_margin_width.

gcc/testsuite/ChangeLog:
* gcc.dg/missing-header-fixit-3.c: Update expected indentation
to reflect minimum margin width.
* gcc.dg/missing-header-fixit-4.c: Likewise.
* gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers.c:
Likewise.
* gcc.dg/plugin/diagnostic-test-show-locus-color-line-numbers.c:
Likewise.
* gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers-2.c:
New test.
* gcc.dg/plugin/plugin.exp (plugin_test_list): Add it.

From-SVN: r265178

6 years agoRemove stray reference to error_at_rich_loc
David Malcolm [Mon, 15 Oct 2018 22:09:51 +0000 (22:09 +0000)]
Remove stray reference to error_at_rich_loc

"error_at_rich_loc" went away in r254280 (in favor of overloading
"error_at"), but there was a stray reference in a comment.

Remove it.

gcc/ChangeLog:
* gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
Fix usage of "error_at_rich_loc" in the comment.

From-SVN: r265177

6 years agore PR fortran/87597 (wrong result with matmul inlining)
Tobias Burnus [Mon, 15 Oct 2018 18:58:17 +0000 (20:58 +0200)]
re PR fortran/87597 (wrong result with matmul inlining)

2018-10-15  Tobias Burnus  <burnus@net-b.de>

       PR fortran/87597
       * gfortran.dg/inline_matmul_24.f90: Tweak scan-tree.

From-SVN: r265175

6 years ago[PR87563][AARCH64-SVE]: Don't keep ifcvt loop when COND_<OP> ifn could not be vectorized.
Renlin Li [Mon, 15 Oct 2018 16:49:05 +0000 (16:49 +0000)]
[PR87563][AARCH64-SVE]: Don't keep ifcvt loop when COND_<OP> ifn could not be vectorized.

ifcvt will created versioned loop and it will permissively generate
scalar COND_<OP> ifn.

If in the loop vectorize pass, COND_<OP> could not get vectoized,
the if-converted loop should be abandoned when the target doesn't support
such ifn.

gcc/

2018-10-12  Renlin Li  <renlin.li@arm.com>

PR target/87563
* tree-vectorizer.c (try_vectorize_loop_1): Don't use
if-conversioned loop when it contains ifn with types not
supported by backend.
* internal-fn.c (expand_direct_optab_fn): Add an assert.
(direct_internal_fn_supported_p): New helper function.
* internal-fn.h (direct_internal_fn_supported_p): Declare.

gcc/testsuite/

2018-10-12  Renlin Li  <renlin.li@arm.com>

PR target/87563
* gcc.target/aarch64/sve/pr87563.c: New.

From-SVN: r265172

6 years agore PR fortran/87566 (ICE with class(*) and select)
Paul Thomas [Mon, 15 Oct 2018 16:31:15 +0000 (16:31 +0000)]
re PR fortran/87566 (ICE with class(*) and select)

2018-10-15  Paul Thomas  <pault@gcc.gnu.org>
    Tobias Burnus  <burnus@gcc.gnu.org>

PR fortran/87566
* resolve.c (resolve_assoc_var): Add missing array spec for
class associate names.
(resolve_select_type): Handle case where last typed component
of the selector has a different type to the expression.
* trans-expr.c (gfc_find_and_cut_at_last_class_ref): Replace
call to gfc_expr_to_initialize with call to gfc_copy_expr.
(gfc_conv_class_to_class): Guard assignment to 'len' field
against case where zero constant is supplied.

2018-10-15  Paul Thomas  <pault@gcc.gnu.org>
    Tobias Burnus  <burnus@gcc.gnu.org>

PR fortran/87566
* gfortran.dg/select_type_44.f90: New test.
* gfortran.dg/associate_42.f90: New test.

Co-Authored-By: Tobias Burnus <burnus@gcc.gnu.org>
From-SVN: r265171

6 years agore PR target/87572 (ICE in emit_move_insn, at expr.c:3722)
Jakub Jelinek [Mon, 15 Oct 2018 16:08:09 +0000 (18:08 +0200)]
re PR target/87572 (ICE in emit_move_insn, at expr.c:3722)

PR target/87572
* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_UNSET):
Remove OPTION_MASK_ISA_AVX5124FMAPS_UNSET and
OPTION_MASK_ISA_AVX5124VNNIW_UNSET.

From-SVN: r265169

6 years agoAdjust test to pass with latest glibc
Jonathan Wakely [Mon, 15 Oct 2018 13:55:42 +0000 (14:55 +0100)]
Adjust test to pass with latest glibc

Glibc changed the it_IT locales to use thousands separators,
invalidating this test. Use nl_NL instead, as Dutch only uses grouping
for money not numbers.

* testsuite/22_locale/numpunct/members/char/3.cc: Adjust test to
account for change to glibc it_IT localedata (glibc bz#10797).

From-SVN: r265165

6 years agoPR libstdc++/87587 prevent -Wabi warnings
Jonathan Wakely [Mon, 15 Oct 2018 12:58:51 +0000 (13:58 +0100)]
PR libstdc++/87587 prevent -Wabi warnings

The warnings about changes to empty struct parameter passing can be
ignored because the callers are all internal to the library, and so
compiled with the same -fabi-version as the function definitions.

It would be preferable to use #pragma GCC diagnostic warning "-Wabi=12"
to get warnings about any other ABI changes in future versions, but
until PR c++/87611 is fixed the warnings must be completely disabled
with #pragma GCC diagnostic ignroed "-Wabi".

PR libstdc++/87587
* src/c++11/cxx11-shim_facets.cc: Suppress -Wabi warnings.

From-SVN: r265163

6 years agore PR tree-optimization/87022 (miscompilation with -ftree-loop-distribution)
Bin Cheng [Mon, 15 Oct 2018 11:35:56 +0000 (11:35 +0000)]
re PR tree-optimization/87022 (miscompilation with -ftree-loop-distribution)

PR tree-optimization/87022
* tree-loop-distribution.c (pg_add_dependence_edges): Check all
bits in dist vector rather than the first one.

gcc/testsuite
PR tree-optimization/87022
* gcc.dg/tree-ssa/pr87022.c: New test.

From-SVN: r265161

6 years agore PR middle-end/87610 (wrong-code with restrict)
Richard Biener [Mon, 15 Oct 2018 10:58:28 +0000 (10:58 +0000)]
re PR middle-end/87610 (wrong-code with restrict)

2018-10-15  Richard Biener  <rguenther@suse.de>

PR middle-end/87610
* tree-ssa-structalias.c (struct vls_data): Add escaped_p member.
(visit_loadstore): When a used restrict tag escaped verify that
the points-to solution of "other" pointers do not include
escaped.
(compute_dependence_clique): If a used restrict tag escaped
communicated that down to visit_loadstore.

* gcc.dg/torture/restrict-6.c: New testcase.

From-SVN: r265160

6 years agoS/390: Fix problem with vec_init expander
Andreas Krebbel [Mon, 15 Oct 2018 08:07:13 +0000 (08:07 +0000)]
S/390: Fix problem with vec_init expander

gcc/ChangeLog:

2018-10-15  Andreas Krebbel  <krebbel@linux.ibm.com>

* config/s390/s390.c (s390_expand_vec_init): Force vector element
into reg if it isn't a general operand.

gcc/testsuite/ChangeLog:

2018-10-15  Andreas Krebbel  <krebbel@linux.ibm.com>

* g++.dg/vec-init-1.C: New test.

From-SVN: r265158

6 years agovector (vector<>::cbegin()): Use C++11 direct initialization.
François Dumont [Mon, 15 Oct 2018 05:24:51 +0000 (05:24 +0000)]
vector (vector<>::cbegin()): Use C++11 direct initialization.

2018-10-15  François Dumont  <fdumont@gcc.gnu.org>

* include/debug/vector (vector<>::cbegin()): Use C++11 direct
initialization.
(vector<>::cend()): Likewise.
(vector<>::emplace(const_iterator, _Args&&...)): Likewise and use
consistent iterator comparison.
(vector<>::insert(const_iterator, size_type, const _Tp&)): Likewise.
(vector<>::insert(const_iterator, _InputIterator, _InputIterator)):
Likewise.
(vector<>::erase(const_iterator)): Likewise.
(vector<>::erase(const_iterator, const_iterator)): Likewise.

From-SVN: r265156

6 years agoDaily bump.
GCC Administrator [Mon, 15 Oct 2018 00:16:53 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r265155

6 years agoi386: Add register source to movddup
H.J. Lu [Sun, 14 Oct 2018 20:39:05 +0000 (20:39 +0000)]
i386: Add register source to movddup

Add register source to movddup so that IRA will allow register source
for *vec_dupv2di when SSE3 is enabled.

gcc/

PR target/87599
* config/i386/sse.md (*vec_dupv2di): Add register source to
movddup.

gcc/testsuite/

PR target/87599
* gcc.target/i386/pr87599.c: New test.

From-SVN: r265151

6 years agoi386: Also disable AVX512IFMA/AVX5124FMAPS/AVX5124VNNIW
H.J. Lu [Sun, 14 Oct 2018 20:30:02 +0000 (20:30 +0000)]
i386: Also disable AVX512IFMA/AVX5124FMAPS/AVX5124VNNIW

Also disable AVX512IFMA, AVX5124FMAPS and AVX5124VNNIW when disabling
AVX512F.

gcc/

PR target/87572
* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_UNSET):
Add OPTION_MASK_ISA_AVX512IFMA_UNSET,
OPTION_MASK_ISA_AVX5124FMAPS_UNSET and
OPTION_MASK_ISA_AVX5124VNNIW_UNSET.

gcc/testsuite/

PR target/87572
* gcc.target/i386/pr87572.c: New test.

From-SVN: r265150

6 years ago* MAINTAINERS: Update my email address.
Bin Cheng [Sun, 14 Oct 2018 09:45:35 +0000 (09:45 +0000)]
* MAINTAINERS: Update my email address.

From-SVN: r265149

6 years agore PR fortran/83146 (ICE on SELECT CASE statement with associate name)
Paul Thomas [Sun, 14 Oct 2018 09:25:13 +0000 (09:25 +0000)]
re PR fortran/83146 (ICE on SELECT CASE statement with associate name)

2018-10-14  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/83146
* gfortran.dg/associate_43.f90: New test.

From-SVN: r265148

6 years agoThis patch adjusts one of the c-torture tests to account for the possible lack of...
Anthony Green [Sun, 14 Oct 2018 09:21:51 +0000 (09:21 +0000)]
This patch adjusts one of the c-torture tests to account for the possible lack of divide-by-zero exceptions on certain moxie targets.

From-SVN: r265147

6 years agoDaily bump.
GCC Administrator [Sun, 14 Oct 2018 00:16:37 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r265146

6 years agodwarf2cfi.c (struct dw_trace_info): Add args_size_defined_for_eh.
Eric Botcazou [Sat, 13 Oct 2018 17:32:07 +0000 (17:32 +0000)]
dwarf2cfi.c (struct dw_trace_info): Add args_size_defined_for_eh.

* dwarf2cfi.c (struct dw_trace_info): Add args_size_defined_for_eh.
(notice_args_size): Set it in the current trace if no insn that can
throw internally has been seen yet.
(connect_traces): When connecting args_size between traces, allow the
incoming values not to match if there is an insn setting it before the
first insn that can throw internally; in that case, force the creation
of a CFI note on this latter insn.

From-SVN: r265142

6 years agoFix compilation failure with C++98 compilers
Jonathan Wakely [Sat, 13 Oct 2018 11:19:09 +0000 (12:19 +0100)]
Fix compilation failure with C++98 compilers

* opt-problem.h (opt_wrapper): Use template-argument-list when naming
the base class, because using the injected-class-name was not clearly
specified until DR 176.

From-SVN: r265140

6 years agoDaily bump.
GCC Administrator [Sat, 13 Oct 2018 00:16:39 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r265139

6 years agotighten the toplevel guard on ibm-ldouble.c
Olivier Hainque [Fri, 12 Oct 2018 21:25:46 +0000 (21:25 +0000)]
tighten the toplevel guard on ibm-ldouble.c

2018-10-12  Olivier Hainque  <hainque@adacore.com>

        * config/rs6000/ibm-ldouble.c: Augment the toplevel guard with
        defined (__FLOAT128_TYPE__) || defined (__LONG_DOUBLE_128__).

From-SVN: r265135

6 years agopdp11.md (doloop_end): New expander.
Paul Koning [Fri, 12 Oct 2018 21:12:38 +0000 (17:12 -0400)]
pdp11.md (doloop_end): New expander.

    * config/pdp11/pdp11.md (doloop_end): New expander.
    (doloop_end_insn): renamed from "doloop_end".
    (addqi3): New pattern.
    (subqi3): New pattern.
    * config/pdp11/predicates.md (incdec_operand): New predicate.

From-SVN: r265132

6 years agoAdd pattern to remove useless float casts in comparisons.
Yury Gribov [Fri, 12 Oct 2018 20:35:20 +0000 (20:35 +0000)]
Add pattern to remove useless float casts in comparisons.

PR middle-end/81376

gcc/
* real.c (format_helper::can_represent_integral_type_p): New function
* real.h (format_helper::can_represent_integral_type_p): Ditto.
* match.pd: New pattern.

gcc/testsuite/
* c-c++-common/pr81376.c: New test.
* gcc.target/i386/387-ficom-2.c: Update test.
* gcc.target/i386/387-ficom-2.c: Ditto.

From-SVN: r265131

6 years agointroduce --enable-large-address-aware
Alexandre Oliva [Fri, 12 Oct 2018 20:11:27 +0000 (20:11 +0000)]
introduce --enable-large-address-aware

Add a configure knob for mingw32 and 64 toolchains to default passing
--large-address-aware to the linker, when creating 32-bit binaries.
-Wl,--disable-large-address-aware can still reverse its effects.

for  gcc/ChangeLog

* configure.ac: Introduce --enable-large-address-aware
to define MINGW_DEFAULT_LARGE_ADDR_AWARE.
* doc/install.texi: Document it.
* configure, config.in: Rebuilt.
* config/i386/mingw32.h (LINK_SPEC_LARGE_ADDR_AWARE): Define,
based on MINGW_DEFAULT_LARGE_ADDR_AWARE.
(LINK_SPEC): Insert it.
* config/i386/mingw-264.h: Likewise.

From-SVN: r265130

6 years agodefine HAVE_GAS_ALIGNED_COMM
Alexandre Oliva [Fri, 12 Oct 2018 20:11:16 +0000 (20:11 +0000)]
define HAVE_GAS_ALIGNED_COMM

HAVE_GAS_ALIGNED_COMM is referenced in an initializer in cygming.opt,
but it's not guaranteed to be defined by configure, so define it to
zero in a cygming-specific header if it's not defined.

for  gcc/ChangeLog

* cygming.h (HAVE_GAS_ALIGNED_COMM): Fallback-define.

From-SVN: r265129

6 years ago[C++ PATCH] more TU parsing refactoring
Nathan Sidwell [Fri, 12 Oct 2018 18:44:48 +0000 (18:44 +0000)]
[C++ PATCH] more TU parsing refactoring

https://gcc.gnu.org/ml/gcc-patches/2018-10/msg00788.html
* parser.h (struct cp_parser): Drop implicit_extern_c.
* parser.c (cp_debug_parser): Drop implicit_extern_c.
(cp_parser_new): Likewise.
(cp_parser_translation_unit): Handle implicit extern c here.  Call
cp_parser_toplevel_declaration.
(cp_parser_toplevel_declaration): New, broken out of ...
(cp_parser_declaration_seq_opt): ... here.  Call it.  Drop
implicit extern C handling.

From-SVN: r265127

6 years agoFix off-by-one issue with inline matmul
Tobias Burnus [Fri, 12 Oct 2018 18:18:13 +0000 (20:18 +0200)]
Fix off-by-one issue with inline matmul

        PR fortran/87597
        * expr.c (gfc_simplify_expr): Avoid simplifying
        the 'array' argument to lbound/ubound/lcobound/
        ucobound.

        PR fortran/87597
        * gfortran.dg/inline_matmul_24.f90: New.

From-SVN: r265126

6 years agoFix error-recovery ICE in check_proc_interface
Tobias Burnus [Fri, 12 Oct 2018 18:13:25 +0000 (20:13 +0200)]
Fix error-recovery ICE in check_proc_interface

        PR fortran/58787
        * decl.c (get_proc_name): Return with error before
        creating sym_tree.

        PR fortran/58787
        * gfortran.dg/goacc/pr77765.f90: Modify dg-error.
        * gfortran.dg/interface_42.f90: Ditto.
        * gfortran.dg/internal_references_1.f90: Ditto.
        * gfortran.dg/invalid_procedure_name.f90: Ditto.
        * gfortran.dg/pr65453.f90: Ditto.
        * gfortran.dg/pr77414.f90: Ditto.
        * gfortran.dg/pr78741.f90: Ditto.
        * gfortran.dg/same_name_2.f90: Ditto.

From-SVN: r265125

6 years agore PR rtl-optimization/87600 (Fix for PRs 86939 and 87479 causes build issues for...
Peter Bergner [Fri, 12 Oct 2018 16:31:11 +0000 (16:31 +0000)]
re PR rtl-optimization/87600 (Fix for PRs 86939 and 87479 causes build issues for several targets)

PR rtl-optimization/87600
* ira-lives (non_conflicting_reg_copy_p): Disable for non LRA targets.

From-SVN: r265113

6 years agomd.texi (doloop_end): Document that the pattern code may need to check operand mode.
Paul Koning [Fri, 12 Oct 2018 13:50:15 +0000 (09:50 -0400)]
md.texi (doloop_end): Document that the pattern code may need to check operand mode.

* doc/md.texi (doloop_end): Document that the pattern code may
need to check operand mode.

From-SVN: r265102

6 years agoInitial commit of Networking TS implementation
Jonathan Wakely [Fri, 12 Oct 2018 10:50:15 +0000 (11:50 +0100)]
Initial commit of Networking TS implementation

* include/Makefile.am: Add new headers.
* include/Makefile.in: Regenerate.
* include/experimental/bits/net.h: New header for common
implementation details of Networking TS.
* include/experimental/buffer: New header.
* include/experimental/executor: New header.
* include/experimental/internet: New header.
* include/experimental/io_context: New header.
* include/experimental/net: New header.
* include/experimental/netfwd: New header.
* include/experimental/socket: New header.
* include/experimental/timer: New header.
* testsuite/experimental/net/buffer/arithmetic.cc: New test.
* testsuite/experimental/net/buffer/const.cc: New test.
* testsuite/experimental/net/buffer/creation.cc: New test.
* testsuite/experimental/net/buffer/mutable.cc: New test.
* testsuite/experimental/net/buffer/size.cc: New test.
* testsuite/experimental/net/buffer/traits.cc: New test.
* testsuite/experimental/net/execution_context/use_service.cc: New
test.
* testsuite/experimental/net/headers.cc: New test.
* testsuite/experimental/net/internet/address/v4/comparisons.cc: New
test.
* testsuite/experimental/net/internet/address/v4/cons.cc: New test.
* testsuite/experimental/net/internet/address/v4/creation.cc: New
test.
* testsuite/experimental/net/internet/address/v4/members.cc: New
test.
* testsuite/experimental/net/internet/resolver/base.cc: New test.
* testsuite/experimental/net/internet/resolver/ops/lookup.cc: New
test.
* testsuite/experimental/net/internet/resolver/ops/reverse.cc: New
test.
* testsuite/experimental/net/timer/waitable/cons.cc: New test.
* testsuite/experimental/net/timer/waitable/dest.cc: New test.
* testsuite/experimental/net/timer/waitable/ops.cc: New test.

From-SVN: r265080

6 years ago[AArch64] Support zero-extended move to FP register
Wilco Dijkstra [Fri, 12 Oct 2018 10:49:27 +0000 (10:49 +0000)]
[AArch64] Support zero-extended move to FP register

The popcount expansion uses SIMD instructions acting on 64-bit values.
As a result a popcount of a 32-bit integer requires zero-extension before
moving the zero-extended value into an FP register.  This patch adds
support for zero-extended int->FP moves to avoid the redundant uxtw.
Similarly, add support for 32-bit zero-extending load->FP register
and 32-bit zero-extending FP->FP and FP->int moves.
Add a missing 'fp' arch attribute to the related 8/16-bit pattern and
fix an incorrect type attribute.

To complete zero-extended load support, add a new alternative to
load_pair_zero_extendsidi2_aarch64 to support LDP into FP registers too.

int f (int a)
{
  return __builtin_popcount (a);
}

Before:
uxtw x0, w0
fmov d0, x0
cnt v0.8b, v0.8b
addv b0, v0.8b
fmov w0, s0
ret

After:
fmov s0, w0
cnt v0.8b, v0.8b
addv b0, v0.8b
fmov w0, s0
ret

Passes regress & bootstrap on AArch64.

    gcc/
* config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Add alternatives
to zero-extend between int and floating-point registers.
(load_pair_zero_extendsidi2_aarch64): Add alternative for zero-extended
ldp into floating-point registers.  Add type and arch attributes.
(zero_extend<SHORT:mode><GPI:mode>2_aarch64): Add arch attribute.
Use f_loads for type attribute.

    testsuite/
* gcc.target/aarch64/popcnt.c: Test zero-extended popcount.
* gcc.target/aarch64/vec_zeroextend.c: Test zero-extended vectors.

From-SVN: r265079

6 years agoFix typo in previous commit.
Christophe Lyon [Fri, 12 Oct 2018 07:38:05 +0000 (07:38 +0000)]
Fix typo in previous commit.

2018-10-12  Christophe Lyon  <christophe.lyon@linaro.org>

PR c++/87364
* c-pretty-print.c (c_pretty_printer::constant): Fix typo.

From-SVN: r265078

6 years agore PR c++/87364 (Pretty print of enumerator never prints the id, always falls back...
Will Wray [Fri, 12 Oct 2018 03:35:48 +0000 (03:35 +0000)]
re PR c++/87364 (Pretty print of enumerator never prints the id, always falls back to C-style cast output)

PR c++/87364
* c-pretty-print.h (pp_c_type_cast): Prototype.
(pp_c_integer_constant): Likewise.
* c-pretty-print.c (pp_c_type_cast): No longer static.
(pp_c_integer_constant): Likewise.
(pp_c_enumeration_constant): Fix loop termination when finding
name of constant.  No longer returns a value.  Call
pp_c_integer_constant.
(c_pretty_printer::constant): Update for changes to
pp_c_enumeration_constant.

PR c++/87364
* cxx-pretty-print.c (pp_cxx_enumeration_constant): New function.
(cxx_pretty_printer::constant): Use it.

From-SVN: r265077

6 years agoextend.texi (attribute packed): Correct typos.
Martin Sebor [Fri, 12 Oct 2018 03:18:23 +0000 (03:18 +0000)]
extend.texi (attribute packed): Correct typos.

gcc/ChangeLog:

* doc/extend.texi (attribute packed): Correct typos.

From-SVN: r265076

6 years agoextend.texi (attribute flatten): Mention interaction with noinline.
Martin Sebor [Fri, 12 Oct 2018 03:16:10 +0000 (03:16 +0000)]
extend.texi (attribute flatten): Mention interaction with noinline.

gcc/ChangeLog:

* doc/extend.texi (attribute flatten): Mention interaction with
noinline.

From-SVN: r265075

6 years agore PR target/87156 (ICE building libstdc++ for mips64)
Jan Hubicka [Fri, 12 Oct 2018 02:40:17 +0000 (04:40 +0200)]
re PR target/87156 (ICE building libstdc++ for mips64)

PR target/87156
* cgraphclones.c (cgraph_node::create_version_clone_with_body):
Set new_decl virtual flag to zero.

From-SVN: r265074

6 years agoPR middle-end/87593 - conflicting format_arg attributes on a declaration accepted
Martin Sebor [Fri, 12 Oct 2018 01:42:08 +0000 (01:42 +0000)]
PR middle-end/87593 - conflicting format_arg attributes on a declaration accepted

gcc/ChangeLog:

* doc/extend.texi (attribute format_arg): Discuss using multiple
attributes on a single function.

From-SVN: r265073

6 years agoDaily bump.
GCC Administrator [Fri, 12 Oct 2018 00:16:46 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r265072

6 years agoPR libstdc++/77691 increase allocation size to at least alignment
Jonathan Wakely [Thu, 11 Oct 2018 23:21:11 +0000 (00:21 +0100)]
PR libstdc++/77691 increase allocation size to at least alignment

It's not safe to assume that malloc(n) returns memory aligned to more
than n, so when relying on the guaranteed alignment of malloc ensure
that the number of bytes allocated is at least as large as the
alignment.

PR libstdc++/77691
* include/experimental/memory_resource (__resource_adaptor_imp): Do
not allocate sizes smaller than alignment when relying on guaranteed
alignment.
* testsuite/experimental/memory_resource/new_delete_resource.cc:
Adjust expected number of bytes allocated for alignof(max_align_t).

From-SVN: r265068

6 years agofold-vec-insert-char-p8.c: New.
Will Schmidt [Thu, 11 Oct 2018 21:31:32 +0000 (21:31 +0000)]
fold-vec-insert-char-p8.c: New.

[testsuite]

2018-10-10  Will Schmidt  <will_schmidt@vnet.ibm.com>

* gcc.target/powerpc/fold-vec-insert-char-p8.c: New.
* gcc.target/powerpc/fold-vec-insert-char-p9.c: New.
* gcc.target/powerpc/fold-vec-insert-double.c: New.
* gcc.target/powerpc/fold-vec-insert-float-p8.c: New.
* gcc.target/powerpc/fold-vec-insert-float-p9.c: New.
* gcc.target/powerpc/fold-vec-insert-int-p8.c: New.
* gcc.target/powerpc/fold-vec-insert-int-p9.c: New.
* gcc.target/powerpc/fold-vec-insert-longlong.c: New.
* gcc.target/powerpc/fold-vec-insert-short-p8.c: New.
* gcc.target/powerpc/fold-vec-insert-short-p9.c: New.

From-SVN: r265067

6 years agofold-vec-extract-char.p7.c: New.
Will Schmidt [Thu, 11 Oct 2018 21:25:23 +0000 (21:25 +0000)]
fold-vec-extract-char.p7.c: New.

[testsuite]
* gcc.target/powerpc/fold-vec-extract-char.p7.c: New.
* gcc.target/powerpc/fold-vec-extract-char.p8.c: New.
* gcc.target/powerpc/fold-vec-extract-char.p9.c: New.
* gcc.target/powerpc/fold-vec-extract-double.p7.c: New.
* gcc.target/powerpc/fold-vec-extract-double.p8.c: New.
* gcc.target/powerpc/fold-vec-extract-double.p9.c: New.
* gcc.target/powerpc/fold-vec-extract-float.p7.c: New.
* gcc.target/powerpc/fold-vec-extract-float.p8.c: New.
* gcc.target/powerpc/fold-vec-extract-float.p9.c: New.
* gcc.target/powerpc/fold-vec-extract-int.p7.c: New.
* gcc.target/powerpc/fold-vec-extract-int.p8.c: New.
* gcc.target/powerpc/fold-vec-extract-int.p9.c: New.
* gcc.target/powerpc/fold-vec-extract-longlong.p7.c: New.
* gcc.target/powerpc/fold-vec-extract-longlong.p8.c: New.
* gcc.target/powerpc/fold-vec-extract-longlong.p9.c: New.
* gcc.target/powerpc/fold-vec-extract-short.p7.c: New.
* gcc.target/powerpc/fold-vec-extract-short.p8.c: New.
* gcc.target/powerpc/fold-vec-extract-short.p9.c: New.

From-SVN: r265066

6 years agofold-vec-select-char.c: New.
Will Schmidt [Thu, 11 Oct 2018 21:10:12 +0000 (21:10 +0000)]
fold-vec-select-char.c: New.

[testsuite]

2018-10-11  Will Schmidt  <will_schmidt@vnet.ibm.com>

* gcc.target/powerpc/fold-vec-select-char.c: New.
* gcc.target/powerpc/fold-vec-select-double.c: New.
* gcc.target/powerpc/fold-vec-select-float.c: New.
* gcc.target/powerpc/fold-vec-select-int.c: New.
* gcc.target/powerpc/fold-vec-select-longlong.c: New.
* gcc.target/powerpc/fold-vec-select-short.c: New.

From-SVN: r265065

6 years agore PR tree-optimization/86829 (Missing sin(atan(x)) and cos(atan(x)) optimizations)
Giuliano Belinassi [Thu, 11 Oct 2018 21:06:12 +0000 (21:06 +0000)]
re PR tree-optimization/86829 (Missing sin(atan(x)) and cos(atan(x)) optimizations)

PR tree-optimization/86829
* match.pd (sin (atan (x))): New simplification rules.
(cos (atan (x))): Likewise.
* real.c (build_sinatan_real): New function.
* real.h (build_sinatan_real): Prototype.

PR tree-optimization/86829
* gcc.dg/sinatan-1.c: New test.
* gcc.dg/sinatan-2.c: New test.
* gcc.dg/sinatan-3.c: New test.

From-SVN: r265064

6 years agors6000.c (map_to_integral_tree_type): New helper function.
Will Schmidt [Thu, 11 Oct 2018 21:03:30 +0000 (21:03 +0000)]
rs6000.c (map_to_integral_tree_type): New helper function.

[gcc]

2018-10-09  Will Schmidt <will_schmidt@vnet.ibm.com>

* config/rs6000/rs6000.c (map_to_integral_tree_type): New helper
function.
(fold_mergeeo_helper): New helper function.
(rs6000_gimple_fold_builtin): Add hooks for vec_mergee and vec_mergeo
intrinsics.  Correct some whitespace indentation issues.

From-SVN: r265063

6 years agofold-vec-mergeeo-floatdouble.c: New.
Will Schmidt [Thu, 11 Oct 2018 20:59:15 +0000 (20:59 +0000)]
fold-vec-mergeeo-floatdouble.c: New.

[testsuite]

2018-10-09  Will Schmidt  <will_schmidt@vnet.ibm.com>

* gcc.target/powerpc/fold-vec-mergeeo-floatdouble.c: New.
* gcc.target/powerpc/fold-vec-mergeeo-int.c: New.
* gcc.target/powerpc/fold-vec-mergeeo-longlong.c: New.

From-SVN: r265062

6 years ago2018-10-11 François Dumont <fdumont@gcc.gnu.org>
François Dumont [Thu, 11 Oct 2018 20:47:13 +0000 (20:47 +0000)]
2018-10-11  François Dumont  <fdumont@gcc.gnu.org>

* include/debug/forward_list
(forward_list<>::before_begin()): Use C++11 direct initialization.
(forward_list<>::begin()): Likewise.
(forward_list<>::end()): Likewise.
(forward_list<>::cbefore_begin()): Likewise.
(forward_list<>::cbegin()): Likewise.
(forward_list<>::cend()): Likewise.
(forward_list<>::emplace_after<>(const_iterator, _Args&&...)): Likewise.
(forward_list<>::insert_after(const_iterator, const _Tp&)): Likewise.
(forward_list<>::insert_after(const_iterator, _Tp&&)): Likewise.
(forward_list<>::insert_after(const_iterator, size_type, const _Tp&)):
Likewise.
(forward_list<>::insert_after(const_iterator, initializer_list<>)):
Likewise.
(forward_list<>::erase_after(const_iterator)): Likewise.
(forward_list<>::erase_after(const_iterator, const_iterator)): Likewise
and ensure consistent iterator comparison.

From-SVN: r265061

6 years ago2018-10-11 François Dumont <fdumont@gcc.gnu.org>
François Dumont [Thu, 11 Oct 2018 20:21:57 +0000 (20:21 +0000)]
2018-10-11  François Dumont  <fdumont@gcc.gnu.org>

* include/bits/forward_list.h
(_Fwd_list_iterator<>::operator==): Replace member function with inline
friend.
(_Fwd_list_iterator<>::operator!=): Likewise.
(_Fwd_list_const_iterator<>::operator==): Likewise.
(_Fwd_list_const_iterator<>::operator!=): Likewise.
(operator==(const _Fwd_list_iterator<>&,
const _Fwd_list_const_iterator<>&)): Remove.
(operator!=(const _Fwd_list_iterator<>&,
const _Fwd_list_const_iterator<>&)): Remove.
(forward_list<>::_Node): Take typedef from base type.
(forward_list<>::iterator): Likewise.
(forward_list<>::const_iterator): Likewise.

From-SVN: r265060