gcc.git
7 years agore PR c++/81011 (ICE with #pragma omp task and inaccessible copy-constructor)
Jakub Jelinek [Thu, 8 Jun 2017 18:55:04 +0000 (20:55 +0200)]
re PR c++/81011 (ICE with #pragma omp task and inaccessible copy-constructor)

PR c++/81011
* cp-gimplify.c (cxx_omp_finish_clause): When changing clause
to OMP_CLAUSE_SHARED, also clear OMP_CLAUSE_SHARED_FIRSTPRIVATE
and OMP_CLAUSE_SHARED_READONLY flags.

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

From-SVN: r249031

7 years agore PR middle-end/81005 (-fsanitize=null and -fsanitize=alignment doesn't check aggreg...
Jakub Jelinek [Thu, 8 Jun 2017 18:53:16 +0000 (20:53 +0200)]
re PR middle-end/81005 (-fsanitize=null and -fsanitize=alignment doesn't check aggregate arguments of calls)

PR middle-end/81005
* ubsan.c (instrument_null): Avoid pointless code temporary.
(pass_ubsan::execute): Instrument aggregate arguments of calls.

* c-c++-common/ubsan/align-10.c: New test.
* c-c++-common/ubsan/null-13.c: New test.

From-SVN: r249030

7 years agocompiler: lvalue context fixes in Unary_expression::do_get_backend
Ian Lance Taylor [Thu, 8 Jun 2017 18:42:04 +0000 (18:42 +0000)]
compiler: lvalue context fixes in Unary_expression::do_get_backend

    A couple of the Backend::var_expression invocations in
    Unary_expression::do_get_backend were selecting "lvalue" context
    incorrectly (these var exprs were not in an assignment or LHS
    position); fix is to change back to "rvalue" context.

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

From-SVN: r249029

7 years agore PR target/81015 (Bad codegen for __builtin_clz(unsigned short))
Uros Bizjak [Thu, 8 Jun 2017 17:28:19 +0000 (19:28 +0200)]
re PR target/81015 (Bad codegen for __builtin_clz(unsigned short))

PR target/81015
Revert:
2016-12-14  Uros Bizjak  <ubizjak@gmail.com>

PR target/59874
* config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
(*clzhi2): Ditto.

testsuite/ChangeLog:

PR target/81015
* gcc.target/i386/pr59874-1.c (foo): Call __builtin_ctzs.
* gcc.target/i386/pr59874-2.c (foo): Call __builtin_clzs.
* gcc.target/i386/pr81015.c: New test.

From-SVN: r249028

7 years agoRemove NO_TRAMPOLINES
Tom de Vries [Thu, 8 Jun 2017 17:16:10 +0000 (17:16 +0000)]
Remove NO_TRAMPOLINES

2017-06-08  Tom de Vries  <tom@codesourcery.com>

* gcc.c-torture/compile/930506-2.c: Use dg-require-effective-target
trampolines instead of NO_TRAMPOLINES.
* gcc.c-torture/execute/20000822-1.c: Same.
* gcc.c-torture/execute/920428-2.c: Same.
* gcc.c-torture/execute/920501-7.c: Same.
* gcc.c-torture/execute/920612-2.c: Same.
* gcc.c-torture/execute/921017-1.c: Same.
* gcc.c-torture/execute/921215-1.c: Same.
* gcc.c-torture/execute/931002-1.c: Same.
* gcc.c-torture/execute/comp-goto-2.c: Same.
* gcc.c-torture/execute/nestfunc-1.c: Same.
* gcc.c-torture/execute/nestfunc-2.c: Same.
* gcc.c-torture/execute/nestfunc-3.c: Same.
* gcc.c-torture/execute/nestfunc-5.c: Same.
* gcc.c-torture/execute/nestfunc-6.c: Same.
* gcc.c-torture/execute/pr24135.c: Same.
* gcc.dg/Wtrampolines.c: Same.
* gcc.dg/torture/stackalign/comp-goto-1.c: Same.
* gcc.dg/torture/stackalign/nested-5.c: Same.
* gcc.dg/torture/stackalign/nested-6.c: Same.
* gcc.dg/torture/stackalign/non-local-goto-3.c: Same.
* gcc.dg/torture/stackalign/non-local-goto-4.c: Same.
* gcc.dg/torture/stackalign/non-local-goto-5.c: Same.
* gcc.dg/trampoline-1.c: Same.
* gcc.dg/tree-prof/pr44777.c: Same.
* gcc.target/i386/pr67770.c: Same.
* lib/gcc.exp (gcc_target_compile): Remove appending of
-DNO_TRAMPOLINES to additional_flags.
* lib/objc.exp (objc_target_compile): Same.

From-SVN: r249027

7 years agoFix no_trampolines test in check_effective_target_trampolines
Tom de Vries [Thu, 8 Jun 2017 17:15:56 +0000 (17:15 +0000)]
Fix no_trampolines test in check_effective_target_trampolines

2017-06-08  Tom de Vries  <tom@codesourcery.com>

* lib/target-supports.exp (check_effective_target_trampolines): Test for
'gcc,no_trampolines' instead of 'no_trampolines'.

From-SVN: r249026

7 years agopredict.c (unlikely_executed_edge_p): Move ahead.
Jan Hubicka [Thu, 8 Jun 2017 16:41:35 +0000 (18:41 +0200)]
predict.c (unlikely_executed_edge_p): Move ahead.

* predict.c (unlikely_executed_edge_p): Move ahead.
(probably_never_executed_edge_p): Use it.

From-SVN: r249025

7 years agocompiler: fix undefined symbol error with unexported method
Ian Lance Taylor [Thu, 8 Jun 2017 16:40:21 +0000 (16:40 +0000)]
compiler: fix undefined symbol error with unexported method

    When an interface I1 in an imported package has an unexported method,
    and is then embedded into another interface I2, in a different
    package, that has other methods, and a type T2 is converted to I2, we
    failed to ever define the required interface method table.  Naturally
    T2 must implement the unexported method, and must therefore either be
    defined in the same package as I1, or embed a type from that package.
    In this case the compiler was assuming that that package would define
    the interface method table, but of course, since I2 was not defined in
    that package, that did not happen.

    The fix is to only assume that the interface method table will be
    defined elsewhere in the case where T2 and I2 are defined in the same
    package.  The compiler ensures that all such interface method tables
    are created, in Gogo::build_interface_method_tables.  This requires
    knowing the package in which an interface type is defined, a simple
    tweak to the importer.

    Testing this revealed that the special case for stub methods created
    for the embedded unexported methods of T2 needs to be done for
    function declarations as it currently is for function definitions, so
    that the newly created interface method tables use the correct name.

    Testing that revealed that the code to determine the pkgpath symbol
    for such stub methods was wrong.  It assumed that one could call
    pkgpath_for_symbol on the pkgpath to get the pkgpath symbol.  Would
    that it twere so simple.  Instead, add a function to look up the
    package, which must be known, and fetch the pkgpath symbol.

    The test for this is https://golang.org/cl/45085.

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

From-SVN: r249024

7 years agore PR middle-end/79988 ([CHKP] ICE in tree check: accessed operand 5 of call_expr...
Alexander Ivchenko [Thu, 8 Jun 2017 16:05:59 +0000 (16:05 +0000)]
re PR middle-end/79988 ([CHKP] ICE in tree check: accessed operand 5 of call_expr with 4 operands in ix86_expand_builtin, at config/i386/i386.c:36851)

2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>

       PR middle-end/79988
       * tree-chkp.c (chkp_gimple_call_builtin_p): Remove
       gimple_call_builtin_p call.

017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>

        PR middle-end/79988
        * gcc.target/i386/mpx/pr79988.c: New test.

From-SVN: r249023

7 years agosystem.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
Jan Hubicka [Thu, 8 Jun 2017 15:24:38 +0000 (17:24 +0200)]
system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.

* system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
* rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
rtl_check_failed_type2, rtl_check_failed_code1,
rtl_check_failed_code2, rtl_check_failed_code_mode,
rtl_check_failed_block_symbol, cwi_check_failed_bounds,
rtvec_check_failed_bounds, rtl_check_failed_flag,
_fatal_insn_not_found, _fatal_insn): Likewise.
* tree.h (tree_contains_struct_check_failed,
tree_check_failed, tree_not_check_failed,
tree_class_check_failed, tree_range_check_failed,
tree_not_class_check_failed, tree_int_cst_elt_check_failed,
tree_vec_elt_check_failed, phi_node_elt_check_failed,
tree_operand_check_failed, omp_clause_check_failed,
omp_clause_operand_check_failed, omp_clause_range_check_failed):
Likewise.

* cp-tree.h (lang_check_failed): Annotate by ATTRIBUTE_COLD.

From-SVN: r249022

7 years agocgraph.c (cgraph_edge::maybe_hot_p): Do not check flag_branch_probabilities.
Jan Hubicka [Thu, 8 Jun 2017 15:15:51 +0000 (17:15 +0200)]
cgraph.c (cgraph_edge::maybe_hot_p): Do not check flag_branch_probabilities.

* cgraph.c (cgraph_edge::maybe_hot_p): Do not check
flag_branch_probabilities.
* ipa-inline.c (edge_badness): Likewise.
* ipa-profile.c (ipa_propagate_frequency_1): Likewise.
* postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
* predict.c (maybe_hot_frequency_p): Likewise.
(probably_never_executed): Likewise.
* sched-ebb.c (schedule_ebbs): Likewise.
* sched-rgn.c (find_single_block_region): Likewise.
* tracer.c (tail_duplicate): Likewise.

From-SVN: r249020

7 years agoopts.c (finish_options): x_flag_reorder_blocks_and_partition no longer requires x_fla...
Jan Hubicka [Thu, 8 Jun 2017 14:47:26 +0000 (16:47 +0200)]
opts.c (finish_options): x_flag_reorder_blocks_and_partition no longer requires x_flag_profile_use.

* opts.c (finish_options): x_flag_reorder_blocks_and_partition no
longer requires x_flag_profile_use.

From-SVN: r249019

7 years agoPR libstdc++/81017 add noexcept to std::function move operations
Jonathan Wakely [Thu, 8 Jun 2017 14:27:45 +0000 (15:27 +0100)]
PR libstdc++/81017 add noexcept to std::function move operations

PR libstdc++/81017
* include/bits/std_function.h (function::function(function&&))
(function::operator=(funtion&&)): Add noexcept.
* testsuite/20_util/function/assign/move.cc: Check for noexcept.
* testsuite/20_util/function/cons/move.cc: Likewise.

From-SVN: r249018

7 years agocfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition instead of flag_reorde...
Jan Hubicka [Thu, 8 Jun 2017 14:23:43 +0000 (16:23 +0200)]
cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition instead of flag_reorder_blocks_and_partition.

* cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
instead of flag_reorder_blocks_and_partition.
* dbxout.c (dbxout_function_end): Likewise.
* dwarf2out.c (gen_subprogram_die): Likewise.
* haifa-sched.c (sched_create_recovery_edges): Likewise.
* hw-doloop.c (reorg_loops): Likewise.
* varasm.c (assemble_start_function,
assemble_end_function): Likewise.
(decide_function_section): Do not check for
flag_reorder_blocks_and_partition.

From-SVN: r249017

7 years agot-vxworks (LIBGCC2_INCLUDES): Add path to wrn/coreip to the set of -I options...
Olivier Hainque [Thu, 8 Jun 2017 14:08:56 +0000 (14:08 +0000)]
t-vxworks (LIBGCC2_INCLUDES): Add path to wrn/coreip to the set of -I options...

2017-06-08  Olivier Hainque  <hainque@adacore.com>

        * config/t-vxworks (LIBGCC2_INCLUDES): Add path to wrn/coreip to
        the set of -I options, support for direct inclusions of net/uio.h
        by VxWorks header files via ioLib.h.

From-SVN: r249016

7 years agotree-chkp.c (chkp_get_hard_register_var_fake_base_address): New function.
Alexander Ivchenko [Thu, 8 Jun 2017 14:07:21 +0000 (14:07 +0000)]
tree-chkp.c (chkp_get_hard_register_var_fake_base_address): New function.

gcc/ChangeLog:

2017-05-09  Alexander Ivchenko  <aivchenk@gmail.com>

        * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
        New function.
        (chkp_get_hard_register_fake_addr_expr): Ditto.
        (chkp_build_addr_expr): Add check for hard reg case.
        (chkp_parse_array_and_component_ref): Ditto.
        (chkp_find_bounds_1): Ditto.
        (chkp_process_stmt): Don't generate bounds store for
        hard reg case.

gcc/testsuite/ChangeLog:

2017-05-09  Alexander Ivchenko  <aivchenk@gmail.com>

        * gcc.target/i386/mpx/hard-reg-2-lbv.c: New test.
        * gcc.target/i386/mpx/hard-reg-2-nov.c: New test.
        * gcc.target/i386/mpx/hard-reg-2-ubv.c: New test.

From-SVN: r249015

7 years agopredict.c (maybe_hot_bb_p): Do not check profile status.
Jan Hubicka [Thu, 8 Jun 2017 13:16:44 +0000 (15:16 +0200)]
predict.c (maybe_hot_bb_p): Do not check profile status.

* predict.c (maybe_hot_bb_p): Do not check profile status.
(maybe_hot_edge_p): Likewise.
(probably_never_executed): Check for zero counts even if profile
is not read.
(unlikely_executed_edge_p): New function.
(unlikely_executed_stmt_p): New function.
(unlikely_executed_bb_p): New function.
(set_even_probabilities): Use unlikely predicates.
(combine_predictions_for_bb): Likewise.
(predict_paths_for_bb): Likewise.
(predict_paths_leading_to_edge): Likewise.
(determine_unlikely_bbs): New function.
(estimate_bb_frequencies): Use it.
(compute_function_frequency): Use zero counts even if profile is
not read.
* profile-count.h: Fix typo.

* g++.dg/tree-ssa/counts-1.C: New testcase.
* gcc.dg/tree-ssa/counts-1.c: New testcase.

From-SVN: r249013

7 years agoAdd mov[us]wb store intrinsics.
Julia Koval [Thu, 8 Jun 2017 13:04:43 +0000 (15:04 +0200)]
Add mov[us]wb store intrinsics.

gcc/
* config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8,
_mm512_mask_cvtsepi16_storeu_epi8,
_mm512_mask_cvtusepi16_storeu_epi8): New intrinsics.
* config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8,
_mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8,
_mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8,
_mm_mask_cvtepi16_storeu_epi8): New intrinsics.
* config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type.
(VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI,
VOID_FTYPE_PV16QI_V16HI_UHI): New function types.
* config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask,
__builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask,
__builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask,
__builtin_ia32_pmovuswb256mem_mask,
__builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask)
__builtin_ia32_pmovwb512mem_mask): New builtins.

