1. 27 Apr, 2019 2 commits
    • RISC-V: Promode modes of constant loads for store insns. · 51175507
      This improves optimization of code storing constants to memory.  Given this
      testcase:
          void sub1 (int *a, long long *b) { *a = 1; *b = 1; }
      an unpatched rv64 compiler emits two li instructions, one for an SImode pseudo
      and one for a DImode pseudo.  With the patch, we get a single DImode li insn.
      
      	gcc/
      	* config/riscv/riscv-protos.h (riscv_move_integer): Add machine_mode
      	parameter.
      	* config/riscv/riscv.c (riscv_move_integer): New parameter orig_mode.
      	Pass orig_mode to riscv_build_integer.
      	(riscv_split_integer): Pass mode to riscv_move_integer.
      	(riscv_legitimize_const_move): Likewise.
      	(riscv_legitimize_move): For MEM dest and CONST_INT src case, new local
      	promoted_mode.  Replace force_reg call with code to load constant into
      	promoted reg and then subreg it for the store.
      	* config/riscv/riscv.md (low<mode>+1): Pass <GPR:MODE>mode to
      	riscv_move_integer.
      
      	gcc/testsuite/
      	* gcc.target/riscv/load-immediate.c: New.
      
      From-SVN: r270621
      Jim Wilson committed
    • Daily bump. · 0d056d03
      From-SVN: r270620
      GCC Administrator committed
  2. 26 Apr, 2019 17 commits
    • runtime: fix TestPhysPageSize on AIX · 8d266165
          
          AIX doesn't allow to mmap an address range which is already mmap.
          Therefore, once the region has been allocated, it must munmap before
          being able to play with it.
          The corresponding Go Toolchain patch is CL 174059.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/174138
      
      From-SVN: r270615
      Ian Lance Taylor committed
    • x32: Update baseline_symbols.txt · ca2efef7
      	* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
      
      From-SVN: r270613
      H.J. Lu committed
    • PR c++/90243 - orphaned note in uninstantiated constexpr function · 57e61764
      gcc/cp:
      
      	PR c++/90243 - orphaned note in uninstantiated constexpr function
      	* decl.c (check_for_uninitialized_const_var): Suppress notes if no
      	error was shown.
      
      gcc/testsuite:
      
      	PR c++/90243
      	* g++.dg/diagnostic/pr90243.C: New test.
      
      From-SVN: r270610
      Jonathan Wakely committed
    • Remove redundant step in experimental::filesystem::path construction · 700e6332
      	* include/experimental/bits/fs_path.h
      	(path::_S_convert_loc<_InputIterator>): Create const std::string to
      	avoid redundant call to _S_convert_loc with non-const pointers.
      
      From-SVN: r270608
      Jonathan Wakely committed
    • gdbhooks.py: Fix UnicodeDecodeErrors when printing trees with corrupt codes. · 224d9de0
      	* gdbhooks.py: Fix UnicodeDecodeErrors when printing trees with
      	corrupt codes.
      
      From-SVN: r270607
      Eugene Sharygin committed
    • re PR debug/90197 (Cannot step through simple loop at -O -g) · f179b64e
      	PR debug/90197
      	* c-tree.h (c_finish_loop): Add 2 further location_t arguments.
      	* c-parser.c (c_parser_while_statement): Adjust c_finish_loop caller.
      	(c_parser_do_statement): Likewise.
      	(c_parser_for_statement): Likewise.  Formatting fixes.
      	* c-typeck.c (c_finish_loop): Add COND_LOCUS and INCR_LOCUS arguments,
      	emit DEBUG_BEGIN_STMTs if needed.
      
      From-SVN: r270606
      Jakub Jelinek committed
    • libiberty.h (vasprintf): Don't declare if HAVE_DECL_VASPRINTF is not defined. · 6b3a5e8a
      	* libiberty.h (vasprintf): Don't declare if HAVE_DECL_VASPRINTF
      	is not defined.
      
      From-SVN: r270605
      Michael Forney committed
    • Fix tests that fail with _GLIBCXX_USE_CXX11_ABI=0 · 53e69273
      The pmr::string typedef isn't available for the old COW string, so some
      tests that use it were failing.
      
      	* testsuite/20_util/variant/run.cc: Use a new Hashable type to test
      	hashing, because pmr::string depends on _GLIBCXX_USE_CXX11_ABI==1.
      	* testsuite/21_strings/basic_string/hash/hash.cc
      	[!_GLIBCXX_USE_CXX11_ABI]: Don't test pmr strings.
      	* testsuite/21_strings/basic_string/hash/hash_char8_t.cc
      	[!_GLIBCXX_USE_CXX11_ABI]: Likewise.
      
      From-SVN: r270604
      Jonathan Wakely committed
    • re PR c++/90173 (ICE: Segmentation fault (in strip_declarator_types)) · 69dad6fa
      /cp
      2019-04-26  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/90173
      	* decl.c (grokdeclarator): Set type to error_mark_node
      	upon error about template placeholder type non followed
      	by a simple declarator-id.
      
      /testsuite
      2019-04-26  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/90173
      	* g++.dg/cpp1z/class-deduction66.C: New.
      
      From-SVN: r270603
      Paolo Carlini committed
    • Reduce code instantiated by filesystem::path::_S_convert_loc · 8281e3b8
      Jakub noted in https://gcc.gnu.org/ml/libstdc++/2019-04/msg00140.html
      that an unwanted std::wstring::_M_replace_dispatch symbol has started to
      be exported from the Fedora shared library. This symbol is triggered by
      the instantiation of std::wstring::assign(const char*, const char*) from
      std::__str_codecvt_in which is called from path::_S_convert_loc. The
      branch that triggers that instantiation can't actually happen in that
      case, because codecvt facets will only return noconv when the input and
      output types are the same. Guarding the assign call with an if-constexpr
      check that the types are the same avoids instantiating template
      specializations that will never actually be needed.
      
      	* config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace wildcard that matches
      	wstring::_M_replace_dispatch with more specific patterns.
      	* include/bits/fs_path.h (path::_S_convert_loc<_InputIterator>):
      	Create const std::string to avoid redundant call to _S_convert_loc
      	with non-const pointers.
      	* include/bits/locale_conv.h (__do_str_codecvt): Use if-constexpr to
      	avoid unnecessary basic_string::assign instantiations.
      
      From-SVN: r270602
      Jonathan Wakely committed
    • Tweak C++2a uses-allocator construction utilities · 3addb7b9
      The 20_util/scoped_allocator/69293_neg.cc test was failing in C++2a mode
      because the expected static_assert text wasn't matched. The code is
      still ill-formed in C++2a, but uses the new __uses_alloc_args function
      and so fails a different static_assert. This patch adds the same string
      to the new static_assert, so the test passes.
      
      Now that G++ allows concepts to be declared without 'bool' we can use
      the correct C++2a syntax for the _Std_pair concept used to constrain the
      uses-allocator construction utilities.
      
      Also add a new test to verify that pmr::polymorphic_allocator correctly
      performs recursive uses-allocator construction for nested pairs in
      C++2a.
      
      	* include/std/memory (__uses_alloc_args): Add string-literal to
      	static_assert, to match the one in __uses_alloc.
      	[__cpp_concepts] (_Std_pair): Use C++2a syntax for concept.
      	* testsuite/20_util/polymorphic_allocator/construct_c++2a.cc: Check
      	for recursive uses-allocator construction of nested pairs.
      	* testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc:: Add
      	comment.
      
      From-SVN: r270600
      Jonathan Wakely committed
    • baseline_symbols.txt: Update. · f8790a49
      	* config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Update.
      	* config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update.
      	* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
      	* config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
      
      From-SVN: r270598
      Jakub Jelinek committed
    • decl.c (grokdeclarator): Fix value assigned to typespec_loc, use min_location. · aaa94b3c
      /cp
      2018-04-26  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* decl.c (grokdeclarator): Fix value assigned to typespec_loc, use
      	min_location.
      
      /testsuite
      2018-04-26  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.dg/diagnostic/trailing1.C: New.
      
      From-SVN: r270597
      Paolo Carlini committed
    • baseline_symbols.txt: Update. · 849ab78a
      	* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
      	* config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
      	* config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
      	* config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
      	* config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
      	* config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
      	* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
      
      From-SVN: r270595
      Jakub Jelinek committed
    • Fix use of COMPLETE_TYPE_P for -Wstrict-aliasing=1 · e78a87f7
      The handling of -Wstrict-aliasing=1 applied COMPLETE_TYPE_P to the
      pointer type rather than the pointer target, so missed the warnings
      for "struct incomplete" in the testcase.
      
      I couldn't find any existing C tests for -Wstrict-aliasing=1,
      so I added a few extra tests besides the ones fixed by the patch.
      I'm sure there's lots more we could test -- this is just supposed
      to be better than the status quo (i.e. nothing).
      
      2019-04-26  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/c-family/
      	* c-warn.c (strict_aliasing_warning): Apply COMPLETE_TYPE_P to
      	the pointer target rather than the pointer itself.
      
      gcc/testsuite/
      	* gcc.dg/alias-16.c: New test.
      
      From-SVN: r270594
      Richard Sandiford committed
    • Add commentary to (SET_)TYPE_VECTOR_SUBPARTS · 4ef8a24c
      2019-04-26  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* tree.h (TYPE_VECTOR_SUBPARTS, SET_TYPE_VECTOR_SUBPARTS): Add
      	commentary about the encoding of precision.
      
      From-SVN: r270593
      Richard Sandiford committed
    • Daily bump. · 25efa5fb
      From-SVN: r270592
      GCC Administrator committed
  3. 25 Apr, 2019 18 commits
  4. 24 Apr, 2019 3 commits
    • libphobos: Fix linker warning and SEGV in core.thread tests. · 2493e718
      The monolithic core/threadasm.S source has been removed, and split into
      multiple parts, one for each intended target CPU/OS.
      
      Added .type and .size directives for all asm implementations of
      fiber_switchContent and callWithStackShell where they were missing.
      
      libphobos/ChangeLog:
      
      2019-04-25  Iain Buclaw  <ibuclaw@gdcproject.org>
      
      	PR d/90086
      	* m4/druntime/cpu.m4 (DRUNTIME_CPU_SOURCES): New macro.
      	* configure.ac: Use it.
      	* configure: Regenerate.
      	* libdruntime/Makefile.am: Add new config sources to
      	DRUNTIME_SOURCES_CONFIGURED.
      	* libdruntime/Makefile.in: Regenerate.
      	* libdruntime/config/aarch64/switchcontext.S: New file.
      	* libdruntime/config/arm/switchcontext.S: New file.
      	* libdruntime/config/common/threadasm.S: New file.
      	* libdruntime/config/mingw/switchcontext.S: New file.
      	* libdruntime/config/mips/switchcontext.S: New file.
      	* libdruntime/config/powerpc/switchcontext.S: New file.
      	* libdruntime/config/powerpc64/callwithstack.S: New file.
      	* libdruntime/config/x86/switchcontext.S: New file.
      	* libdruntime/core/threadasm.S: Remove.
      
      From-SVN: r270560
      Iain Buclaw committed
    • Update C++17 library status tables · 7c3e085e
      	* doc/xml/manual/status_cxx2017.xml: Document P0024R2 status.
      	* doc/html/*: Regenerate.
      
      From-SVN: r270559
      Jonathan Wakely committed
    • Make filesystem::path comparison operators hidden friends (LWG 3065) · f90b16c4
      This change revealed two testsuite bugs where some string comparisons
      only compiled by converting the strings to filesystem::path objects.
      
      	* include/bits/fs_path.h (operator<, operator<=, operator>)
      	(operator>=, operator==, operator!=): Make hidden friends, as per
      	LWG 3065.
      	* testsuite/27_io/filesystem/path/native/string-char8_t.cc: Fix
      	string type in test.
      	* testsuite/27_io/filesystem/path/native/string.cc: Likewise.
      
      From-SVN: r270558
      Jonathan Wakely committed