1. 25 Jan, 2020 9 commits
    • testsuite: Fix up pr93166.C test, so that it doesn't FAIL with -std=c++98 and… · 05107d4e
      testsuite: Fix up pr93166.C test, so that it doesn't FAIL with -std=c++98 and tests what it is supposed to test.
      
      2020-01-26  Jakub Jelinek  <jakub@redhat.com>
      
      	PR ipa/93166
      	* g++.dg/pr93166.C: Move to ...
      	* g++.dg/pr93166_0.C: ... here.  Turn it into a proper lto test.
      Jakub Jelinek committed
    • testsuite: Fix up pr92788.C FAIL on ia32. · cc748322
      2020-01-26  Jakub Jelinek  <jakub@redhat.com>
      
      	PR tree-optimization/92788
      	* g++.dg/pr92788.C: Move to ...
      	* g++.target/i386/pr92788.C: ... here.  Remove target from dg-do line.
      	Change type of operator new's first parameter to __SIZE_TYPE__.
      Jakub Jelinek committed
    • c++: Poor diagnostic for dynamic_cast in constexpr context [PR93414] · de0684bf
      I neglected to add a proper diagnostic for the reference dynamic_cast
      case when the operand of a dynamic_cast doesn't refer to a public base
      of Derived, resulting in suboptimal error message
      
         error: call to non-'constexpr' function 'void* __cxa_bad_cast()'
      
      2020-01-25  Marek Polacek  <polacek@redhat.com>
      
      	PR c++/93414 - poor diagnostic for dynamic_cast in constexpr context.
      	* constexpr.c (cxx_eval_dynamic_cast_fn): Add a reference
      	dynamic_cast diagnostic.
      
      	* g++.dg/cpp2a/constexpr-dynamic18.C: New test.
      Marek Polacek committed
    • Fix missing SCNuMAX defines in inttypes.h on hpux11.[01]* · 10be08aa
      	2020-01-25  John David Anglin  <danglin@gcc.gnu.org>
      
      	* inclhack.def (hpux_c99_inttypes4): New, add missing SCNuMAX defines.
      	* fixincl.x: Regenerate.
      	* tests/base/inttypes.h: Update for above fix.
      John David Anglin committed
    • Remove assertion in get_info_about_necessary_edges · 98dd8c97
      2020-01-25  Feng Xue  <fxue@os.amperecomputing.com>
      
              PR ipa/93166
              * ipa-cp.c (get_info_about_necessary_edges): Remove value
              check assertion.
      
              PR ipa/93166
              * g++.dg/pr93166.C: New test.
      Feng Xue committed
    • Fix gcc.target/aarch64/vec_zeroextend.c for big-endian · 53d17297
      vec_zeroextend.c fails on big-endian as it assumes
      0 index is the lower part but it is not for
      big-endian case.  This fixes the problem by
      using the correct index for the lower part
      for big-endian.
      
      Committed as obvious after a test on aarch64_be-linux-gnu.
      
      ChangeLog:
      * gcc.target/aarch64/vec_zeroextend.c: Fix for big-endian.
      Andrew Pinski committed
    • c++: Fix ICE with constrained friend (PR93400). · 9c1179c3
      Here, the problem was that tsubst_friend_function was modifying the
      CONSTRAINT_INFO for the friend template to have the constraints for one
      instantiation, which fell down when we went to adjust it for another
      instantiation.  Fixed by deferring substitution of trailing requirements
      until we try to check declaration matching.
      
      	PR c++/93400 - ICE with constrained friend.
      	* constraint.cc (maybe_substitute_reqs_for): New.
      	* decl.c (function_requirements_equivalent_p): Call it.
      	* pt.c (tsubst_friend_function): Only substitute
      	TEMPLATE_PARMS_CONSTRAINTS.
      	(tsubst_template_parms): Copy constraints.
      Jason Merrill committed
    • c++: Fix ICE with lambda in member operator (PR93279) · 8b91e848
      Here the problem was that we were remembering the lookup in template scope,
      and then trying to reuse that lookup in the instantiation without
      substituting into it at all.  The simplest solution is to not try to
      remember a lookup that finds a class-scope declaration, as in that case
      doing the normal lookup again at instantiation time will always find the
      right declarations.
      
      	PR c++/93279 - ICE with lambda in member operator.
      	* name-lookup.c (maybe_save_operator_binding): Don't remember
      	class-scope bindings.
      Jason Merrill committed
    • Daily bump. · c6717270
      GCC Administrator committed
  2. 24 Jan, 2020 25 commits
    • Fix ICE due to invalid jump threading request · 98181563
      	PR tree-optimization/92788
      	* tree-ssa-threadedge.c (thread_across_edge): Check EDGE_COMPLEX
      	not EDGE_ABNORMAL.
      
      	PR tree-optimization/92788
      	* g++.dg/pr92788.C: New test.
      Jeff Law committed
    • c++: Fix parameter map handling of member typedef. · 55dd4453
      any_template_parm_r was looking at the args of an alias template-id, but we
      need to look at all args of a member alias/typedef, including implicit ones
      from the enclosing class.
      
      	PR c++/93377 - ICE with member alias in constraint.
      	* pt.c (any_template_parm_r): Look at template arguments for all
      	aliases, not only alias templates.
      Jason Merrill committed
    • i386: prefer vpermilpd over vpermpd [PR93395] · 5d782a8d
      In Agner Fog's tables, vpermilp[sd] with immediates seem to be
      much faster than vpermpd with immediate, for a good reason,
      the former only permute something within the lanes and don't do anything
      intra-lane, while vpermpd can.  So, functionality-wise, vpermilpd
      is more efficient subset of vpermpd.  We use the same RTL for those
      though (and also for certain broadcast).
      
      Now, the problem was that the vpermpd pattern appeared first in sse.md,
      followed by the broadcast patterns, followed by the vpermilp[sd].
      Which means unless -mavx -mno-avx2, we'd emit vpermpd instead of the
      more efficient alternatives.
      
      The following patch reorders them, so that vpermpd comes last, if we
      can match a broadcast, we do, if we can match a vpermilp[sd] that is not a
      broadcast, we will, otherwise fall back (of course only if -mavx2) to
      vpermpd.
      
      2020-01-24  Jakub Jelinek  <jakub@redhat.com>
      
      	PR target/93395
      	* config/i386/sse.md (*avx_vperm_broadcast_v4sf,
      	*avx_vperm_broadcast_<mode>,
      	<sse2_avx_avx512f>_vpermil<mode><mask_name>,
      	*<sse2_avx_avx512f>_vpermilp<mode><mask_name>):
      	Move before avx2_perm<mode>/avx512f_perm<mode>.
      
      	* gcc.target/i386/pr93395.c: New test.
      	* gcc.target/i386/avx512vl-vpermilpdi-1.c: Remove xfail.
      Jakub Jelinek committed
    • simplify-rtx: Punt for modes with precision above MAX_BITSIZE_MODE_ANY_INT [PR93376] · 14e5881e
      The following patch makes sure we punt in the 3 spots if precision is above
      MAX_BITSIZE_MODE_ANY_INT.
      
      2020-01-24  Jakub Jelinek  <jakub@redhat.com>
      
      	PR target/93376
      	* simplify-rtx.c (simplify_const_unary_operation,
      	simplify_const_binary_operation): Punt for mode precision above
      	MAX_BITSIZE_MODE_ANY_INT.
      Jakub Jelinek committed
    • Decrease cortexa57_extra_costs's alu.shift_reg · 6ccc19bd
      Like I mentioned in https://gcc.gnu.org/ml/gcc/2020-01/msg00157.html,
      The shift by a register should be just COSTS_N_INSNS (1) rather than
      COSTS_N_INSNS (2).  This allows lshift_cheap_p to return true now
      and converting switches to be using shift and other like
      structures.  I noticed this difference when I was working
      through PR 93131 and understanding what reassoc could handle.
      
      ChangeLog:
      * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Change
      alu.shift_reg to 0.
      Andrew Pinski committed
    • c++: Fix ICE in tsubst_copy with parenthesized expression [PR93299] · d54a86cd
      Since e4511ca2 force_paren_expr can create
      a VIEW_CONVERT_EXPR so that we have something to set REF_PARENTHESIZED_P
      on, while not making the expression dependent.  But tsubst_copy can't cope
      with such a VIEW_CONVERT_EXPR, because it's not location_wrapper_p, or
      a TEMPLATE_PARM_INDEX wrapped in a VIEW_CONVERT_EXPR.
      
      I think we need to teach tsubst_copy how to handle it.  Setting
      EXPR_LOCATION_WRAPPER_P in force_paren_expr would make the ICE go away
      too, but tsubst_copy would lose the REF_PARENTHESIZED_P flag.
      
      2020-01-24  Marek Polacek  <polacek@redhat.com>
      
      	PR c++/93299 - ICE in tsubst_copy with parenthesized expression.
      	* pt.c (tsubst_copy): Handle a REF_PARENTHESIZED_P VIEW_CONVERT_EXPR.
      
      	* g++.dg/cpp1y/paren5.C: New test.
      Marek Polacek committed
    • Add -fdelete-null-pointer-checks to some C++ testcases. · 7c75a2a3
      These testcases were failing on nios2-elf, which defaults to
      -fno-delete-null-pointer-checks.
      
      2020-01-24  Sandra Loosemore  <sandra@codesourcery.com>
      
      	gcc/testsuite/
      	* g++.dg/cpp0x/constexpr-odr1.C: Add -fdelete-null-pointer-checks.
      	* g++.dg/cpp0x/constexpr-odr2.C: Likewise.
      	* g++.dg/cpp0x/nontype4.C: Likewise.
      	* g++.dg/cpp1y/constexpr-new.C: Likewise.
      	* g++.dg/cpp1y/new1.C: Likewise.
      	* g++.dg/cpp1y/new2.C: Likewise.
      	* g++.dg/cpp2a/constexpr-dynamic11.C: Likewise.
      	* g++.dg/cpp2a/constexpr-dynamic17.C: Likewise.
      	* g++.dg/cpp2a/constexpr-dynamic4.C: Likewise.
      	* g++.dg/cpp2a/constexpr-new1.C: Likewise.
      	* g++.dg/cpp2a/constexpr-new10.C: Likewise.
      	* g++.dg/cpp2a/constexpr-new2.C: Likewise.
      	* g++.dg/cpp2a/constexpr-new3.C: Likewise.
      	* g++.dg/cpp2a/constexpr-new4.C: Likewise.
      	* g++.dg/cpp2a/constexpr-new8.C: Likewise.
      	* g++.dg/cpp2a/constexpr-new9.C: Likewise.
      	* g++.dg/cpp2a/nontype-class1.C: Likewise.
      Sandra Loosemore committed
    • c++: Unshare expressions from constexpr cache. · 28a5d5c3
      Another place we need to unshare cached expressions.
      
      	PR c++/92852 - ICE with generic lambda and reference var.
      	* constexpr.c (maybe_constant_value): Likewise.
      Jason Merrill committed
    • libstdc++: Simplify construction of comparison category types · 482eeff5
      The _Eq and _Ord enumerations can be combined into one, reducing the
      number of constructors needed for the comparison category types. The
      redundant equal enumerator can be removed and equivalent used in its
      place. The _Less and _Greater enumerators can be renamed because 'less'
      and 'greater' are already reserved names anyway.
      
      	* libsupc++/compare (__cmp_cat::_Eq): Remove enumeration type.
      	(__cmp_cat::_Ord::equivalent): Add enumerator.
      	(__cmp_cat::_Ord::_Less, __cmp_cat::_Ord::_Greater): Rename to less
      	and greater.
      	(partial_ordering, weak_ordering, strong_ordering): Remove
      	constructors taking __cmp_cat::_Eq parameters. Use renamed
      	enumerators.
      Jonathan Wakely committed
    • Emit reasonable diagnostic rather than ICE on invalid ASM on H8 port · 64c9f2d9
      	PR target/13721
      	* config/h8300/h8300.c (h8300_print_operand): Only call byte_reg
      	for REGs.  Call output_operand_lossage to get more reasonable
      	diagnostics.
      
      	PR target/13721
      	* gcc.target/h8300/pr13721.c: New test.
      Jeff Law committed
    • Fix ICE on unsupported FP comparison · f4d4a406
      2020-01-24  Andrew Stubbs  <ams@codesourcery.com>
      
      	gcc/
      	* config/gcn/gcn-valu.md (vec_cmp<mode>di): Use
      	gcn_fp_compare_operator.
      	(vec_cmpu<mode>di): Use gcn_compare_operator.
      	(vec_cmp<u>v64qidi): Use gcn_compare_operator.
      	(vec_cmp<mode>di_exec): Use gcn_fp_compare_operator.
      	(vec_cmpu<mode>di_exec): Use gcn_compare_operator.
      	(vec_cmp<u>v64qidi_exec): Use gcn_compare_operator.
      	(vec_cmp<mode>di_dup): Use gcn_fp_compare_operator.
      	(vec_cmp<mode>di_dup_exec): Use gcn_fp_compare_operator.
      	(vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>): Use
      	gcn_fp_compare_operator.
      	(vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>_exec): Use
      	gcn_fp_compare_operator.
      	(vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>): Use
      	gcn_fp_compare_operator.
      	(vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>_exec): Use
      	gcn_fp_compare_operator.
      Andrew Stubbs committed
    • contrib: Change 'remote' for personal branches and add branch creation script · 612137e1
      Whilst trying to convert the add vendor branch script to work with
      personal branches I encountered a minor issue where git would report
      ambiguous refs when checking out the new branch.
      
      It turns out that this is because git considers <me>/<topic> to be
      ambiguous if both
      
        refs/heads/<me>/<topic>
      
      and
      
        refs/remotes/<me>/<topic>
      
      exist in the list of known branches.
      
      Having thought about this a bit, I think the best solution is to adopt
      something more like the vendors space and call the remote users/<me>
      (this also works better if you want to set up remotes to track other
      users branches as well).
      
      So this patch has two parts.
      
      1) It updates gcc-git-customization.sh to set up the new 'remote' and
      converts any existing remote and branches tracking that to the new
      format
      2) It adds a new script to set up a personal branch on the gcc git repository.
      
      	* gcc-git-customization.sh: Use users/<pfx> for the personal remote
      	rather than just <pfx>.  Convert any existing personal branches to the
      	new remote.
      	* git-add-user-branch.sh: New file.
      Richard Earnshaw committed
    • libgo: handle --with-toolexeclibdir=. · ba386bea
      Patch by Maciej W. Rozycki.
      
      Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/216239
      Ian Lance Taylor committed
    • Remove bogus __has_include controlling macro · a1f6eff2
      I noticed, but ignored this code when addressing p80005, but having
      fixed up defined(X) on the modules branch, I could see where it came
      from, and it's obviously wrong as we've just pulled out a string
      contant from the token.
      
      	* expr.c (parse_has_include): Remove bogus controlling macro code.
      Nathan Sidwell committed
    • Add `--with-toolexeclibdir=' configuration option · e8e66971
      Provide means, in the form of a `--with-toolexeclibdir=' configuration
      option, to override the default installation directory for target
      libraries, otherwise known as $toolexeclibdir.  This is so that it is
      possible to get newly-built libraries, particularly the shared ones,
      installed in a common place, so that they can be readily used by the
      target system as their host libraries, possibly over NFS, without a need
      to manually copy them over from the currently hardcoded location they
      would otherwise be installed in.
      
      In the presence of the `--enable-version-specific-runtime-libs' option
      and for configurations building native GCC the option is ignored.
      
      	config/
      	* toolexeclibdir.m4: New file.
      
      	gcc/
      	* doc/install.texi (Cross-Compiler-Specific Options): Document
      	`--with-toolexeclibdir' option.
      
      	libada/
      	* Makefile.in (configure_deps): Add `toolexeclibdir.m4'.
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* configure: Regenerate.
      
      	libatomic/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      
      	libffi/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* include/Makefile.in: Regenerate.
      	* man/Makefile.in: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      
      	libgcc/
      	* Makefile.in (configure_deps): Add `toolexeclibdir.m4'.
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* configure: Regenerate.
      
      	libgfortran/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      
      	libgomp/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      
      	libhsail-rt/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      
      	libitm/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      
      	libobjc/
      	* Makefile.in (aclocal_deps): Add `toolexeclibdir.m4'.
      	* aclocal.m4: Include `toolexeclibdir.m4'.
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* configure: Regenerate.
      
      	liboffloadmic/
      	* plugin/configure.ac: Handle `--with-toolexeclibdir='.
      	* plugin/Makefile.in: Regenerate.
      	* plugin/aclocal.m4: Regenerate.
      	* plugin/configure: Regenerate.
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      
      	libphobos/
      	* m4/druntime.m4: Handle `--with-toolexeclibdir='.
      	* m4/Makefile.in: Regenerate.
      	* libdruntime/Makefile.in: Regenerate.
      	* src/Makefile.in: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      
      	libquadmath/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      
      	libsanitizer/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* asan/Makefile.in: Regenerate.
      	* interception/Makefile.in: Regenerate.
      	* libbacktrace/Makefile.in: Regenerate.
      	* lsan/Makefile.in: Regenerate.
      	* sanitizer_common/Makefile.in: Regenerate.
      	* tsan/Makefile.in: Regenerate.
      	* ubsan/Makefile.in: Regenerate.
      
      	libssp/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      
      	libstdc++-v3/
      	* acinclude.m4: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* doc/Makefile.in: Regenerate.
      	* include/Makefile.in: Regenerate.
      	* libsupc++/Makefile.in: Regenerate.
      	* po/Makefile.in: Regenerate.
      	* python/Makefile.in: Regenerate.
      	* src/Makefile.in: Regenerate.
      	* src/c++11/Makefile.in: Regenerate.
      	* src/c++17/Makefile.in: Regenerate.
      	* src/c++98/Makefile.in: Regenerate.
      	* src/filesystem/Makefile.in: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      
      	libvtv/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      
      	zlib/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      Maciej W. Rozycki committed
    • libgcov: Fix merging of topn [PR92924] · e3fe0070
      	PR tree-optimization/92924
      	* libgcov-merge.c (merge_topn_values_set): Fix merging.
      Jan Hubicka committed
    • debug/92763 Fix testcase to require fopenmp · ad8e2415
      The testcase fails to link on targets without -pthread which is
      implied by -fopenmp. Use dg-require-effective-target fopenmp to avoid
      this problem.
      
      2020-01-24  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	PR debug/92763
      	* g++.dg/debug/pr92763.C: Require fopenmp.
      Christophe Lyon committed
    • Add missing ChangeLog entry for my last commit · 9e424d97
      libgomp/ChangeLog: Add entry for commit 4bd03ed6.
      Frederik Harwath committed
    • Fix expectation and types in acc_get_property tests · 4bd03ed6
      * Weaken expectation concerning acc_property_free_memory.
        Do not expect the value returned by CUDA since that value might have
        changed in the meantime.
      * Use correct type for the results of calls to acc_get_property in tests.
      
      libgomp/
      	* testsuite/libgomp.oacc-c-c++-common/acc_get_property-aux.c
      	(expect_device_properties): Remove "expected_free_mem" argument,
      	change "expected_total_mem" argument type to size_t;
      	change types of acc_get_property results to size_t,
      	adapt format strings.
      	* testsuite/libgomp.oacc-c-c++-common/acc_get_property.c:
      	Use %zu instead of %zd to print size_t values.
      	* testsuite/libgomp.oacc-c-c++-common/acc_get_property-2.c: Adapt and
      	rename to ...
      	* testsuite/libgomp.oacc-c-c++-common/acc_get_property-nvptx.c: ... this.
      	* testsuite/libgomp.oacc-c-c++-common/acc_get_property-3.c: Adapt and
      	rename to ...
      	* testsuite/libgomp.oacc-c-c++-common/acc_get_property-host.c: ... this.
      
      Reviewed-by: Thomas Schwinge  <thomas@codesourcery.com>
      Frederik Harwath committed
    • doc: target.def (flags_regnum): Also mention effect on delay slot filling. · 9adea939
      * target.def (flags_regnum): Also mention effect on delay slot filling.
      * doc/tm.texi: Regenerate.
      
      Previously only mentioned an effect on compare elimination.
      Hans-Peter Nilsson committed
    • analyzer: avoid relying on system <assert.h> in testsuite (PR 93367) · a0b935ac
      PR analyzer/93367 reports a testsuite failure in abort.c on
      hppa64-hp-hpux11.11 when detecting if the analyzer "knows" that the
      condition holds after the assert.
      
      The root cause is that the assertion failure function in that
      configuration's <assert.h> is not marked with
      __attribute__ ((__noreturn__)).
      
      This patch reworks the test to avoid <assert.h> in favor of a custom
      implementation of assert, so that the test demonstrates the idea without
      relying on properties of <assert.h>.
      
      gcc/testsuite/ChangeLog:
      	PR analyzer/93367
      	* gcc.dg/analyzer/abort.c: Remove include of <assert.h>.
      	Replace use of assert with a custom assertion implementation.
      David Malcolm committed
    • Daily bump. · 472dc648
      GCC Administrator committed
    • internal/cpu: don't define CacheLinePadSize for riscv64 · 1e156d9b
      In libgo CacheLinePadSize is defined by the generated file cpugen.go.
      
      Keep cpu_riscv64.go around, even though it is now empty, so that
      we will pick up changes to it in future merges.
      
      Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/216077
      Ian Lance Taylor committed
  3. 23 Jan, 2020 6 commits