1. 19 Oct, 2018 8 commits
    • Fix testsuite failures in Debug Mode · 7b1e8acf
      This fixes the following testsuite failures on ia32 when compiled with
      -D_GLIBCXX_DEBUG:
      
      FAIL: 23_containers/map/modifiers/erase/dr130-linkage-check.cc
      FAIL: 23_containers/multimap/modifiers/erase/dr130-linkage-check.cc
      FAIL: 23_containers/multiset/modifiers/erase/dr130-linkage-check.cc
      FAIL: 23_containers/set/modifiers/erase/dr130-linkage-check.cc
      
      The normal mode containers already use the abi-tag to mangle these
      overloads differently, but the debug mode versions weren't fixed.
      
      	* include/debug/map.h (map::erase(iterator)): Add abi-tag so that
      	C++11 version mangles differently from incompatible C++98 version.
      	* include/debug/multimap.h (multimap::erase(iterator)): Likewise.
      	* include/debug/multiset.h (multiset::erase(iterator))
      	(multiset::erase(const_iterator, const_iterator)): Likewise.
      	* include/debug/set.h (set::erase(iterator))
      	(multiset::erase(const_iterator, const_iterator)): Likewise.
      
      From-SVN: r265313
      Jonathan Wakely committed
    • Fix oversight in previous commit · ba52922f
      From-SVN: r265312
      Eric Botcazou committed
    • i386: Enable AVX512 memory broadcast for FP add · 13e29c36
      Many AVX512 vector operations can broadcast from a scalar memory source.
      This patch enables memory broadcast for FP add operations.
      
      gcc/
      
      	PR target/72782
      	* config/i386/sse.md
      	(*<plusminus_insn><mode>3<mask_name>_bcst_1): New.
      	(*add<mode>3<mask_name>_bcst_2): Likewise.
      
      gcc/testsuite/
      
      	PR target/72782
      	* gcc.target/i386/avx512-binop-1.h: New file.
      	* gcc.target/i386/avx512-binop-2.h: Likewise.
      	* gcc.target/i386/avx512-binop-3.h: Likewise.
      	* gcc.target/i386/avx512-binop-4.h: Likewise.
      	* gcc.target/i386/avx512-binop-5.h: Likewise.
      	* gcc.target/i386/avx512-binop-6.h: Likewise.
      	* gcc.target/i386/avx512f-add-df-zmm-1.c: Likewise.
      	* gcc.target/i386/avx512f-add-sf-zmm-1.c: Likewise.
      	* gcc.target/i386/avx512f-add-sf-zmm-2.c: Likewise.
      	* gcc.target/i386/avx512f-add-sf-zmm-3.c: Likewise.
      	* gcc.target/i386/avx512f-add-sf-zmm-4.c: Likewise.
      	* gcc.target/i386/avx512f-add-sf-zmm-5.c: Likewise.
      	* gcc.target/i386/avx512f-add-sf-zmm-6.c: Likewise.
      	* gcc.target/i386/avx512f-sub-df-zmm-1.c: Likewise.
      	* gcc.target/i386/avx512f-sub-sf-zmm-1.c: Likewise.
      	* gcc.target/i386/avx512f-sub-sf-zmm-2.c: Likewise.
      	* gcc.target/i386/avx512f-sub-sf-zmm-3.c: Likewise.
      	* gcc.target/i386/avx512f-sub-sf-zmm-4.c: Likewise.
      	* gcc.target/i386/avx512f-sub-sf-zmm-5.c: Likewise.
      	* gcc.target/i386/avx512vl-add-sf-xmm-1.c: Likewise.
      	* gcc.target/i386/avx512vl-add-sf-ymm-1.c: Likewise.
      	* gcc.target/i386/avx512vl-sub-sf-xmm-1.c: Likewise.
      	* gcc.target/i386/avx512vl-sub-sf-ymm-1.c: Likewise.
      
      From-SVN: r265311
      H.J. Lu committed
    • i386: Use register_operand in AVX512 FMA with memory broadcast · 3b1778b7
      Use "register_operand" in AVX512 FMA with memory broadcast when only
      registers are allowed.
      
      	* config/i386/sse.md
      	(*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1):
      	Replace nonimmediate_operand with register_operand.
      	(*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_2):
      	Likewise.
      	(*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_3):
      	Likewise.
      
      From-SVN: r265310
      H.J. Lu committed
    • lra: fix spill_hard_reg_in_range clobber check · 3664a0f1
      FROM..TO range might contain NOTE_INSN_DELETED insns, for which the
      corresponding entries in lra_insn_recog_data[] are NULLs.  Example from
      the problematic code from PR87596:
      
          (note 148 154 68 7 NOTE_INSN_DELETED)
      
      lra_insn_recog_data[] is used directly only when the insn in question
      is taken from insn_bitmap, which is not the case here.  In other
      situations lra_get_insn_recog_data () guarded by INSN_P () or other
      stricter predicate are used.  So we need to do this here as well.
      
      A tiny detail worth noting: I put the INSN_P () check before the
      insn_bitmap check, because I believe that insn_bitmap can contain only
      real insns anyway.
      
      gcc/ChangeLog:
      
      2018-10-19  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	PR rtl-optimization/87596
      	* lra-constraints.c (spill_hard_reg_in_range): Use INSN_P () +
      	lra_get_insn_recog_data () instead of lra_insn_recog_data[]
      	for instructions in FROM..TO range.
      
      gcc/testsuite/ChangeLog:
      
      2018-10-19  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	PR rtl-optimization/87596
      	* gcc.target/i386/pr87596.c: New test.
      
      From-SVN: r265306
      Ilya Leoshkevich committed
    • cfgexpand.c (expand_one_var): Use specific wording in error message for non-local frame variables. · ba9a8625
      	* cfgexpand.c (expand_one_var): Use specific wording in error message
      	for non-local frame variables.
      	* stor-layout.c (layout_decl): Do not issue a warning for them.
      
      From-SVN: r265305
      Eric Botcazou committed
    • Reset insn priority after inc/ref replacement · 079c81d0
      This patch recomputes the insn priority when a replacement for one of its
      dependent insns is applied.
      
      gcc/ChangeLog:
      
      	* haifa-sched.c (priority): Add force_recompute parameter.
      	(apply_replacement): Call priority () with force_recompute = true.
      	(restore_pattern): Likewise.
      
      From-SVN: r265304
      Robin Dapp committed
    • Daily bump. · e75883a5
      From-SVN: r265303
      GCC Administrator committed
  2. 18 Oct, 2018 27 commits
    • compiler: add COMPARE_ALIASES flag for type compare and hash · 083e9210
          
          Normally aliases compare as identical to the underlying type.  Add a
          COMPARE_ALIASES flag to let them compare (and hash) differently.  This
          will be used by later patches in this series.
          
          Reviewed-on: https://go-review.googlesource.com/c/143021
      
      From-SVN: r265297
      Ian Lance Taylor committed
    • compiler: list indirect imports separately in export data · dbf9376f
          
          Previously when export data referred to a type that was not defined in
          a directly imported package, we would write the package name as
          additional information in the type's export data.  That approach
          required all type information to be read in order.  This patch changes
          the compiler to find all references to indirectly imported packages,
          and write them out as an indirectimport line in the import data.  This
          will permit us to read exported type data out of order.
          
          The type traversal used to find indirect imports is a little more
          complicated than necessary in preparation for later patches in this
          series.
          
          Reviewed-on: https://go-review.googlesource.com/c/143020
      
      From-SVN: r265296
      Ian Lance Taylor committed
    • Revert SVN revision 264561, incorrectly committed directly to the GCC · 8cc43cb4
      repo rather than to the master repo.
      
      From-SVN: r265294
      Ian Lance Taylor committed
    • compiler: rewrite Type::are_identical to use flags · 0799a08b
          
          A single flags parameter replaces the Cmp_tags and errors_are_identical
          parameters. The existing behavior is unchanged.
          
          This is a simplification step for future work that will add a new flag.
          
          Reviewed-on: https://go-review.googlesource.com/c/143019
      
      From-SVN: r265293
      Ian Lance Taylor committed
    • Limit mask of vec_merge to HOST_BITS_PER_WIDE_INT · 28dd75a3
      Since mask of vec_merge is in HOST_WIDE_INT, HOST_BITS_PER_WIDE_INT is
      the maximum number of vector elements.
      
      	* simplify-rtx.c (simplify_subreg): Limit mask of vec_merge to
      	HOST_BITS_PER_WIDE_INT.
      	(test_vector_ops_duplicate): Likewise.
      
      From-SVN: r265290
      H.J. Lu committed
    • i386: Enable AVX512 memory broadcast for FMA · 9a91ed2a
      Many AVX512 vector operations can broadcast from a scalar memory source.
      This patch enables memory broadcast for FMA operations.
      
      gcc/
      
      	PR target/72782
      	* config/i386/sse.md (VF_AVX512): New.
      	(avx512bcst): Likewise.
      	(*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1):
      	Likewise.
      	(*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_2):
      	Likewise.
      	(*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_3):
      	Likewise.
      
      gcc/testsuite/
      
      	PR target/72782
      	* gcc.target/i386/avx512-fma-1.h: New file.
      	* gcc.target/i386/avx512-fma-2.h: Likewise.
      	* gcc.target/i386/avx512-fma-3.h: Likewise.
      	* gcc.target/i386/avx512-fma-4.h: Likewise.
      	* gcc.target/i386/avx512-fma-5.h: Likewise.
      	* gcc.target/i386/avx512-fma-6.h: Likewise.
      	* gcc.target/i386/avx512-fma-7.h: Likewise.
      	* gcc.target/i386/avx512-fma-8.h: Likewise.
      	* gcc.target/i386/avx512f-fmadd-df-zmm-1.c: Likewise.
      	* gcc.target/i386/avx512f-fmadd-sf-zmm-1.c: Likewise.
      	* gcc.target/i386/avx512f-fmadd-sf-zmm-2.c: Likewise.
      	* gcc.target/i386/avx512f-fmadd-sf-zmm-3.c: Likewise.
      	* gcc.target/i386/avx512f-fmadd-sf-zmm-4.c: Likewise.
      	* gcc.target/i386/avx512f-fmadd-sf-zmm-5.c: Likewise.
      	* gcc.target/i386/avx512f-fmadd-sf-zmm-6.c: Likewise.
      	* gcc.target/i386/avx512f-fmadd-sf-zmm-7.c: Likewise.
      	* gcc.target/i386/avx512f-fmadd-sf-zmm-8.c: Likewise.
      	* gcc.target/i386/avx512vl-fmadd-sf-xmm-1.c: Likewise.
      	* gcc.target/i386/avx512vl-fmadd-sf-ymm-1.c: Likewise.
      
      From-SVN: r265288
      H.J. Lu committed
    • Fix tests that fail when built with different options · 955fe731
      	* testsuite/20_util/duration/cons/2.cc: Add -ffloat-store to fix
      	failure when compiled without optimisation.
      	* testsuite/ext/profile/mutex_extensions_neg.cc: Prune additional
      	errors caused by C++17 std::pmr alias templates.
      
      From-SVN: r265287
      Jonathan Wakely committed
    • PR libstdc++/87642 handle multibyte thousands separators from libc · c0ace69e
      If a locale's THOUSANDS_SEP or MON_THOUSANDS_SEP string is not a
      single character we either need to narrow it to a single char or
      ignore it (and therefore disable digit grouping for that facet).
      
      	PR libstdc++/87642
      	* config/locale/gnu/monetary_members.cc
      	(moneypunct<char, true>::_M_initialize_moneypunct): Use
      	__narrow_multibyte_chars to convert multibyte thousands separators
      	to a single char.
      	* config/locale/gnu/numeric_members.cc
      	(numpunct<char>::_M_initialize_numpunct): Likewise.
      	(__narrow_multibyte_chars): New function.
      
      From-SVN: r265286
      Jonathan Wakely committed
    • compiler: drop semicolons in export data · e8ce849a
          
          The export data, which is approximately readable and looks something
          like Go, was first implemented back when Go still used semicolons.
          Drop the semicolons, to make it look slightly more Go like and make it
          slightly smaller.
          
          This updates the compiler and the gccgoimporter package.
          
          This introduces a new version of the export data.  There are going to
          be more changes to the export data, so this version is still subject
          to change.
          
          Reviewed-on: https://go-review.googlesource.com/c/143018
      
      From-SVN: r265284
      Ian Lance Taylor committed
    • Fix (re)alloc of polymorphic arrays · d0477233
              PR fortran/87625
              * trans-array.c (gfc_is_reallocatable_lhs): Detect allocatable
              polymorphic arrays.
      
              PR fortran/87625
              * gfortran.dg/realloc_on_assign_31.f90: New file.
      
      From-SVN: r265283
      Tobias Burnus committed
    • udivmodsi4.c (__udivmodsi4): Rename to conform to coding standard. · a9a2fddb
      	* 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
      Paul Koning committed
    • Improve -dumpversion and -dumpfullversion documentation · 616e0db9
      	* doc/invoke.texi (-dumpversion): Improve grammar.
      	(-dumpfullversion): Make more consistent with -dumpversion.
      
      From-SVN: r265276
      Jonathan Wakely committed
    • i386.c (ix86_emit_fp_unordered_jump): Set JUMP_LABEL to the jump insn. · b75dff03
      	* 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
      Uros Bizjak committed
    • Fix missing entry to gcc/ada/ChangeLog for r265240 · 23abcf78
      From-SVN: r265272
      David Malcolm committed
    • Fix ICE in substring-handling building 502.gcc_r (PR 87562) · 05d57d65
      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
      David Malcolm committed
    • PR libstdc++/87641 correctly initialize accumulator in valarray::sum() · fab2c75b
      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
      Jonathan Wakely committed
    • i386.c (ix86_builtin_vectorization_cost): Do not feed width-specific load/store… · b7167993
      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
      Richard Biener committed
    • Call simplify_gen_subreg to simplify subreg of vec_merge · aff3ce41
      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
      H.J. Lu committed
    • i386.c: Fix costing of vector FMA. · 200045a9
      2018-10-18  Richard Biener  <rguenther@suse.de>
      
      	* config/i386/i386.c: Fix costing of vector FMA.
      
      From-SVN: r265266
      Richard Biener committed
    • i386.c (ix86_vec_cost): Remove !parallel path and argument. · b960e909
      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
      Richard Biener committed
    • re PR fortran/58618 (Wrong code with character substring and ASSOCIATE) · 75cdd535
      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
      Paul Thomas committed
    • re PR fortran/58618 (Wrong code with character substring and ASSOCIATE) · 75a6d7da
      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
      Paul Thomas committed
    • re PR tree-optimization/87087 (Optimization hangs up and consumes over 15Gb of memory) · de0edf87
      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
      Richard Biener committed
    • Simplify subreg of vec_merge of vec_duplicate · 294973a4
      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
      H.J. Lu committed
    • revert: [multiple changes] · 7702ab65
      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
      François Dumont committed
    • Daily bump. · 7bed4de2
      From-SVN: r265255
      GCC Administrator committed
  3. 17 Oct, 2018 5 commits
    • Add -std=c2x, -std=gnu2x, -Wc11-c2x-compat, C2X _Static_assert support. · 9f936c86
      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
      Joseph Myers committed
    • Update C17 option descriptions not to say "expected to be published". · 7a8a92c4
      	* 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
      Joseph Myers committed
    • Update manual references for C17 having been published. · 7dc41f3d
      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
      Joseph Myers committed
    • Fix select-type regression · 91f9b2e0
              PR fortran/87632
              * resolve.c (resolve_select_type): Use correct variable.
      
              PR fortran/87632
              * gfortran.dg/select_type_47.f90: New.
      
      From-SVN: r265248
      Tobias Burnus committed
    • re PR libstdc++/87619 (sizeof(std::variant) can be reduced if its variant_size is UCHAR_MAX) · 4026227f
      PR libstdc++/87619
      
      * include/std/variant (__select_index): Fix an off-by-one.
      * testsuite/20_util/variant/87619.cc: New.
      
      From-SVN: r265247
      Ville Voutilainen committed