gcc/testsuite/
* gcc.target/i386/avx512bw-vpmovswb-1.c: Add new intrinsics to test.
* gcc.target/i386/avx512bw-vpmovswb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpmovuswb-1.c: Ditto.
* gcc.target/i386/avx512bw-vpmovuswb-2.c: Ditto.
* gcc.target/i386/avx512bw-vpmovwb-1.c: Ditto.
* gcc.target/i386/avx512bw-vpmovwb-2.c: Ditto.

From-SVN: r249012

7 years agore PR sanitizer/80932 (UBSAN: false positive as a result of distribution: c1*(c2...
Marek Polacek [Thu, 8 Jun 2017 12:38:27 +0000 (12:38 +0000)]
re PR sanitizer/80932 (UBSAN: false positive as a result of distribution: c1*(c2*v1-c3*v2)=>c1*c2*v1-c1*c3*v2)

PR sanitize/80932
* c-c++-common/ubsan/pr80932.c: Test with ints, not with long ints.

From-SVN: r249010

7 years ago[PR73350][PR80862] Improve subst for RC-capable insns.
Julia Koval [Thu, 8 Jun 2017 11:24:50 +0000 (13:24 +0200)]
[PR73350][PR80862] Improve subst for RC-capable insns.

PR target/73350,80862
gcc/
* config/i386/subst.md (round): Fix round pattern.
* config/i386/i386.c (ix86_erase_embedded_rounding):
Fix erasing rounding for the fixed pattern.

gcc/testsuite/
* gcc.target/i386/pr73350.c: New test.

From-SVN: r249009

7 years ago* cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.
Jan Hubicka [Thu, 8 Jun 2017 09:34:32 +0000 (11:34 +0200)]
* cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.

From-SVN: r249008

7 years agovx_crtbegin_auto.c: Update year in copyright notice.
Olivier Hainque [Thu, 8 Jun 2017 08:20:39 +0000 (08:20 +0000)]
vx_crtbegin_auto.c: Update year in copyright notice.

2017-06-08  Olivier Hainque  <hainque@adacore.com>

        * vx_crtbegin_auto.c: Update year in copyright notice.
        * vx_crtbegin.c: Likewise.
        * vx_crtbegin.inc: Likewise.
        * vx_crtend.c:  Likewise.

From-SVN: r249007

7 years agogcov: Add block_info::block_info (PR gcov-profile/80911).
Martin Liska [Thu, 8 Jun 2017 07:51:07 +0000 (09:51 +0200)]
gcov: Add block_info::block_info (PR gcov-profile/80911).

2017-06-08  Martin Liska  <mliska@suse.cz>

PR gcov-profile/80911
* gcov.c (block_info::block_info): New constructor.

From-SVN: r249006

7 years agore PR middle-end/77925 (Add __builtin_issubnormal)
Tamar Christina [Thu, 8 Jun 2017 07:38:42 +0000 (07:38 +0000)]
re PR middle-end/77925 (Add __builtin_issubnormal)

2017-06-08  Tamar Christina  <tamar.christina@arm.com>

PR middle-end/77925
PR middle-end/77926
PR middle-end/66462

* gcc/builtins.c (fold_builtin_fpclassify): Remove.
(fold_builtin_interclass_mathfn): Remove.
(expand_builtin): Add builtins to lowering list.
(fold_builtin_n): Remove fold_builtin_varargs.
(fold_builtin_varargs): Remove.
* gcc/builtins.def (BUILT_IN_ISZERO, BUILT_IN_ISSUBNORMAL): New.
* gcc/real.h (get_min_float): New.
(real_format): Add is_ieee_compatible field.
* gcc/real.c (get_min_float): New.
(ieee_single_format): Set is_ieee_compatible flag.
* gcc/gimple-low.c (lower_stm): Define BUILT_IN_FPCLASSIFY,
CASE_FLT_FN (BUILT_IN_ISINF), BUILT_IN_ISINFD32, BUILT_IN_ISINFD64,
BUILT_IN_ISINFD128, BUILT_IN_ISNAND32, BUILT_IN_ISNAND64,
BUILT_IN_ISNAND128, BUILT_IN_ISNAN, BUILT_IN_ISNORMAL, BUILT_IN_ISZERO,
BUILT_IN_ISSUBNORMAL, CASE_FLT_FN (BUILT_IN_FINITE), BUILT_IN_FINITED32
BUILT_IN_FINITED64, BUILT_IN_FINITED128, BUILT_IN_ISFINITE.
(lower_builtin_fpclassify, is_nan, is_normal, is_infinity): New.
(is_zero, is_subnormal, is_finite, use_ieee_int_mode): Likewise.
(lower_builtin_isnan, lower_builtin_isinfinite): Likewise.
(lower_builtin_isnormal, lower_builtin_iszero): Likewise.
(lower_builtin_issubnormal, lower_builtin_isfinite): Likewise.
(emit_tree_cond, get_num_as_int, emit_tree_and_return_var): New.
(mips_single_format): Likewise.
(motorola_single_format): Likewise.
(spu_single_format): Likewise.
(ieee_double_format): Likewise.
(mips_double_format): Likewise.
(motorola_double_format): Likewise.
(ieee_extended_motorola_format): Likewise.
(ieee_extended_intel_128_format): Likewise.
(ieee_extended_intel_96_round_53_format): Likewise.
(ibm_extended_format): Likewise.
(mips_extended_format): Likewise.
(ieee_quad_format): Likewise.
(mips_quad_format): Likewise.
(vax_f_format): Likewise.
(vax_d_format): Likewise.
(vax_g_format): Likewise.
(decimal_single_format): Likewise.
(decimal_quad_format): Likewise.
(iee_half_format): Likewise.
(mips_single_format): Likewise.
(arm_half_format): Likewise.
(real_internal_format): Likewise.
* gcc/doc/extend.texi: Add documentation for built-ins.
* gcc/c/c-typeck.c (convert_arguments): Add BUILT_IN_ISZERO
and BUILT_IN_ISSUBNORMAL.

gcc/testsuite/
2017-06-08  Tamar Christina  <tamar.christina@arm.com>

* gcc.target/aarch64/builtin-fpclassify.c: New codegen test.
* gcc.dg/fold-notunord.c: Removed.
* gcc.dg/torture/floatn-tg-4.h: Add tests for iszero and issubnormal.
* gcc.dg/torture/float128-tg-4.c: Likewise.
* gcc.dg/torture/float128x-tg-4: Likewise.
* gcc.dg/torture/float16-tg-4.c: Likewise.
* gcc.dg/torture/float32-tg-4.c: Likewise.
* gcc.dg/torture/float32x-tg-4.c: Likewise.
* gcc.dg/torture/float64-tg-4.c: Likewise.
* gcc.dg/torture/float64x-tg-4.c: Likewise.
* gcc.dg/pr28796-1.c: Add -O2.
* gcc.dg/builtins-43.c: Check lower instead of gimple.
* gcc.dg/tg-tests.h: Add iszero and issubnormal.
* gcc.dg/pr77925.c: Add to test safe cases.

From-SVN: r249005

7 years agore PR tree-optimization/80928 (SLP vectorization does not handle induction in outer...
Richard Biener [Thu, 8 Jun 2017 07:32:52 +0000 (07:32 +0000)]
re PR tree-optimization/80928 (SLP vectorization does not handle induction in outer loop vectorization)

2017-06-08  Richard Biener  <rguenther@suse.de>

PR tree-optimization/80928
* gcc.dg/vect/slp-perm-8.c: Do not expect check loop to be vectorized.

From-SVN: r249004

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

From-SVN: r249003

7 years agosimple-object-xcoff.c (simple_object_xcoff_find_sections): Search symbol table for...
Tony Reix [Wed, 7 Jun 2017 23:23:55 +0000 (23:23 +0000)]
simple-object-xcoff.c (simple_object_xcoff_find_sections): Search symbol table for .go_export symbol and apply pfn if found.

2017-06-07  Tony Reix  <tony.reix@atos.net>
            Matthieu Sarter  <matthieu.sarter.external@atos.net>
            David Edelsohn  <dje.gcc@gmail.com>

        * simple-object-xcoff.c (simple_object_xcoff_find_sections):
        Search symbol table for .go_export symbol and apply pfn if found.

Co-Authored-By: David Edelsohn <dje.gcc@gmail.com>
Co-Authored-By: Matthieu Sarter <matthieu.sarter.external@atos.net>
From-SVN: r248999

7 years agors6000-c: The return type of the following built-in functions was implemented as...
Carl Love [Wed, 7 Jun 2017 22:23:15 +0000 (22:23 +0000)]
rs6000-c: The return type of the following built-in functions was implemented as int not...

gcc/ChangeLog:

2017-06-07  Carl Love  <cel@us.ibm.com>

* config/rs6000/rs6000-c: The return type of the following
built-in functions was implemented as int not long long.  Fix sign
of return value for the unsigned version of vec_mulo and vec_mule.
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)
* doc/extend.texi: Fix the documentation for the built-in
functions.

gcc/testsuite/ChangeLog:

2017-06-07  Carl Love  <cel@us.ibm.com>
* gcc.target/powerpc/builtins-3.c: Fix vec_mule, vec_mulo test cases.
---

From-SVN: r248998

7 years agore PR target/80982 (gcc.target/powerpc/builtins-3-runnable.c fails starting with...
Carl Love [Wed, 7 Jun 2017 22:03:48 +0000 (22:03 +0000)]
re PR target/80982 (gcc.target/powerpc/builtins-3-runnable.c fails starting with its introduction in r248846)

gcc/ChangeLog:

2017-06-07  Carl Love  <cel@us.ibm.com>

PR target/80982
* config/rs6000/altivec.md (double<mode>2): Fix the implementation of
for BE.

From-SVN: r248997

7 years agoaltivec.md: Fix argument swizzle in vec_doublel support...
Carl Love [Wed, 7 Jun 2017 21:59:06 +0000 (21:59 +0000)]
altivec.md: Fix argument swizzle in vec_doublel support...

gcc/ChangeLog:

2017-06-07  Carl Love  <cel@us.ibm.com>

* config/rs6000/altivec.md: Fix argument swizzle in vec_doublel
support, Generate doublehv for signed int/float for BE case only.

From-SVN: r248996

7 years agodoc: update x86 -mcx16 option description
Alexander Monakov [Wed, 7 Jun 2017 21:51:51 +0000 (00:51 +0300)]
doc: update x86 -mcx16 option description

* doc/invoke.texi (mcx16): Rewrite.

From-SVN: r248995

7 years agoruntime: support ia64 in lfstack
Ian Lance Taylor [Wed, 7 Jun 2017 18:12:58 +0000 (18:12 +0000)]
runtime: support ia64 in lfstack

    Patch by Andreas Schwab.

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

From-SVN: r248994

7 years agoAdd C++17 deduction guide for std::basic_regex (P0433R2, partial)
Jonathan Wakely [Wed, 7 Jun 2017 15:43:54 +0000 (16:43 +0100)]
Add C++17 deduction guide for std::basic_regex (P0433R2, partial)

* include/bits/regex.h (basic_regex): Add deduction guide from P0433.
* testsuite/28_regex/basic_regex/ctors/deduction.cc: New.

From-SVN: r248990

7 years agoPR libstdc++/81002 fix std::basic_regex range constructor
Jonathan Wakely [Wed, 7 Jun 2017 15:43:35 +0000 (16:43 +0100)]
PR libstdc++/81002 fix std::basic_regex range constructor

PR libstdc++/81002
* include/bits/regex.h (basic_regex): Adjust call to __compile_nfa
so iterator type is deduced.
* include/bits/regex_compiler.h (__compile_nfa): Reorder template
parameters to allow iterator type to be deduced.
* testsuite/28_regex/basic_regex/ctors/basic/iter.cc: New.

From-SVN: r248989

7 years agoI love SVN.
Segher Boessenkool [Wed, 7 Jun 2017 15:35:40 +0000 (17:35 +0200)]
I love SVN.

From-SVN: r248988

7 years agors6000: Remove rs6000_nonimmediate_operand
Segher Boessenkool [Wed, 7 Jun 2017 15:33:58 +0000 (17:33 +0200)]
rs6000: Remove rs6000_nonimmediate_operand

Now rs6000_nonimmediate_operand is just nonimmediate_operand.

* config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete.
* config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf,
*mov<mode>_softfloat, and an anonymous splitter): Use
nonimmediate_operand instead of rs6000_nonimmediate_operand.

From-SVN: r248987

7 years agors6000: Remove spe_acc and spefscr
Segher Boessenkool [Wed, 7 Jun 2017 15:32:39 +0000 (17:32 +0200)]
rs6000: Remove spe_acc and spefscr

We can also remove the two other SPE registers.

* config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and
SPEFSCR registers.
* config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
(enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE.
(rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
(rs6000_dbx_register_number): Adjust.
* config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115.
(FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
Remove SPE_ACC and SPEFSCR.
(REG_ALLOC_ORDER): Ditto.
(FRAME_POINTER_REGNUM): Change to 111.
(enum reg_class): Remove the SPE_ACC and SPEFSCR registers.
(REG_CLASS_NAMES): Ditto.
(REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers.
(REGISTER_NAMES): Ditto.
(ADDITIONAL_REG_NAMES): Ditto.
(rs6000_reg_names): Ditto.
* config/rs6000/rs6000.md: Renumber some register number
define_constants.

From-SVN: r248986

7 years agors6000: Remove SPE high registers
Segher Boessenkool [Wed, 7 Jun 2017 15:30:55 +0000 (17:30 +0200)]
rs6000: Remove SPE high registers

* config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high
registers.
* config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
* config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149
to 117.
(DWARF_REG_TO_UNWIND_COLUMN): Do not define.
(FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
Delete the SPE high registers.
(REG_ALLOC_ORDER): Ditto.
(enum reg_class): Remove SPE_HIGH_REGS.
(REG_CLASS_NAMES): Ditto.
(REG_CLASS_CONTENTS): Delete the SPE high registers.
(REGISTER_NAMES): Ditto.
(rs6000_reg_names): Ditto.
* doc/tm.texi.in: Remove SPE as example.
* doc/tm.texi: Regenerate.

From-SVN: r248985

7 years agors6000: Remove type attribute "brinc"
Segher Boessenkool [Wed, 7 Jun 2017 15:29:14 +0000 (17:29 +0200)]
rs6000: Remove type attribute "brinc"

Nothing uses it anymore.

* config/rs6000/8540.md (ppc8540_brinc): Delete.
* config/rs6000/e500mc.md (e500mc_brinc): Delete.
* config/rs6000/e500mc64.md (e500mc64_brinc): Delete.
* config/rs6000/rs6000.md (type): Remove "brinc".

From-SVN: r248984

7 years agors6000: Remove spe.md, spe.h, linuxspe.h
Segher Boessenkool [Wed, 7 Jun 2017 15:27:45 +0000 (17:27 +0200)]
rs6000: Remove spe.md, spe.h, linuxspe.h

* config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers.
(powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000.
* config/rs6000/linuxspe.h: Delete file.
* config/rs6000/rs6000.md: Don't include spe.md.
* config/rs6000/spe.h: Delete file.
* config/rs6000/spe.md: Delete file.
* config/rs6000/t-rs6000: Remove spe.md.

From-SVN: r248983

7 years agors6000: Remove reg_or_none500mem_operand
Segher Boessenkool [Wed, 7 Jun 2017 15:25:01 +0000 (17:25 +0200)]
rs6000: Remove reg_or_none500mem_operand

* config/rs6000/predicates.md (reg_or_mem_operand): Reformat.
(reg_or_none500mem_operand): Delete.
* config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand
instead of reg_or_none500mem_operand.

From-SVN: r248982

7 years agors6000: Remove -mspe options
Segher Boessenkool [Wed, 7 Jun 2017 15:23:49 +0000 (17:23 +0200)]
rs6000: Remove -mspe options

* config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
handling of SPE flags.
* config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete.

From-SVN: r248981

7 years agors6000: Remove TARGET_SPE and TARGET_SPE_ABI and friends
Segher Boessenkool [Wed, 7 Jun 2017 15:22:33 +0000 (17:22 +0200)]
rs6000: Remove TARGET_SPE and TARGET_SPE_ABI and friends

* config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
SPE ABI handling.
* config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2.
(paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3,
paired_divv2sf3): Similar.
* config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI,
SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify.
* config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and
RS6000_BUILTIN_S.
Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X.
Rename the paired_* instruction patterns.
* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not
define __SPE__.
* config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete.
* config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S.
(struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size,
spe_padding_size, and spe_64bit_regs_used.  Replace TARGET_SPE and
TARGET_SPE_ABI with 0, simplify.  Replace SPE_VECTOR_MODE with
PAIRED_VECTOR_MODE.
(struct machine_function): Delete field spe_insn_chain_scanned_p.
(spe_func_has_64bit_regs_p): Delete.
(spe_expand_predicate_builtin): Delete.
(spe_expand_evsel_builtin): Delete.
(TARGET_DWARF_REGISTER_SPAN): Do not define.
(TARGET_MEMBER_TYPE_FORCES_BLK): Do not define.
(invalid_e500_subreg): Delete.
(rs6000_legitimize_address): Always force_reg op2 as well, for
paired single memory accesses.
(rs6000_member_type_forces_blk): Delete.
(rs6000_spe_function_arg): Delete.
(rs6000_expand_unop_builtin): Delete SPE handling.
(rs6000_expand_binop_builtin): Ditto.
(spe_expand_stv_builtin): Delete.
(bdesc_2arg_spe): Delete.
(spe_expand_builtin): Delete.
(spe_expand_predicate_builtin): Delete.
(spe_expand_evsel_builtin): Delete.
(rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling.
(spe_init_builtins): Delete.
(spe_func_has_64bit_regs_p): Delete.
(savres_routine_name): Delete "info" parameter.  Adjust callers.
(rs6000_emit_stack_reset): Ditto.
(rs6000_dwarf_register_span): Delete.
* config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE,
UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P,
SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S):
Delete.
* config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO):
Delete.
* config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete.
* config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE.
* config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
mulv2sf3, divv2sf3): Delete expanders.

From-SVN: r248980

7 years agors6000: Remove UNSPEC_MV_CR_GT
Segher Boessenkool [Wed, 7 Jun 2017 15:16:44 +0000 (17:16 +0200)]
rs6000: Remove UNSPEC_MV_CR_GT

config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete.

From-SVN: r248979

7 years agors6000: Remove output_e500_flip_gt_bit
Segher Boessenkool [Wed, 7 Jun 2017 15:14:29 +0000 (17:14 +0200)]
rs6000: Remove output_e500_flip_gt_bit

* config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete.
* config/rs6000/rs6000.c: Ditto.

From-SVN: r248978

7 years agors6000: Remove rs6000_cbranch_operator
Segher Boessenkool [Wed, 7 Jun 2017 15:06:53 +0000 (17:06 +0200)]
rs6000: Remove rs6000_cbranch_operator

rs6000_cbranch_operator now is just comparison_operator, so just use
that directly.

* config/rs6000/predicated.md (rs6000_cbranch_operator): Delete.
* config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by
comparison_operator.

From-SVN: r248977

7 years agors6000: Remove -mfloat-gprs
Segher Boessenkool [Wed, 7 Jun 2017 15:04:46 +0000 (17:04 +0200)]
rs6000: Remove -mfloat-gprs

This deletes -mfloat-gprs and the variables that go with it.

* config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs.
* config/rs6000/rs6000.opt: Ditto.
* config/rs6000/t-rtems: Ditto.

From-SVN: r248976

7 years agors6000: Remove TARGET_E500_{SINGLE,DOUBLE}
Segher Boessenkool [Wed, 7 Jun 2017 14:59:11 +0000 (16:59 +0200)]
rs6000: Remove TARGET_E500_{SINGLE,DOUBLE}

TARGET_E500_{SINGLE,DOUBLE} is always false now.

* config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and
TARGET_E500_SINGLE by 0, simplify.
* config/rs6000/rs6000.c: Ditto.
(rs6000_option_override_internal): Delete CHECK_E500_OPTIONS.
(spe_build_register_parallel): Delete.
* config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE,
TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS.
* config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE,
TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify.
(E500_CONVERT): Delete.
* config/rs6000/spe.md: Remove many patterns and all define_constants.

From-SVN: r248975

7 years agors6000: Remove TARGET_FPRS
Segher Boessenkool [Wed, 7 Jun 2017 14:55:54 +0000 (16:55 +0200)]
rs6000: Remove TARGET_FPRS

Since rs6000 no longer supports SPE, TARGET_FPRS now always is true.

This makes TARGET_{SF,DF}_SPE always false.  Many patterns in spe.md
can now be deleted; which makes it possible to merge e.g. negdd2 with
*negdd2_fpr.

Finally, e500.h is deleted (it isn't used).

* config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify.
* config/rs6000/dfp.md: Ditto.
(negdd2, *negdd2_fpr): Merge.
(absdd2, *absdd2_fpr): Merge.
(negtd2, *negtd2_fpr): Merge.
(abstd2, *abstd2_fpr): Merge.
* config/rs6000/e500.h: Delete file.
* config/rs6000/predicates.md (rs6000_cbranch_operator): Replace
TARGET_FPRS by 1 and simplify.
* config/rs6000/rs6000-c.c: Ditto.
* config/rs6000/rs6000.c: Ditto.  Also replace TARGET_SF_SPE and
TARGET_DF_SPE by 0.
* config/rs6000/rs6000.h: Ditto.  Delete TARGET_SF_SPE and
TARGET_DF_SPE.
* config/rs6000/rs6000.md: Ditto.
(floatdidf2, *floatdidf2_fpr): Merge.
(move_from_CR_gt_bit): Delete.
* config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify.
(E500_CR_IOR_COMPARE): Delete.
(All patterns that require !TARGET_FPRS): Delete.
* config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify.

From-SVN: r248974

7 years agoclass.c (layout_class_type): Restructure overlong-bitfield tpe search.
Nathan Sidwell [Wed, 7 Jun 2017 13:41:20 +0000 (13:41 +0000)]
class.c (layout_class_type): Restructure overlong-bitfield tpe search.

* class.c (layout_class_type): Restructure overlong-bitfield tpe
search.

From-SVN: r248971

7 years agoFix white space.
David Edelsohn [Wed, 7 Jun 2017 12:41:20 +0000 (08:41 -0400)]
Fix white space.

From-SVN: r248969

7 years agoaix-unwind.h (MD_FALLBACK_FRAME_STATE_FOR): Define unconditionally.
Tony Reix [Wed, 7 Jun 2017 12:35:19 +0000 (12:35 +0000)]
aix-unwind.h (MD_FALLBACK_FRAME_STATE_FOR): Define unconditionally.

2017-06-07  Tony Reix  <tony.reix@atos.net>
            Matthieu Sarter  <matthieu.sarter.external@atos.net>
            David Edelsohn  <dje.gcc@gmail.com>

        * config/rs6000/aix-unwind.h (MD_FALLBACK_FRAME_STATE_FOR): Define
        unconditionally.
        (ucontext_for): Add 64-bit AIX 6.1, 7.1, 7.2 support.  Add 32-bit
        AIX 7.2 support.

Co-Authored-By: David Edelsohn <dje.gcc@gmail.com>
Co-Authored-By: Matthieu Sarter <matthieu.sarter.external@atos.net>
From-SVN: r248968

7 years agoAdd C++17 deduction guide for std::basic_string (P0433R2, partial)
Jonathan Wakely [Wed, 7 Jun 2017 12:35:08 +0000 (13:35 +0100)]
Add C++17 deduction guide for std::basic_string (P0433R2, partial)

* include/bits/alloc_traits.h (__is_allocator, _RequireAllocator):
New trait and alias for detecting Allocator-like types.
* include/bits/basic_string.h (basic_string): Add deduction guide
from P0433.
* include/ext/alloc_traits.h (__gnu_cxx::__alloc_traits): Add template
parameter with default template argument that causes substitution
failures for types that cannot be allocators.
* testsuite/21_strings/basic_string/cons/char/deduction.cc: New.
* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: New.

From-SVN: r248967

7 years agoPR c++/80990 use cv-qualifiers in class template argument deduction
Jonathan Wakely [Wed, 7 Jun 2017 11:34:36 +0000 (12:34 +0100)]
PR c++/80990 use cv-qualifiers in class template argument deduction

gcc/cp:

PR c++/80990
* pt.c (do_class_deduction): Build qualified type.

gcc/testsuite:

PR c++/80990
* g++.dg/cpp1z/class-deduction39.C: New.

From-SVN: r248966

7 years ago* passes.def (pass_iv_canon): Move before pass_loop_distribution.
Bin Cheng [Wed, 7 Jun 2017 11:31:44 +0000 (11:31 +0000)]
* passes.def (pass_iv_canon): Move before pass_loop_distribution.

From-SVN: r248965

7 years agographds.c (add_edge): Intitialize edge's attached data.
Bin Cheng [Wed, 7 Jun 2017 11:29:37 +0000 (11:29 +0000)]
graphds.c (add_edge): Intitialize edge's attached data.

* graphds.c (add_edge): Intitialize edge's attached data.
(foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function
pointer parameter.  Call pointed function on each edge during
graph traversing.  Skip traversing the edge when the function
returns true.
(graphds_dfs, graphds_scc): Ditto.
(for_each_edge): New parameter.  Pass the new parameter to callback
function.
* graphds.h (skip_edge_callback): New function pointer type.
(graphds_dfs, graphds_scc): New function pointer parameter.
(graphds_edge_callback, for_each_edge): New parameter.

From-SVN: r248964

7 years agotree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor out code checking...
Bin Cheng [Wed, 7 Jun 2017 11:28:17 +0000 (11:28 +0000)]
tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor out code checking if runtime alias check is possible to below ...

* tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
out code checking if runtime alias check is possible to below ...
Call the new function.
* tree-data-ref.c (runtime_alias_check_p): ... to new function.
* tree-data-ref.h (runtime_alias_check_p): New decalaration.

From-SVN: r248962

7 years agore PR sanitizer/80932 (UBSAN: false positive as a result of distribution: c1*(c2...
Marek Polacek [Wed, 7 Jun 2017 11:19:40 +0000 (11:19 +0000)]
re PR sanitizer/80932 (UBSAN: false positive as a result of distribution: c1*(c2*v1-c3*v2)=>c1*c2*v1-c1*c3*v2)

PR sanitizer/80932
* fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
TYPE_OVERFLOW_WRAPS check.

* c-c++-common/ubsan/pr80932.c: New test.

From-SVN: r248961

7 years agol_fma_double_1.c: Adjust test strings.
Bin Cheng [Wed, 7 Jun 2017 11:00:48 +0000 (11:00 +0000)]
l_fma_double_1.c: Adjust test strings.

gcc/testsuite
* gcc.target/i386/l_fma_double_1.c: Adjust test strings.
* gcc.target/i386/l_fma_double_2.c: Ditto.
* gcc.target/i386/l_fma_double_3.c: Ditto.
* gcc.target/i386/l_fma_double_4.c: Ditto.
* gcc.target/i386/l_fma_double_5.c: Ditto.
* gcc.target/i386/l_fma_double_6.c: Ditto.
* gcc.target/i386/l_fma_float_1.c: Ditto.
* gcc.target/i386/l_fma_float_2.c: Ditto.
* gcc.target/i386/l_fma_float_3.c: Ditto.
* gcc.target/i386/l_fma_float_4.c: Ditto.
* gcc.target/i386/l_fma_float_5.c: Ditto.
* gcc.target/i386/l_fma_float_6.c: Ditto.

From-SVN: r248960

7 years agotree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop if versioning is...
Bin Cheng [Wed, 7 Jun 2017 10:56:54 +0000 (10:56 +0000)]
tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop if versioning is required.

* tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop
if versioning is required.
* tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop
peeling with the check for versioning.

From-SVN: r248959

7 years agotree-vectorizer.h (vect_build_loop_niters): New parameter.
Bin Cheng [Wed, 7 Jun 2017 10:53:02 +0000 (10:53 +0000)]
tree-vectorizer.h (vect_build_loop_niters): New parameter.

* tree-vectorizer.h (vect_build_loop_niters): New parameter.
* tree-vect-loop-manip.c (vect_build_loop_niters): New parameter.
Set true to new parameter if new ssa variable is defined.
(vect_gen_vector_loop_niters): Refactor.  Set range information
for the new vector loop bound variable.
(vect_do_peeling): Ditto.

From-SVN: r248958

7 years agotree-affine.c (ssa.h): Include header file.
Bin Cheng [Wed, 7 Jun 2017 10:49:09 +0000 (10:49 +0000)]
tree-affine.c (ssa.h): Include header file.

* tree-affine.c (ssa.h): Include header file.
(tree_to_aff_combination): Handle (T1)(X - CST) when inner type
has wrapping overflow behavior.

From-SVN: r248957

7 years ago* tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).
Bin Cheng [Wed, 7 Jun 2017 10:47:26 +0000 (10:47 +0000)]
* tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).

From-SVN: r248956

7 years ago(aff_combination_expand): Move (T1)(X *+- CST) simplification to ...
Bin Cheng [Wed, 7 Jun 2017 10:46:21 +0000 (10:46 +0000)]
(aff_combination_expand): Move (T1)(X *+- CST) simplification to ...

(tree_to_aff_combination): ... here.

From-SVN: r248955

7 years agotree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New reg_pressure model function.
Bin Cheng [Wed, 7 Jun 2017 10:45:03 +0000 (10:45 +0000)]
tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New reg_pressure model function.

* tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New
reg_pressure model function.
(ivopts_global_cost_for_size): Delete.
(determine_set_costs, iv_ca_recount_cost): Call new model function
ivopts_estimate_reg_pressure.

From-SVN: r248954

7 years agoaarch64.c (aarch64_rtx_costs): Make sdiv more expensive than udiv.
Tamar Christina [Wed, 7 Jun 2017 10:06:29 +0000 (10:06 +0000)]
aarch64.c (aarch64_rtx_costs): Make sdiv more expensive than udiv.

2017-06-07  Tamar Christina  <tamar.christina@arm.com>

* config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more expensive than udiv.
Remove floating point cases from mod.

From-SVN: r248953

7 years agoRTEMS: Use TLS for Ada run-time
Sebastian Huber [Wed, 7 Jun 2017 09:49:27 +0000 (09:49 +0000)]
RTEMS: Use TLS for Ada run-time

Do not use the RTEMS-specific task variables for the Ada run-time since
they are not available in RTEMS 4.12 or later.  Use thread-local storage
instead.

gcc/ada
* Makefile.in (rtems): Use TLS implementation for s-tpopsp.adb.
* s-tpopsp-rtems.adb: Delete.

From-SVN: r248952

7 years agoaarch-cost-tables.h (cortexa53_extra_cost): Increase idiv cost.
Tamar Christina [Wed, 7 Jun 2017 09:45:53 +0000 (09:45 +0000)]
aarch-cost-tables.h (cortexa53_extra_cost): Increase idiv cost.

2017-06-07  Tamar Christina  <tamar.christina@arm.com>

* config/arm/aarch-cost-tables.h (cortexa53_extra_cost): Increase idiv cost.

From-SVN: r248951

7 years agore PR tree-optimization/80928 (SLP vectorization does not handle induction in outer...
Richard Biener [Wed, 7 Jun 2017 09:39:53 +0000 (09:39 +0000)]
re PR tree-optimization/80928 (SLP vectorization does not handle induction in outer loop vectorization)

2017-06-07  Richard Biener  <rguenther@suse.de>

PR tree-optimization/80928
* gcc.dg/vect/slp-13.c: Adjust patterns with vect_pack_trunc.
* gcc.dg/vect/slp-13-big-array.c: Likewise.

From-SVN: r248950

7 years ago2017-06-07 Tamar Christina <tamar.christina@arm.com>
Tamar Christina [Wed, 7 Jun 2017 09:36:17 +0000 (09:36 +0000)]
2017-06-07  Tamar Christina  <tamar.christina@arm.com>

        * config/aarch64/aarch64.md
        (copysignsf3): Fix mask generation.

From-SVN: r248949

7 years agore PR tree-optimization/80928 (SLP vectorization does not handle induction in outer...
Richard Biener [Wed, 7 Jun 2017 09:10:17 +0000 (09:10 +0000)]
re PR tree-optimization/80928 (SLP vectorization does not handle induction in outer loop vectorization)

2017-06-07  Richard Biener  <rguenther@suse.de>

PR tree-optimization/80928
* gcc.dg/vect/slp-perm-8.c: Avoid vectorizing loop computing
check_results.

From-SVN: r248948

7 years agodumpfile.h (enum tree_dump_index): Rename TDI_generic to TDI_gimple.
Jakub Jelinek [Wed, 7 Jun 2017 08:57:11 +0000 (10:57 +0200)]
dumpfile.h (enum tree_dump_index): Rename TDI_generic to TDI_gimple.

* dumpfile.h (enum tree_dump_index): Rename TDI_generic to
TDI_gimple.
(class dump_manager): Add register_dumps method.
* dumpfile.c: Include langhooks.h.
(dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
(FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
(FIRST_ME_AUTO_NUMBERED_DUMP): Define.
(dump_manager::dump_register): Start with 512 entries instead of 32.
(dump_manager::register_dumps): New method.
* toplev.c (general_init): Instead of invoking register_dumps
langhook, invoke register_dumps method on the dump manager.
* gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
TDI_generic.

* gimple-parser.c (c_parser_parse_gimple_body): Use TDI_gimple instead
of TDI_generic.

From-SVN: r248947

7 years agoClarify define_insn documentation
Richard Sandiford [Wed, 7 Jun 2017 06:45:36 +0000 (06:45 +0000)]
Clarify define_insn documentation

This patch tries to clarify some of the restrictions on define_insn
conditions, and also on the use of "#".

2017-06-06  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* doc/md.texi: Clarify the restrictions on a define_insn condition.
Say that # requires an associated define_split to exist, and that
the define_split must be suitable for use after register allocation.

From-SVN: r248946

7 years agocfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
Jan Hubicka [Wed, 7 Jun 2017 06:42:43 +0000 (08:42 +0200)]
cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.

* cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
(compute_outgoing_frequencies): Also initialize zero counts.
(find_many_sub_basic_blocks): Do not produce uninitialized profile
around loops; preserve more of profile when nothing changes.

From-SVN: r248945

7 years agoRemove aarch32 support for falkor/qdf24xx, not in released hardware.
Jim Wilson [Wed, 7 Jun 2017 01:55:12 +0000 (01:55 +0000)]
Remove aarch32 support for falkor/qdf24xx, not in released hardware.

gcc/
* config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
here.
* config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
* config/arm/arm-cpu-cdata.h: Regenerate.
* config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
* config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
* config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
* config/arm/arm.c (arm_qdf24xx_tune): Delete.
* config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
support.
* config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
support.
* config/arm/t-rmprofile: Likewise.
* doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.

From-SVN: r248944

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

From-SVN: r248942

7 years agoname-lookup.c (suggest_alternatives_for): Use qualified lookup sans using directives.
Nathan Sidwell [Tue, 6 Jun 2017 23:02:49 +0000 (23:02 +0000)]
name-lookup.c (suggest_alternatives_for): Use qualified lookup sans using directives.

* name-lookup.c (suggest_alternatives_for): Use qualified lookup
sans using directives.  Don't walk into inline namespaces.

* g++.dg/pr45330.C: Add inline namespace case.

From-SVN: r248938

7 years agocompiler: typing fixes for Interface_mtable_expression
Ian Lance Taylor [Tue, 6 Jun 2017 20:57:03 +0000 (20:57 +0000)]
compiler: typing fixes for Interface_mtable_expression

    Interface_mtable_expression::do_type computes a type that incorporates
    Go type descriptors for the interface methods, whereas in order to
    have strict type agreement with the mtable data, the interface method
    fields need to be C function ptrs. Change the type recipe accordingly,
    and then update Interface_mtable_expression::do_get_backend to compute
    a revised backend type that uses the correct fcn types.

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

From-SVN: r248934

7 years agore PR fortran/80975 (matmul for zero-length arrays)
Thomas Koenig [Tue, 6 Jun 2017 19:18:37 +0000 (19:18 +0000)]
re PR fortran/80975 (matmul for zero-length arrays)

2017-06-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/80975
* m4/matmul_internal.m4:  Move zeroing before early return.
* generated/matmul_c10.c: Regenerated.
* generated/matmul_c16.c: Regenerated.
* generated/matmul_c4.c: Regenerated.
* generated/matmul_c8.c: Regenerated.
* generated/matmul_i1.c: Regenerated.
* generated/matmul_i16.c: Regenerated.
* generated/matmul_i2.c: Regenerated.
* generated/matmul_i4.c: Regenerated.
* generated/matmul_i8.c: Regenerated.
* generated/matmul_r10.c: Regenerated.
* generated/matmul_r16.c: Regenerated.
* generated/matmul_r4.c: Regenerated.
* generated/matmul_r8.c: Regenerated.
* generated/matmulavx128_c10.c: Regenerated.
* generated/matmulavx128_c16.c: Regenerated.
* generated/matmulavx128_c4.c: Regenerated.
* generated/matmulavx128_c8.c: Regenerated.
* generated/matmulavx128_i1.c: Regenerated.
* generated/matmulavx128_i16.c: Regenerated.
* generated/matmulavx128_i2.c: Regenerated.
* generated/matmulavx128_i4.c: Regenerated.
* generated/matmulavx128_i8.c: Regenerated.
* generated/matmulavx128_r10.c: Regenerated.
* generated/matmulavx128_r16.c: Regenerated.
* generated/matmulavx128_r4.c: Regenerated.
* generated/matmulavx128_r8.c: Regenerated.

2017-06-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/80975
* gfortran.dg/matmul_16.f90: New test.
* gfortran.dg/inline_matmul_18.f90: New test.

From-SVN: r248932

7 years agore PR c/79983 (Improve enum and struct redefinition diagnostic)
Marek Polacek [Tue, 6 Jun 2017 17:40:34 +0000 (17:40 +0000)]
re PR c/79983 (Improve enum and struct redefinition diagnostic)

PR c/79983
* c-decl.c (start_struct): Use the location of TYPE_STUB_DECL of
ref.
(start_enum): Use the location of TYPE_STUB_DECL of enumtype.

* gcc.dg/pr79983.c: New test.

From-SVN: r248927

7 years agosparc: Fix stack references in return delay slot.
David S. Miller [Tue, 6 Jun 2017 17:02:22 +0000 (17:02 +0000)]
sparc: Fix stack references in return delay slot.

gcc/

PR target/80968
* config/sparc/sparc.c (sparc_expand_prologue): Emit frame
blockage if function uses alloca.

gcc/testsuite/

* gcc.target/sparc/sparc-ret-3.c: New test.

From-SVN: r248926

7 years agoImprove debug output of loop data prefetching.
Maxim Kuvyrkov [Tue, 6 Jun 2017 17:01:00 +0000 (17:01 +0000)]
Improve debug output of loop data prefetching.

* tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref):
New "uid" fields to hold pretty-print IDs of group and ref.
Memory references are now identified as <group_id>:<ref_id>
instead of using [random] addresses.
(dump_mem_details): Simplify, no functional change.
(dump_mem_ref): Simplify and make output more concise.
Replace couple of fprintf's throughout code with calls to dump_mem_ref.
(find_or_create_group): Initialize group uid.
(record_ref): Initialize ref uid.  Improve debug output.
(prune_group_by_reuse, should_issue_prefetch_p,)
(should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,)
(mark_nontemporal_store, determine_loop_nest_reuse):
Improve debug output.

Change-Id: Ia594d5854de96183f3c5a669c161e5a9a73a29d7

From-SVN: r248925

7 years agoAdd debug counter for loop array prefetching.
Maxim Kuvyrkov [Tue, 6 Jun 2017 17:00:46 +0000 (17:00 +0000)]
Add debug counter for loop array prefetching.

* dbgcnt.def (prefetch): New debug counter.
* tree-ssa-loop-prefetch.c (dbgcnt.h): New include.
(schedule_prefetches): Stop issueing prefetches if debug counter
tripped.

Change-Id: Ia6160364735a889fb6d2370be21d98f87c0fe962

From-SVN: r248924

7 years agoRemove NO_LABEL_VALUES
Tom de Vries [Tue, 6 Jun 2017 15:35:35 +0000 (15:35 +0000)]
Remove NO_LABEL_VALUES

2017-06-06  Tom de Vries  <tom@codesourcery.com>

* doc/sourcebuild.texi (Testsuites, C Language Testsuites,
gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme.

* gcc.c-torture/compile/20000326-2.c: Use dg-require-effective-target
label_values instead of NO_LABEL_VALUES.
* gcc.c-torture/compile/920301-1.c: Same.
* gcc.c-torture/compile/920501-1.c: Same.
* gcc.c-torture/compile/941014-4.c: Same.
* gcc.c-torture/compile/labels-1.c: Same.
* gcc.c-torture/compile/pr18903.c: Same.
* gcc.c-torture/execute/920302-1.c: Same.
* gcc.c-torture/execute/920415-1.c: Same.
* gcc.c-torture/execute/920428-2.c: Same.
* gcc.c-torture/execute/920501-3.c: Same.
* gcc.c-torture/execute/920501-4.c: Same.
* gcc.c-torture/execute/920501-5.c: Same.
* gcc.c-torture/execute/920501-7.c: Same.
* gcc.c-torture/execute/920721-4.c: Same.
* gcc.c-torture/execute/980526-1.c: Same.
* gcc.c-torture/execute/990208-1.c: Same.
* gcc.c-torture/execute/comp-goto-1.c: Same.
* gcc.c-torture/execute/comp-goto-2.c: Same.
* gcc.dg/torture/stackalign/comp-goto-1.c: Same.
* gcc.dg/torture/stackalign/non-local-goto-4.c: Same.
* gcc.dg/torture/stackalign/non-local-goto-5.c: Same.
* gcc.dg/tree-prof/comp-goto-1.c: Same.
* gcc.dg/tree-prof/pr44777.c: Same.
* gcc.misc-tests/bprob-2.c: Same.
* gcc.misc-tests/gcov-3.c: Same.
* lib/gcc.exp (gcc_target_compile): Remove appending of
-DNO_LABEL_VALUES to additional_flags.
* lib/objc.exp (objc_target_compile): Same.
* lib/target-supports.exp (check_effective_target_label_values): Test on
'target_info exists gcc,no_label_values' instead of NO_LABEL_VALUES.

From-SVN: r248923

7 years agore PR c++/80979 (ice in lookup_mark, at cp/tree.c:2298)
Nathan Sidwell [Tue, 6 Jun 2017 15:06:56 +0000 (15:06 +0000)]
re PR c++/80979 (ice in lookup_mark, at cp/tree.c:2298)

PR c++/80979
* name-lookup.c (adl_class_only): Don't add visible friends.

From-SVN: r248922

7 years ago[AArch64] Allow const0_rtx operand for atomic compare-exchange patterns
Kyrylo Tkachov [Tue, 6 Jun 2017 13:26:46 +0000 (13:26 +0000)]
[AArch64] Allow const0_rtx operand for atomic compare-exchange patterns

* config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander):
Use aarch64_reg_or_zero predicate for operand 4.
(aarch64_compare_and_swap<mode> define_insn_and_split):
Use aarch64_reg_or_zero predicate for operand 3.  Add 'Z' constraint.
(aarch64_store_exclusive<mode>): Likewise for operand 2.

* gcc.target/aarch64/atomic_cmp_exchange_zero_reg_1.c: New test.

From-SVN: r248921

7 years ago[ARM] Rename *_compute_save_reg_mask ()
Thomas Preud'homme [Tue, 6 Jun 2017 12:58:02 +0000 (12:58 +0000)]
[ARM] Rename *_compute_save_reg_mask ()

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

    gcc/
    * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
    (arm_compute_save_core_reg_mask): This.
    (thumb1_compute_save_reg_mask): Rename into ...
    (thumb1_compute_save_core_reg_mask): This.
    (arm_compute_save_reg0_reg12_mask): Adapt comment.
    (arm_compute_frame_layout): Likewise.

From-SVN: r248920

7 years agore PR tree-optimization/80974 (wrong code (generated code hangs) at -O2 on x86_64...
Richard Biener [Tue, 6 Jun 2017 12:46:41 +0000 (12:46 +0000)]
re PR tree-optimization/80974 (wrong code (generated code hangs) at -O2 on x86_64-linux-gnu)

2017-06-06  Richard Biener  <rguenther@suse.de>

PR tree-optimization/80974
* tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
keep or clear leaders SSA info.

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

From-SVN: r248919

7 years agoAdd and use split_mode_p
Tom de Vries [Tue, 6 Jun 2017 12:25:04 +0000 (12:25 +0000)]
Add and use split_mode_p

2017-06-06  Tom de Vries  <tom@codesourcery.com>

* config/nvptx/nvptx.c (split_mode_p): New function.
(nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.

From-SVN: r248918

7 years agoUse maybe_split_mode in nvptx_print_operand
Tom de Vries [Tue, 6 Jun 2017 12:24:41 +0000 (12:24 +0000)]
Use maybe_split_mode in nvptx_print_operand

2017-06-06  Tom de Vries  <tom@codesourcery.com>

* config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.

From-SVN: r248917

7 years agore PR bootstrap/80978 (LTO/PGO bootstrap broken by r248863)
Jan Hubicka [Tue, 6 Jun 2017 11:30:54 +0000 (13:30 +0200)]
re PR bootstrap/80978 (LTO/PGO bootstrap broken by r248863)

PR bootstrap/80978
* tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
profile.

From-SVN: r248915

7 years agoFix gcc.dg/utf16-4.c
Thomas Preud'homme [Tue, 6 Jun 2017 09:55:17 +0000 (09:55 +0000)]
Fix gcc.dg/utf16-4.c

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

    gcc/testsuite/
    * gcc.dg/utf16-4.c: Accept "long unsigned int" as well as
    "unsigned int" in conversation warning on line 15.

From-SVN: r248914

7 years agoshrink-wrap.c (handle_simple_exit): Update profile.
Jan Hubicka [Tue, 6 Jun 2017 08:08:58 +0000 (10:08 +0200)]
shrink-wrap.c (handle_simple_exit): Update profile.

* shrink-wrap.c (handle_simple_exit): Update profile.
(try_shrink_wrapping): Upate profile.

From-SVN: r248913

7 years agopredict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
Jan Hubicka [Tue, 6 Jun 2017 08:07:31 +0000 (10:07 +0200)]
predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.

* predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
(tree_guess_outgoing_edge_probabilities): New.
* predict.h (tree_guess_outgoing_edge_probabilities): Declare.
* tree-cfg.c (gimple_find_sub_bbs): Propagate profile.

From-SVN: r248912

7 years ago* ipa-split.c (split_function): Initialize return bb profile.
Jan Hubicka [Tue, 6 Jun 2017 08:05:29 +0000 (10:05 +0200)]
* ipa-split.c (split_function): Initialize return bb profile.

From-SVN: r248911

7 years agoprofile.c (compute_branch_probabilities): Also initialize EXIT_BLOCK profile.
Jan Hubicka [Tue, 6 Jun 2017 08:03:55 +0000 (10:03 +0200)]
profile.c (compute_branch_probabilities): Also initialize EXIT_BLOCK profile.

* profile.c (compute_branch_probabilities): Also initialize
EXIT_BLOCK profile.

From-SVN: r248910

7 years agore PR tree-optimization/80928 (SLP vectorization does not handle induction in outer...
Richard Biener [Tue, 6 Jun 2017 07:37:14 +0000 (07:37 +0000)]
re PR tree-optimization/80928 (SLP vectorization does not handle induction in outer loop vectorization)

2017-06-06  Richard Biener  <rguenther@suse.de>

PR tree-optimization/80928
* tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
(vect_analyze_loop_operations): Properly guard analysis for
pure SLP case.
(vect_transform_loop): Likewise.
(vect_analyze_loop_2): Also reset SLP type on PHIs.
(vect_model_induction_cost): Do not cost for pure SLP.
(vectorizable_induction): Pass in SLP node, implement SLP vectorization
of induction in inner loop vectorization.
* tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
(vect_get_and_check_slp_defs): Handle vect_induction_def.
(vect_build_slp_tree): Likewise.  Handle PHIs as terminating the
recursion.
(vect_analyze_slp_cost_1): Cost induction.
(vect_detect_hybrid_slp_stmts): Handle PHIs.
(vect_get_slp_vect_defs): Likewise.
* tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
(vect_transform_stmt): Handle SLP reductions.
* tree-vectorizer.h (vectorizable_induction): Adjust.

* gcc.dg/vect/pr80928.c: New testcase.
* gcc.dg/vect/slp-13-big-array.c: Remove XFAILs.
* gcc.dg/vect/slp-13.c: Likewise.
* gcc.dg/vect/slp-perm-9.c: Prevent vectorization of check loop.

From-SVN: r248909

7 years agoDaily bump.
GCC Administrator [Tue, 6 Jun 2017 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r248908

7 years agors6000.c (make_resolver_func): Update init_lowered_empty_function call.
Michael Meissner [Mon, 5 Jun 2017 21:14:21 +0000 (21:14 +0000)]
rs6000.c (make_resolver_func): Update init_lowered_empty_function call.

2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (make_resolver_func): Update
init_lowered_empty_function call.

From-SVN: r248902

7 years agolibcpp: add callback for comment-handling
David Malcolm [Mon, 5 Jun 2017 20:53:06 +0000 (20:53 +0000)]
libcpp: add callback for comment-handling

gcc/testsuite/ChangeLog:
* g++.dg/plugin/comment_plugin.c: New test plugin.
* g++.dg/plugin/comments-1.C: New test file.
* g++.dg/plugin/plugin.exp (plugin_test_list): Add the above.

libcpp/ChangeLog:
* include/cpplib.h (struct cpp_callbacks): Add "comment"
callback.
* lex.c (_cpp_lex_direct): Call the comment callback if non-NULL.

From-SVN: r248901