1. 31 May, 2019 17 commits
    • tree-ssa-alias.c (type_has_components_p): New function. · 1facd627
      
      	* tree-ssa-alias.c (type_has_components_p): New function.
      	(aliasing_component_refs_p): Use it.
      
      From-SVN: r271813
      Jan Hubicka committed
    • Fix breakage due to removing __gnu_cxx::size_t declaration · ff0b7e88
      Restore the using-declaration but locally in the source file, not in the
      header.
      
      	* src/c++98/bitmap_allocator.cc: Add using-declaration for size_t.
      
      From-SVN: r271812
      Jonathan Wakely committed
    • [C++PATCH] Lambda names are anonymous · ca3edeae
      https://gcc.gnu.org/ml/gcc-patches/2019-05/msg02126.html
      	* cp-tree.h (IDENTIFIER_LAMBDA_P): New.
      	(TYPE_ANON_P): New.
      	(LAMBDA_TYPE_P, TYPE_UNNAMED_P):  Likewise.
      	(LAMBDANAME_PREFIX, LAMBDANAME_FORMAT): Delete.
      	(make_lambda_name): Don't declare.
      	* error.c (dump_aggr_type): Check for lambdas before other
      	anonymous names.
      	* lambda.c (begin_lambda_type): Use make_anon_name.
      	* cp-lang.c (cxx_dwarf_name): Lambda names smell anonymous.
      	* mangle.c (write_local_name): Likewise.
      	* name-lookup.c (lambda_cnt, make_lambda_name): Delete.
      
      From-SVN: r271811
      Nathan Sidwell committed
    • cpu-future.c: Require powerpc_future_ok. · 929c046d
      2019-05-31  Bill Schmidt  <wschmidt@linux.ibm.com>
      	    Michael Meissner  <meissner@linux.ibm.com>
      
      	* gcc.target/powerpc/cpu-future.c: Require powerpc_future_ok.
      	* gcc.target/powerpc/localentry-1.c: Likewise.
      	* gcc.target/powerpc/localentry-direct-1.c: Likewise.
      	* gcc.target/powerpc/notoc-direct-1.c: Likewise.
      	* gcc.target/powerpc/pcrel-sibcall-1.c: Likewise.
      	* lib/target-supports.exp (check_powerpc_future_hw_available): New.
      	(check_effective_target_powerpc_future_ok): New.
      
      
      Co-Authored-By: Michael Meissner <meissner@linux.ibm.com>
      
      From-SVN: r271810
      Bill Schmidt committed
    • PR libstdc++/90682 allow set_terminate(0) and set_unexpected(0) · 3228289e
      Make these functions restore the default handlers when passed a null
      pointer. This is consistent with std::pmr::set_default_resource(0), and
      also matches the current behaviour of libc++.
      
      In order to avoid duplicating the preprocessor condition from
      eh_term_handler.cc more that into a new eh_term_handler.h header and
      define a macro that can be used in both eh_term_handler.cc and
      eh_terminate.cc.
      
      	PR libstdc++/90682
      	* libsupc++/eh_term_handler.cc: Include eh_term_handler.h to get
      	definition of _GLIBCXX_DEFAULT_TERM_HANDLER.
      	* libsupc++/eh_term_handler.h: New header defining
      	_GLIBCXX_DEFAULT_TERM_HANDLER.
      	* libsupc++/eh_terminate.cc: Include eh_term_handler.h.
      	(set_terminate): Restore default handler when argument is null.
      	(set_unexpected): Likewise.
      	* testsuite/18_support/set_terminate.cc: New test.
      	* testsuite/18_support/set_unexpected.cc: New test.
      
      From-SVN: r271808
      Jonathan Wakely committed
    • Remove using-declarations that add std names to __gnu_cxx · 3263fb9c
      These using-declarations appear to have been added for simplicity when
      moving the non-standard extensions from namespace std to namespace
      __gnu_cxx. Dumping all these names into namespace __gnu_cxx allows
      unportable uses like __gnu_cxx::size_t and __gnu_cxx::pair, which serve
      no useful purpose.
      
      This patch removes most of the using-declarations from namespace scope,
      then either qualifies names as needed or adds using-declarations at
      block scope or typedefs at class scope.
      
      	* include/backward/hashtable.h (size_t, ptrdiff_t)
      	(forward_iterator_tag, input_iterator_tag, _Construct, _Destroy)
      	(distance, vector, pair, __iterator_category): Remove
      	using-declarations that add these names to namespace __gnu_cxx.
      	* include/ext/bitmap_allocator.h (size_t, ptrdiff_t): Likewise.
      	* include/ext/debug_allocator.h (size_t): Likewise.
      	* include/ext/functional (size_t, unary_function, binary_function)
      	(mem_fun1_t, const_mem_fun1_t, mem_fun1_ref_t, const_mem_fun1_ref_t):
      	Likewise.
      	* include/ext/malloc_allocator.h (size_t, ptrdiff_t): Likewise.
      	* include/ext/memory (ptrdiff_t, pair, __iterator_category): Likewise.
      	* include/ext/mt_allocator.h (size_t, ptrdiff_t): Likewise.
      	* include/ext/new_allocator.h (size_t, ptrdiff_t): Likewise.
      	* include/ext/numeric (iota): Fix outdated comment.
      	* include/ext/pool_allocator.h (size_t, ptrdiff_t): Likewise.
      	* include/ext/rb_tree (_Rb_tree, allocator): Likewise.
      	* include/ext/rope (size_t, ptrdiff_t, allocator, _Destroy): Likewise.
      	* include/ext/ropeimpl.h (size_t, printf, basic_ostream)
      	(__throw_length_error, _Destroy, std::__uninitialized_fill_n_a):
      	Likewise.
      	* include/ext/slist (size_t, ptrdiff_t, _Construct, _Destroy)
      	(allocator, __true_type, __false_type): Likewise.
      
      From-SVN: r271807
      Jonathan Wakely committed
    • PR libstdc++/71579 assert that type traits are not misused with incomplete types · 608a080c
      This patch adds static asserts for type traits misuse with incomplete
      classes and unions. This gives a nice readable error message instead
      of an UB and odr-violations.
      
      Some features of the patch:
      * each type trait has it's own static_assert inside. This gives better
      diagnostics than the approach with putting the assert into a helper
      structure and using it in each trait.
      * the result of completeness check is not memorized by the compiler.
      This gives no false positive after the first failed check.
      * some of the compiler builtins already implement the check. But not
      all of them! So the asserts are in all the type_traits that may
      benefit from the check. This also makes the behavior of libstdc++ more
      consistent across different (non GCC) compilers.
      * std::is_base_of does not have the assert as it works well in many
      cases with incomplete types
      
      2019-05-31  Antony Polukhin  <antoshkka@gmail.com>
      
      	PR libstdc++/71579
      	* include/std/type_traits __type_identity, __is_complete_or_unbounded):
      	New helpers for checking preconditions in traits.
      	(is_trivial, is_trivially_copyable, is_standard_layout, is_pod)
      	(is_literal_type, is_empty, is_polymorphic, is_final, is_abstract)
      	(is_destructible, is_nothrow_destructible, is_constructible)
      	(is_default_constructible, is_copy_constructible)
      	(is_move_constructible, is_nothrow_default_constructible)
      	(is_nothrow_constructible, is_nothrow_copy_constructible)
      	(is_nothrow_move_constructible, is_copy_assignable, is_move_assignable)
      	(is_nothrow_assignable, is_nothrow_copy_assignable)
      	(is_nothrow_move_assignable, is_trivially_constructible)
      	(is_trivially_copy_constructible, is_trivially_move_constructible)
      	is_trivially_assignable, is_trivially_copy_assignable)
      	(is_trivially_move_assignable, is_trivially_destructible)
      	(alignment_of, is_swappable, is_nothrow_swappable, is_invocable)
      	(is_invocable_r, is_nothrow_invocable)
      	(has_unique_object_representations, is_aggregate): Add static_asserts
      	to make sure that type traits are not misused with incomplete types.
      	(__is_constructible_impl, __is_nothrow_default_constructible_impl)
      	(__is_nothrow_constructible_impl, __is_nothrow_assignable_impl): New
      	base characteristics without assertions that can be reused in other
      	traits.
      	* testsuite/20_util/is_complete_or_unbounded/memoization.cc: New test.
      	* testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc: New
      	test.
      	* testsuite/20_util/is_complete_or_unbounded/value.cc: New test.
      	* testsuite/20_util/is_abstract/incomplete_neg.cc: New test.
      	* testsuite/20_util/is_aggregate/incomplete_neg.cc: New test.
      	* testsuite/20_util/is_class/value.cc: Check incomplete type.
      	* testsuite/20_util/is_function/value.cc: Likewise.
      	* testsuite/20_util/is_move_constructible/incomplete_neg.cc: New test.
      	* testsuite/20_util/is_nothrow_move_assignable/incomplete_neg.cc: New
      	test.
      	* testsuite/20_util/is_polymorphic/incomplete_neg.cc: New test.
      	* testsuite/20_util/is_reference/value.cc: Check incomplete types.
      	* testsuite/20_util/is_unbounded_array/value.cc: Likewise.
      	* testsuite/20_util/is_union/value.cc: Likewise.
      	* testsuite/20_util/is_void/value.cc: Likewise.
      	* testsuite/util/testsuite_tr1.h: Add incomplete union type.
      
      From-SVN: r271806
      Antony Polukhin committed
    • Fix random_device to work with COW strings again · aeedf077
      Instead of duplicating the initialization functions that take string,
      add a new member taking a raw pointer that can be used to convert the
      constructor token from the old string to the new.
      
      Also fix "mt19337" typos in a testcase.
      
      	* include/bits/random.h (random_device::_M_init(const char*, size_t)):
      	Add new private member function.
      	* src/c++11/cow-string-inst.cc (random_device::_M_init(const string&))
      	(random_device::_M_init_pretr1(const string&)): Call new private
      	member with string data.
      	* src/c++11/random.cc (random_device::_M_init(const char*, size_t)):
      	Define.
      	* testsuite/26_numerics/random/random_device/cons/default-cow.cc: New
      	test using COW strings.
      	* testsuite/26_numerics/random/random_device/cons/default.cc: Generate
      	a value from the device.
      	* testsuite/26_numerics/random/random_device/cons/token.cc: Likewise.
      	Fix typo in token string.
      
      From-SVN: r271805
      Jonathan Wakely committed
    • Add pretty print for const_tree. · decc53df
      2019-05-31  Martin Liska  <mliska@suse.cz>
      
      	* gdbhooks.py: Add const_tree to TreePrinter.
      
      From-SVN: r271804
      Martin Liska committed
    • re PR debug/86964 (Too many debug symbols included, especially for extern globals) · d1137c02
      2019-05-31  Thomas De Schampheleire  <thomas.de_schampheleire@nokia.com>
      
      	PR debug/86964
      	* common.opt (feliminate-unused-debug-symbols): Enable by default.
      	* doc/invoke.texi (Debugging Options): Document new default of
      	-feliminate-unused-debug-symbols and remove restriction to 'stabs'.
      
      	* g++.dg/debug/dwarf2/fesd-any.C: Use
      	-fno-eliminate-unused-debug-symbols.
      	* g++.dg/debug/dwarf2/fesd-baseonly.C: Likewise.
      	* g++.dg/debug/dwarf2/fesd-none.C: Likewise.
      	* g++.dg/debug/dwarf2/fesd-reduced.C: Likewise.
      	* g++.dg/debug/dwarf2/fesd-sys.C: Likewise.
      	* g++.dg/debug/dwarf2/inline-var-1.C: Likewise.
      	* g++.dg/debug/enum-2.C: Likewise.
      	* gcc.dg/debug/dwarf2/fesd-any.c: Likewise.
      	* gcc.dg/debug/dwarf2/fesd-baseonly.c: Likewise.
      	* gcc.dg/debug/dwarf2/fesd-none.c: Likewise.
      	* gcc.dg/debug/dwarf2/fesd-reduced.c: Likewise.
      	* gcc.dg/debug/dwarf2/fesd-sys.c: Likewise.
      
      From-SVN: r271803
      Thomas De Schampheleire committed
    • re PR tree-optimization/90671 (ICE on valid code at -Os and above with -g… · 6992d6fb
      re PR tree-optimization/90671 (ICE on valid code at -Os and above with -g enabled in gsi_split_seq_after, at gimple-iterator.c:345)
      
      	PR tree-optimization/90671
      	* tree-ssa-threadupdate.c (ssa_create_duplicates): If
      	template_block used to be empty on the first call, don't use
      	gsi_split_seq_after and gsi_insert_seq_after, but remember whole
      	seq with bb_seq and set it with set_bb_seq.
      
      	* gcc.dg/torture/pr90671.c: New test.
      
      From-SVN: r271802
      Jakub Jelinek committed
    • c++, testsuite - require alias support for a test. · 0eee8eaa
      The test for pr84497 uses a facility that requires alias support from
      the target, and therefore fails on targets without.  Add a suitable 
      dg-require statement.
      
      2019-05-31  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* g++.dg/cpp0x/pr84497.C: Require alias support.
      
      From-SVN: r271801
      Iain Sandoe committed
    • Darwin, x86, testsuite - adjust tests for Darwin's align syntax. · 4ef2ef0c
      Darwin has a .align taking a power of 2 by default, so that some
      tests expecting a byte count are failing, fixed thus.
      
      gcc/testsuite/
      
      2019-05-31  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* gcc.target/i386/falign-functions-3.c: Adjust align syntax
      	and label for Darwin.
      	* gcc.target/i386/attr-aligned-2.c: Adjust align syntax for
      	Darwin.
      
      From-SVN: r271800
      Iain Sandoe committed
    • Darwin, x86 - We have .p2align, so declare its use. · eb11a552
      .p2align support is present in all x86 assemblers on released
      Darwin systems.
      
      gcc/
      
      2019-05-29  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
      
      From-SVN: r271799
      Iain Sandoe committed
    • predicates.md (pcrel_address): New define_predicate. · a1842c37
      2019-05-30  Bill Schmidt  <wschmidt@linux.ibm.com>
      	    Michael Meissner  <meissner@linux.ibm.com>
      
      	* config/rs6000/predicates.md (pcrel_address): New define_predicate.
      	(prefixed_mem_operand): Likewise.
      	(non_prefixed_mem_operand): Likewise.
      	* config/rs6000/rs6000-protos.h (rs6000_prefixed_address): New
      	prototype.
      	* config/rs6000/rs6000.c (print_operand_address): Handle
      	PC-relative addresses.
      	(mode_supports_prefixed_address_p): New function.
      	(rs6000_prefixed_address): New function.
      	* config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL): New #define.
      	(SYMBOL_REF_PCREL_P): Likewise.
      
      
      Co-Authored-By: Michael Meissner <meissner@linux.ibm.com>
      
      From-SVN: r271798
      Bill Schmidt committed
    • * fi.po, sv.po: Update. · 47a665af
      From-SVN: r271796
      Joseph Myers committed
    • Daily bump. · 17c5c4c7
      From-SVN: r271795
      GCC Administrator committed
  2. 30 May, 2019 22 commits
  3. 29 May, 2019 1 commit
    • PR libstdc++/85494 fix failing test · ea16f6ac
      This test now fails on mingw-w64 because it's no longer always true that
      the mt19937 engine is used when _GLIBCXX_USE_DEV_RANDOM is not defined.
      
      Add tests for all the known tokens to ensure that at least one is
      accepted.
      
      	* testsuite/26_numerics/random/random_device/cons/token.cc: Fix test
      	that fails on mingw-w64.
      
      From-SVN: r271756
      Jonathan Wakely committed