1. 19 Feb, 2019 3 commits
    • P0482R5 char8_t: Standard library support · c124af93
      gcc/cp:
      
      2019-02-19  Tom Honermann  <tom@honermann.net>
      
      	* name-lookup.c (get_std_name_hint): Added u8string as a name hint.
      
      libstdc++:
      
      2019-02-19  Tom Honermann  <tom@honermann.net>
      
      	P0482R5 char8_t: Standard library support
      	* config/abi/pre/gnu-versioned-namespace.ver (CXXABI_2.0): Add
      	typeinfo symbols for char8_t.
      	* config/abi/pre/gnu.ver: Add CXXABI_1.3.12.
      	(GLIBCXX_3.4.26): Add symbols for specializations of
      	numeric_limits and codecvt that involve char8_t.
      	(CXXABI_1.3.12): Add typeinfo symbols for char8_t.
      	* include/bits/atomic_base.h: Add atomic_char8_t.
      	* include/bits/basic_string.h: Add std::hash<u8string> and
      	operator""s(const char8_t*, size_t).
      	* include/bits/c++config: Define _GLIBCXX_USE_CHAR8_T and
      	__cpp_lib_char8_t.
      	* include/bits/char_traits.h: Add char_traits<char8_t>.
      	* include/bits/codecvt.h: Add
      	codecvt<char16_t, char8_t, mbstate_t>,
      	codecvt<char32_t, char8_t, mbstate_t>,
      	codecvt_byname<char16_t, char8_t, mbstate_t>, and
      	codecvt_byname<char32_t, char8_t, mbstate_t>.
      	* include/bits/cpp_type_traits.h: Add __is_integer<char8_t> to
      	recognize char8_t as an integral type.
      	* include/bits/fs_path.h: (path::__is_encoded_char): Recognize
      	char8_t.
      	(path::u8string): Return std::u8string when char8_t support is
      	enabled.
      	(path::generic_u8string): Likewise.
      	(path::_S_convert): Handle conversion from char8_t input.
      	(path::_S_str_convert): Likewise.
      	* include/bits/functional_hash.h: Add hash<char8_t>.
      	* include/bits/locale_conv.h (__str_codecvt_out): Add overloads for
      	char8_t.
      	* include/bits/locale_facets.h (_GLIBCXX_NUM_UNICODE_FACETS): Bump
      	for new char8_t specializations.
      	* include/bits/localefwd.h: Add missing declarations of
      	codecvt<char16_t, char, mbstate_t> and
      	codecvt<char32_t, char, mbstate_t>.  Add char8_t declarations
      	codecvt<char16_t, char8_t, mbstate_t> and
      	codecvt<char32_t, char8_t, mbstate_t>.
      	* include/bits/postypes.h: Add u8streampos
      	* include/bits/stringfwd.h: Add declarations of
      	char_traits<char8_t> and u8string.
      	* include/c_global/cstddef: Add __byte_operand<char8_t>.
      	* include/experimental/bits/fs_path.h (path::__is_encoded_char):
      	Recognize char8_t.
      	(path::u8string): Return std::u8string when char8_t support is
      	enabled.
      	(path::generic_u8string): Likewise.
      	(path::_S_convert): Handle conversion from char8_t input.
      	(path::_S_str_convert): Likewise.
      	* include/experimental/string: Add u8string.
      	* include/experimental/string_view: Add u8string_view,
      	hash<experimental::u8string_view>, and
      	operator""sv(const char8_t*, size_t).
      	* include/std/atomic: Add atomic<char8_t> and atomic_char8_t.
      	* include/std/charconv (__is_int_to_chars_type): Recognize char8_t
      	as a character type.
      	* include/std/limits: Add numeric_limits<char8_t>.
      	* include/std/string_view: Add u8string_view,
      	hash<experimental::u8string_view>, and
      	operator""sv(const char8_t*, size_t).
      	* include/std/type_traits: Add __is_integral_helper<char8_t>,
      	__make_unsigned<char8_t>, and __make_signed<char8_t>.
      	* libsupc++/atomic_lockfree_defines.h: Define
      	ATOMIC_CHAR8_T_LOCK_FREE.
      	* src/c++11/Makefile.am: Compile with -fchar8_t when compiling
      	codecvt.cc and limits.cc so that char8_t specializations of
      	numeric_limits and codecvt and emitted.
      	* src/c++11/Makefile.in: Likewise.
      	* src/c++11/codecvt.cc: Define members of
      	codecvt<char16_t, char8_t, mbstate_t>,
      	codecvt<char32_t, char8_t, mbstate_t>,
      	codecvt_byname<char16_t, char8_t, mbstate_t>, and
      	codecvt_byname<char32_t, char8_t, mbstate_t>.
      	* src/c++11/limits.cc: Define members of
      	numeric_limits<char8_t>.
      	* src/c++98/Makefile.am: Compile with -fchar8_t when compiling
      	locale_init.cc and localename.cc.
      	* src/c++98/Makefile.in: Likewise.
      	* src/c++98/locale_init.cc: Add initialization for the
      	codecvt<char16_t, char8_t, mbstate_t> and
      	codecvt<char32_t, char8_t, mbstate_t> facets.
      	* src/c++98/localename.cc: Likewise.
      	* testsuite/util/testsuite_abi.cc: Validate ABI bump.
      
      From-SVN: r269004
      Tom Honermann committed
    • PR c++/89336 - multiple stores in constexpr stmt. · e8b3c1bc
      If we evaluate the RHS in the context of the LHS, that evaluation might
      change the LHS in ways that mess with being able to store the value later.
      So for assignment or scalar values, evaluate the RHS first.
      
      	* constexpr.c (cxx_eval_store_expression): Preevaluate scalar or
      	assigned value.
      
      From-SVN: r269003
      Jason Merrill committed
    • Daily bump. · 44db22fc
      From-SVN: r269002
      GCC Administrator committed
  2. 18 Feb, 2019 23 commits
    • libphobos: Detect if qsort_r is available · 36d7f151
      Merges upstream druntime bbfb58e8.
      
      libphobos/ChangeLog:
      
      2019-02-19  Johannes Pfau  <johannespfau@gmail.com>
      
      	PR d/88127
      	* m4/druntime/libraries.m4 (DRUNTIME_LIBRARIES_CLIB): Add new macro.
      	* configure.ac: Use DRUNTIME_LIBRARIES_CLIB.
      	* configure: Regenerate
      	* Makefile.in: Regenerate
      	* libdruntime/gcc/config.d.in: Add Have_Qsort_R.
      	* libdruntime/Makefile.in: Regenerate.
      	* src/Makefile.in: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      
      From-SVN: r268999
      Johannes Pfau committed
    • * fr.po: Update. · 0232a219
      From-SVN: r268998
      Joseph Myers committed
    • Improve diagnostic for redundant template arguments in declaration. · 802813ea
      	* pt.c (check_explicit_specialization): If the declarator is a
      	template-id, only check whether the arguments are dependent.
      
      From-SVN: r268997
      Jason Merrill committed
    • README: Fix typos. · ab7b72e1
      2019-02-18  Sharon Dvir  <unapologtic@gmail.com>
      
      gcc/testsuite/
      	* README: Fix typos.
      
      From-SVN: r268996
      Sharon Dvir committed
    • Fix g++.dg/torture/pr89303.C with Solaris ld · c22e84c2
      	* g++.dg/torture/pr89303.C (bad_weak_ptr): Rename to
      	bad_weak_ptr_.
      
      From-SVN: r268995
      Rainer Orth committed
    • Improve duplicate [[likely]] diagnostic. · 2d9273ca
      	* parser.c (cp_parser_statement): Make attrs_loc a range.  Pass it
      	to process_stmt_hotness_attribute.
      	* cp-gimplify.c (process_stmt_hotness_attribute): Take attrs_loc.
      	(genericize_if_stmt): Use likely/unlikely instead of predictor_name.
      
      From-SVN: r268994
      Jason Merrill committed
    • cpp.texi (Conditional syntax): Add __has_attribute, __has_cpp_attribute, and __has_include. · 84fdd8f4
      
      gcc/ChangeLog:
      
      	* doc/cpp.texi (Conditional syntax): Add __has_attribute,
      	__has_cpp_attribute, and __has_include.
      
      From-SVN: r268993
      Martin Sebor committed
    • re PR fortran/87689 (PowerPC64 ELFv2 function parameter passing violation) · 378f53c7
      2019-02-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
          PR fortran/87689
          * trans-decl.c (gfc_get_extern_function_decl): Add argument
          actual_args and pass it through to gfc_get_function_type.
          * trans-expr.c (conv_function_val): Add argument actual_args
          and pass it on to gfc_get_extern_function_decl.
          (conv_procedure_call): Pass actual arguments to conv_function_val.
          * trans-types.c (get_formal_from_actual_arglist): New function.
          (gfc_get_function_type): Add argument actual_args.  Generate
          formal args from actual args if necessary.
          * trans-types.h (gfc_get_function_type): Add optional argument.
          * trans.h (gfc_get_extern_function_decl): Add optional argument.
      
      2019-02-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
          PR fortran/87689
          * gfortran.dg/lto/20091028-1_0.f90: Add -Wno-lto-type-mismatch to
          options.
          * gfortran.dg/lto/20091028-2_0.f90: Likewise.
          * gfortran.dg/lto/pr87689_0.f: New file.
          * gfortran.dg/lto/pr87689_1.f: New file.
      
      From-SVN: r268992
      Thomas Koenig committed
    • invoke.texi (-Wreturn-type): Correct and expand. · 7a247605
      
      gcc/ChangeLog:
      
      	* doc/invoke.texi (-Wreturn-type): Correct and expand.
      
      From-SVN: r268991
      Martin Sebor committed
    • PR middle-end/89294 - ICE in valid_constant_size_p · e2ebb05c
      gcc/c-family/ChangeLog:
      
      	PR middle-end/89294
      	* c-common.c (invalid_array_size_error): Handle cst_size_not_constant.
      
      gcc/ChangeLog:
      
      	PR middle-end/89294
      	* tree.c (valid_constant_size_p): Avoid assuming size is a constant
      	expression.
      	* tree.h (cst_size_error): Add the cst_size_not_constant enumerator.
      
      From-SVN: r268990
      Martin Sebor committed
    • Fix libstdc++ filesystem tests · eb8c4926
      Some recently added libstdc++ filesystem tests are missing a
      dg-require-filesystem-ts.
      
      Committed as obvious.
      
          libstdc++/testsuite/
      	* 27_io/filesystem/operations/all.cc: Add dg-require-filesystem-ts.
      	* 27_io/filesystem/operations/resize_file.cc: Likewise.
      	* 27_io/filesystem/path/generation/normal2.cc: Likewise.
      
      From-SVN: r268989
      Wilco Dijkstra committed
    • Fix test pr88680.C · e99589e2
      Fix pr88680.C failures due to short enums on arm-none-eabi.
      
      Committed as obvious.
      
          gcc/testsuite/
      	* g++.dg/wrappers/pr88680.C: Add -fno-short-enums.
      
      From-SVN: r268988
      Wilco Dijkstra committed
    • Tabify all D *.exp files · cc2cc3be
      	libphobos:
      	* testsuite/lib/libphobos-dg.exp: Tabify.
      	* testsuite/lib/libphobos.exp: Likewise.
      	* testsuite/libphobos.cycles/cycles.exp: Likewise.
      	* testsuite/libphobos.shared/shared.exp: Likewise.
      	* testsuite/libphobos.unittests/unittests.exp: Likewise.
      
      	gcc/testsuite:
      	* gdc.dg/dg.exp: Tabify.
      	* gdc.dg/lto/lto.exp: Likewise.
      	* gdc.test/gdc-test.exp: Likewise.
      	* lib/gdc-dg.exp: Likewise.
      	* lib/gdc.exp: Likewise.
      
      From-SVN: r268987
      Rainer Orth committed
    • re PR tree-optimization/89296 (tree copy-header masking uninitialized warning) · c4149197
      2019-02-18  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/89296
      	* tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
      	of no-warning flag to cases that might emit the bogus warning.
      
      	* gcc.dg/uninit-pr89296.c: New testcase.
      
      From-SVN: r268986
      Richard Biener committed
    • re PR bootstrap/88714 (bootstrap comparison failure on armv7l since r265398) · 02204940
      	PR bootstrap/88714
      	* config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
      	"q" constraint.
      	* config/arm/vfp.md (*movdi_vfp): Likewise.
      	* config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of
      	"q" constraint for operands[0].
      
      From-SVN: r268985
      Jakub Jelinek committed
    • re PR target/89369 (pseudo-RNG miscompiled on s390x-linux with -O2 -march=zEC12… · 290dfd9b
      re PR target/89369 (pseudo-RNG miscompiled on s390x-linux with -O2 -march=zEC12 -mtune=z13 starting with r266203)
      
      	PR target/89369
      	* config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask,
      	*r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct
      	pattern in a temporary buffer.
      	(*r<noxa>sbg_sidi_srl): Likewise.  Always use 32 as I3 rather
      	than 64-operands[2].
      
      	* gcc.c-torture/execute/pr89369.c: New test.
      	* gcc.target/s390/md/rXsbg_mode_sXl.c (rosbg_si_srl,
      	rxsbg_si_srl): Expect last 3 operands 32,63,62 rather than
      	34,63,62.
      
      From-SVN: r268984
      Jakub Jelinek committed
    • re PR target/89361 (s390 broken without S390_USE_TARGET_ATTRIBUTE, likely since r257489) · a10e76ed
      	PR target/89361
      	* config/s390/s390.c (s390_indirect_branch_attrvalue,
      	s390_indirect_branch_settings): Define unconditionally.
      	(s390_set_current_function): Likewise, but guard the whole body except
      	the s390_indirect_branch_settings call with
      	#if S390_USE_TARGET_ATTRIBUTE.
      	(TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
      
      From-SVN: r268983
      Jakub Jelinek committed
    • * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze, · 14653c37
      	*<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt):
      	Use HOST_WIDE_INT_M1U instead of ~(0ULL).
      	(*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use
      	HOST_WIDE_INT_1U instead of 1ULL.
      	(*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int
      	to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul.
      	(*insv<mode><clobbercc_or_nocc>_appendbitsleft,
      	z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U
      	instead of 1UL.
      	(*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
      	instead of 1ul.
      
      From-SVN: r268982
      Jakub Jelinek committed
    • Use 1UL constant in order to not overflow (PR c++/89383). · a5f87af7
      2019-02-18  Martin Liska  <mliska@suse.cz>
      
      	PR c++/89383
      	* line-map.c (linemap_line_start): Use 1UL in order
      	to not overflow.
      
      From-SVN: r268981
      Martin Liska committed
    • [PR 89209] Avoid segfault in a peculiar corner case in SRA · 469b4adb
      2019-02-18  Martin Jambor  <mjambor@suse.cz>
      
      	PR tree-optimization/89209
      	* tree-sra.c (create_access_replacement): New optional parameter
      	reg_tree.  Use it as a type if non-NULL and access type is not of
      	a register type.
      	(get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it
      	to create_access_replacement.
      	(sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name.
      	Check lacc is non-NULL before attempting to re-create it on the RHS.
      
      	testsuite/
      	* gcc.dg/tree-ssa/pr89209.c: New test.
      
      From-SVN: r268980
      Martin Jambor committed
    • Come up with fast {function,call}_summary classes (PR ipa/89306). · db30281f
      2019-02-18  Martin Liska  <mliska@suse.cz>
      
      	PR ipa/89306
      	* cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
      	by default.
      	(symbol_table::free_edge): Recycle m_summary_id.
      	* cgraph.h (get_summary_id): New.
      	(symbol_table::release_symbol): Set m_summary_id to -1
      	by default.
      	(symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
      	* ipa-fnsummary.c (ipa_fn_summary_t): Switch from
      	function_summary to fast_function_summary.
      	* ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
      	* ipa-pure-const.c (class funct_state_summary_t):
      	Switch from function_summary to fast_function_summary.
      	* ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
      	(class ipa_ref_opt_summary_t): Switch from function_summary
      	to fast_function_summary.
      	* symbol-summary.h (class function_summary_base): New class
      	that is created from base of former function_summary.
      	(function_summary_base::unregister_hooks): New.
      	(class function_summary): Inherit from function_summary_base.
      	(class call_summary_base): New class
      	that is created from base of former call_summary.
      	(class call_summary): Inherit from call_summary_base.
      	(struct is_same): New.
      	(class fast_function_summary): New summary class.
      	(class fast_call_summary): New summary class.
      	* vec.h (vec_safe_grow_cleared): New function.
      
      From-SVN: r268979
      Martin Liska committed
    • Support if statement in !GCC$ builtin directive. · e8cecccc
      2019-02-18  Martin Liska  <mliska@suse.cz>
      
      	* config/i386/i386.c (ix86_get_multilib_abi_name): New function.
      	(TARGET_GET_MULTILIB_ABI_NAME): New macro defined.
      	* doc/tm.texi: Document new target hook.
      	* doc/tm.texi.in: Likewise.
      	* target.def: Add new target macro.
      	* gcc.c (find_fortran_preinclude_file): Do not search multilib
      	suffixes.
      2019-02-18  Martin Liska  <mliska@suse.cz>
      
      	* decl.c (gfc_match_gcc_builtin): Add support for filtering
      	of builtin directive based on multilib ABI name.
      2019-02-18  Martin Liska  <mliska@suse.cz>
      
      	* gfortran.dg/simd-builtins-7.f90: New test.
      	* gfortran.dg/simd-builtins-7.h: New test.
      
      From-SVN: r268978
      Martin Liska committed
    • Daily bump. · d3cbcb23
      From-SVN: r268977
      GCC Administrator committed
  3. 17 Feb, 2019 8 commits
  4. 16 Feb, 2019 6 commits
    • i386: Add ssse3_pmulhrswv4hi3 expander · 2f3d2660
      There is no V4HI pmulhrsw in AVX512BW and V4HI/V8HI pmulhrsw don't require
      AVX2.
      
      	PR target/89372
      	* config/i386/sse.md (ssedoublemode): Remove V4HI.
      	(PMULHRSW): Likewise.
      	(<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
      	TARGET_AVX2.
      	(ssse3_pmulhrswv4hi3): New expander.
      
      From-SVN: r268964
      H.J. Lu committed
    • i386: Correct *vec_extractv2si_zext_mem · 49be11f5
      The second and third alternatives in *vec_extractv2si_zext_mem don't
      require MMX.  But the second one requires SSE2.
      
      	* config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
      	MMX.  Add isa attribute.
      
      From-SVN: r268963
      H.J. Lu committed
    • re PR tree-optimization/88074 (g++ hangs on math expression) · 843192c0
      	PR middle-end/88074
      	* simplify.c (simplify_transformation_to_array): Run post_op
      	immediately after processing corresponding row, rather than at the
      	end.
      	(norm2_scale): New variable.
      	(add_squared): Rename to ...
      	(norm2_add_squared): ... this.  Scale down operand and/or result
      	if needed.
      	(do_sqrt): Rename to ...
      	(norm2_do_sqrt): ... this.  Handle the result == e case.  Scale up
      	result and clear norm2_scale.
      	(gfc_simplify_norm2): Clear norm2_scale.  Change add_squared to
      	norm2_add_squared and &do_sqrt to norm2_do_sqrt.  Scale up result
      	and clear norm2_scale again.
      
      From-SVN: r268962
      Jakub Jelinek committed
    • Fix excess warnings from -Wtype-limits with location wrappers (PR c++/88680) · 3fe53000
      PR c++/88680 reports excess warnings from -Wtype-limits after the C++
      FE's use of location wrappers was extended in r267272 for cases such as:
      
        const unsigned n = 8;
        static_assert (n >= 0 && n % 2 == 0, "");
      
      t.C:3:18: warning: comparison of unsigned expression >= 0 is always true
        [-Wtype-limits]
          3 | static_assert (n >= 0 && n % 2 == 0, "");
            |                ~~^~~~
      
      The root cause is that the location wrapper around "n" breaks the
      suppression of the warning for the "if OP0 is a constant that is >= 0"
      case.
      
      This patch fixes it by calling fold_for_warn on OP0, extracting the
      constant.
      
      gcc/c-family/ChangeLog:
      	PR c++/88680
      	* c-common.c (shorten_compare): Call fold_for_warn on op0 when
      	implementing -Wtype-limits.
      
      gcc/testsuite/ChangeLog:
      	PR c++/88680
      	* g++.dg/wrappers/pr88680.C: New test.
      
      From-SVN: r268961
      David Malcolm committed
    • re PR fortran/71066 (ICE in set_loop_bounds, at fortran/trans-array.c:4680) · 9dbdefbb
      2019-02-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/71066
      	* trans-decl.c (generate_coarray_sym_init):  For an array
      	constructor in a DATA statement of a coarray variable, set the
      	rank to 1 to avoid confusion later on.  If the constructor
      	contains only one value, use that for initiailizig.
      
      2019-02-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/71066
      	* gfortran.dg/coarray_data_1.f90: New test.
      
      From-SVN: r268960
      Thomas Koenig committed
    • patchable_function_entry-decl.c: Add -fno-pie on SPARC. · d810ce4b
      	* c-c++-common/patchable_function_entry-decl.c: Add -fno-pie on SPARC.
      	* c-c++-common/patchable_function_entry-default.c: Likewise.
      	* c-c++-common/patchable_function_entry-definition.c: Likewise.
      
      From-SVN: r268958
      Eric Botcazou committed