1. 21 Jan, 2019 15 commits
    • class_66.f90: Fix a dg directive. · 4d851658
      2019-01-21  Manfred Schwarb  <manfred99@gmx.ch>
      
      	* class_66.f90: Fix a dg directive.
      	* debug/pr35154-stabs.f: Likewise.
      	* dec_d_lines_3.f: Likewise.
      	* dec_d_lines_3.f: Likewise.
      	* dec_structure_12.f90: Likewise.
      	* dec_structure_15.f90: Likewise.
      	* deferred_character_31.f90: Likewise.
      	* dtio_31.f03: Likewise.
      	* dtio_32.f03: Likewise.
      	* extends_11.f03: Likewise.
      	* integer_plus.f90: Likewise.
      	* pdt_25.f03: Likewise.
      	* pr58968.f: Likewise.
      	* pr78259.f90: Likewise.
      	* vect/vect-2.f90: Likewise.
      	* matmul_const.f90: Likewise.
      
      From-SVN: r268125
      Manfred Schwarb committed
    • Merge dmd upstream 180465274 · 255b2d91
      Reduces the memory footprint of the CTFE interpreter by replacing new
      with emplacement new in many places.
      
      gcc/d/ChangeLog:
      
      2019-01-21  Iain Buclaw  <ibuclaw@gdcproject.org>
      
      	* d-frontend.cc (Compiler::paintAsType): Update for new signature.
      
      From-SVN: r268124
      Iain Buclaw committed
    • re PR target/88938 (ICE in extract_insn, at recog.c:2304) · d5011496
      	PR target/88938
      	* config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
      	case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
      
      testsuite/ChangeLog:
      
      	PR target/88938
      	* gcc.target/i386/pr88938.c: New test.
      
      From-SVN: r268123
      Uros Bizjak committed
    • re PR sanitizer/88901 (ICE when using -fsanitize=pointer-compare) · 52e67970
      	PR sanitizer/88901
      	* typeck.c (cp_build_binary_op): Don't instrument
      	SANITIZE_POINTER_COMPARE if processing_template_decl.
      	(pointer_diff): Similarly for SANITIZE_POINTER_SUBTRACT.
      
      	* g++.dg/asan/pr88901.C: New test.
      
      From-SVN: r268122
      Jakub Jelinek committed
    • hash-map-tests.c (test_map_of_strings_to_int): Show how to use string contents as hash_map keys. · 3b1f091c
      	* hash-map-tests.c (test_map_of_strings_to_int): Show how to use
      	string contents as hash_map keys.
      
      From-SVN: r268121
      Michael Ploujnikov committed
    • AArch64: Fix big-endian and ILP32 fail for simd-clone test. · 9011fa06
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/vect/simd-clone-7.cc: Fix assembler scan.
      
      --This line, a d those below, will be ignored--
      
      M    gcc/testsuite/ChangeLog
      M    gcc/testsuite/g++.dg/vect/simd-clone-7.cc
      
      From-SVN: r268120
      Tamar Christina committed
    • Makefile.am (noinst_LTLIBRARIES): Rename libzgcj_convience.la to libz_convenience.la. · ad81a900
      2019-01-21  Iain Buclaw  <ibuclaw@gdcproject.org>
      
      	* Makefile.am (noinst_LTLIBRARIES): Rename libzgcj_convience.la to
      	libz_convenience.la.
      	* Makefile.in: Regenerate.
      	* configure.ac: Remove target_all.
      	* configure: Regenerate.
      
      From-SVN: r268119
      Iain Buclaw committed
    • re PR c/88928 (ICE segfault in check_address_or_pointer_of_packed_member since r268075) · f3a18a5c
      2019-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              PR c/88928
              * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
              for rvalue context.  Handle rvalues correctly.  Use min_align_of_type
              instead of TYPE_ALIGN.
              (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
              Use min_align_of_type instead of TYPE_ALIGN_UNIT.  Check for NULL
              pointer from TYPE_STUB_DECL.
      
      testsuite:
      2019-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              PR c/88928
              * c-c++-common/Waddress-of-packed-member-1.c: New test case.
              * gcc.dg/pr88928.c: New test case.
      
      From-SVN: r268118
      Bernd Edlinger committed
    • utf-array.c: Allow wchar_t to be printed as {long ,short ,}{unsigned ,}int. · 0fba41e0
      	* gcc.dg/utf-array.c: Allow wchar_t to be printed as
      	{long ,short ,}{unsigned ,}int.
      
      From-SVN: r268117
      Jakub Jelinek committed
    • Fix leak in splay-tree · 2197ea17
      Philippe Waroquiers noticed a memory leak in gdb, which he tracked
      down to a bug in splay-tree.  splay_tree_remove does not call the
      `delete_key' function when it removes the old node; but it should.
      
      I looked at every splay tree in GCC and there is only one that passes
      a non-NULL delete function -- the one in lto.c.  That file does not
      call splay_tree_remove.  So, I think this is safe to check in.
      
      I re-ran the LTO tests to double check.
      
      libiberty/
      	* splay-tree.c (splay_tree_remove): Delete the key if necessary.
      
      From-SVN: r268116
      Tom Tromey committed
    • re PR tree-optimization/88934 (ICE: verify_gimple failed (Error: mismatching… · c73e7656
      re PR tree-optimization/88934 (ICE: verify_gimple failed (Error: mismatching comparison operand types))
      
      2019-01-21  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/88934
      	* tree-vect-slp.c (vect_mask_constant_operand_p): Always look
      	at the possibly non-constant operand.
      	(vect_get_constant_vectors): Adjust.
      
      	* gfortran.dg/pr88934.f90: New testcase.
      
      From-SVN: r268115
      Richard Biener committed
    • i386: Move Intel intrinsics head files to <immintrin.h> · 6c0d746f
      According to Intel Intrinsics Guide:
      
      https://software.intel.com/sites/landingpage/IntrinsicsGuide/
      
      Intel intrinsics should be available by including <immintrin.h>.  This
      patch moves remaining Intel intrinsics head files from <x86intrin.h> to
      <immintrin.h>.
      
      	PR target/71659
      	* config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
      	* config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
      	instead of _X86INTRIN_H_INCLUDED.
      	* onfig/i386/clwbintrin.h: Likewise.
      	* config/i386/pkuintrin.h: Likewise.
      	* config/i386/prfchwintrin.h: Likewise.
      	* config/i386/rdseedintrin.h: Likewise.
      	* config/i386/wbnoinvdintrin.h: Likewise.
      	* config/i386/xsavecintrin.h: Likewise.
      	* config/i386/xsavesintrin.h: Likewise.
      	* config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
      	* config/i386/xsaveintrin.h: Likewise.
      	* config/i386/xsaveoptintrin.h: Likewise.
      	* config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
      	<prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
      	<xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
      	<clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
      	<wbnoinvdintrin.h> and <pkuintrin.h> to ...
      	* config/i386/immintrin.h: Here.
      
      From-SVN: r268113
      H.J. Lu committed
    • re PR ipa/86590 (Codegen is poor when passing std::string by value with… · 8f10fb50
      re PR ipa/86590 (Codegen is poor when passing std::string by value with _GLIBCXX_EXTERN_TEMPLATE undefined)
      
      	PR libstdc++/86590
      	* include/bits/char_traits.h (__constant_string_p,
      	__constant_char_array_p): Use __builtin_is_constant_evaluated if
      	available.
      
      From-SVN: r268112
      Jakub Jelinek committed
    • Fix after P0600. · d715f554
      gcc/testsuite/ChangeLog
      2019-02-20  Ulrich Drepper  <drepper@redhat.com>
      
      	Fix after P0600.
      	* g++.dg/init/new39.C: Don't just ignore result of new.
      
      libstdc++/ChangeLog
      2019-02-20  Ulrich Drepper  <drepper@redhat.com>
      
      	Implement C++20 P0600r1.
      	* include/backward/hash_map: Add nodiscard attribute to empty.
      	* include/backward/hash_set: Likewise.
      	* backward/hashtable.h: Likewise.
      	* include/bits/basic_string.h: Likewise.
      	* include/bits/forward_list.h: Likewise.
      	* include/bits/hashtable.h: Likewise.
      	* include/bits/regex.h: Likewise.
      	* include/bits/stl_deque.h: Likewise.
      	* include/bits/stl_list.h: Likewise.
      	* include/bits/stl_map.h: Likewise.
      	* include/bits/stl_multimap.h: Likewise.
      	* include/bits/stl_multiset.h: Likewise.
      	* include/bits/stl_queue.h: Likewise.
      	* include/bits/stl_set.h: Likewise.
      	* include/bits/stl_stack.h: Likewise.
      	* include/bits/stl_tree.h: Likewise.
      	* include/bits/stl_vector.h: Likewise.
      	* include/bits/unordered_map.h: Likewise.
      	* include/bits/unordered_set.h: Likewise.
      	* include/debug/array: Likewise.
      	* include/experimental/any: Likewise.
      	* include/experimental/bits/fs_path.h: Likewise.
      	* include/experimental/internet: Likewise.
      	* include/experimental/string_view: Likewise.
      	* include/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp:
      	Likewise.
      	*
      include/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/list_update_map_/lu_map_.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hp:
      	Likewise.
      	* include/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp:
      	Likewise.
      	* include/ext/pb_ds/detail/tree_trace_base.hpp: Likewise.
      	* include/ext/pb_ds/trie_policy.hpp: Likewise.
      	* include/ext/rope: Likewise.
      	* include/ext/slist: Likewise.
      	* include/ext/vstring.h: Likewise.
      	* include/profile/array: Likewise.
      	* include/std/array: Likewise.
      	* include/tr1/array: Likewise.
      	* include/tr1/hashtable.h: Likewise.
      	* include/tr1/regex: Likewise.
      	* include/tr2/dynamic_bitset: Likewise.
      	* include/bits/alloc_traits.h: Add nodiscard attribute to
      	allocate.
      	* include/experimental/memory_resource: Likewise.
      	* include/ext/alloc_traits.h: Likewise.
      	* include/ext/array_allocator.h: Likewise.
      	* include/ext/bitmap_allocator.h: Likewise.
      	* include/ext/debug_allocator.h: Likewise.
      	* include/ext/extptr_allocator.h: Likewise.
      	* include/ext/mt_allocator.h: Likewise.
      	* include/ext/new_allocator.h: Likewise.
      	* include/ext/pool_allocator.h: Likewise.
      	* include/ext/throw_allocator.h: Likewise.
      	* include/std/scoped_allocator: Likewise.
      	* libsupc++/eh_alloc.cc: Likewise.
      	* include/std/future: Add nodiscard attribute to async.
      	* libsupc++/new: Add nodiscard attribute to new.
      
      From-SVN: r268111
      Ulrich Drepper committed
    • Daily bump. · 91f1f6cd
      From-SVN: r268110
      GCC Administrator committed
  2. 20 Jan, 2019 7 commits
    • Limit AA walking in IPA summary generation · c628d1c3
      2019-01-20  Martin Jambor  <mjambor@suse.cz>
      
      	PR ipa/87615
      	* ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
      	with aa_walk_budget.
      	* cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
      	aa_walk_budget_p parameter.
      	* ipa-fnsummary.c (unmodified_parm_1): New parameter fbi.  Limit AA
      	walk.  Updated all callers.
      	(unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
      	(eliminated_by_inlining_prob): New parameter fbi, pass it on to
      	unmodified_parm.
      	(will_be_nonconstant_expr_predicate): New parameter fbi, removed
      	parameter info.  Extract info from fbi.  Pass fbi to recursive calls
      	and to unmodified_parm.
      	(phi_result_unknown_predicate): New parameter fbi, removed parameter
      	info, updated call to will_be_nonconstant_expr_predicate.
      	(param_change_prob): New parameter fbi, limit AA walking.
      	(analyze_function_body): Initialize aa_walk_budget in fbi.  Update
      	calls to various above functions.
      	* ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
      	parameter.  Use it to limit AA walking.
      	* ipa-prop.c (detect_type_change_from_memory_writes): New parameter
      	fbi, limit AA walk.
      	(detect_type_change): New parameter fbi, pass it on to
      	detect_type_change_from_memory_writes.
      	(detect_type_change_ssa): Likewise.
      	(aa_overwalked): Removed.
      	(parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
      	accordingly, adjust to the neew AA limiting scheme.
      	(parm_ref_data_preserved_p): Likewise.
      	(ipa_compute_jump_functions_for_edge): Adjust call to
      	get_dynamic_type.
      	(ipa_analyze_call_uses): Likewise.
      	(ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
      	(ipa_analyze_node): Initialize aa_walk_budget.
      	(ipcp_transform_function): Likewise.
      	* tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
      	to get_dynamic_type.
      
      From-SVN: r268107
      Martin Jambor committed
    • [D] Don't predefine GNU_StackGrowsDown on every target. · 49686677
      Every back-end defines STACK_GROWS_DOWNWARD, the condition should
      instead be  checking whether it was defined as 1 or 0.
      
      gcc/d/ChangeLog:
      
      2019-01-20  Iain Buclaw  <ibuclaw@gdcproject.org>
      
      	* d-builtins.cc (d_init_versions): Check value of
      	STACK_GROWS_DOWNWARD.
      
      From-SVN: r268106
      Iain Buclaw committed
    • [D] Fix identity comparison for structs with complex float fields. · 5bdebb51
      gcc/d/ChangeLog:
      
      2019-01-20  Iain Buclaw  <ibuclaw@gdcproject.org>
      
      	* d-codegen.cc (identity_compare_p): Return false if seen built-in
      	type with padding.
      	(build_float_identity): Moved here from expr.cc.
      	(lower_struct_comparison): Handle real and complex types.
      	* d-tree.h (build_float_identity): New.
      	* expr.cc (build_float_identity): Move to d-codegen.cc.
      
      gcc/testsuite/ChangeLog:
      
      2019-01-20  Iain Buclaw  <ibuclaw@gdcproject.org>
      
      	* gdc.dg/runnable.d: Add more tests for comparing complex types.
      
      From-SVN: r268104
      Iain Buclaw committed
    • [D] Fix IdentityExp comparison for complex floats. · 70d87497
      gcc/d/ChangeLog:
      
      2019-01-20  Johannes Pfau  <johannespfau@gmail.com>
      
      	* expr.cc (build_float_identity): New function.
      	(ExprVisitor::visit(IdentityExp)): Add support for complex types.
      
      gcc/testsuite/ChangeLog:
      
      2019-01-20  Johannes Pfau  <johannespfau@gmail.com>
      
      	* gdc.dg/runnable.d: Add tests for comparing complex types.
      
      From-SVN: r268103
      Johannes Pfau committed
    • vector long long and vector double require vsx support. · a766ecb0
      gcc/testsuite/ChangeLog
      
          * gcc.target/powerpc/altivec_vld_vst_addr.c: Remove, split into 
          altivec_vld_vst_addr-1.c and altivec_vld_vst_addr-2.c.
          * gcc.target/powerpc/altivec_vld_vst_addr-1.c: New test.
          * gcc.target/powerpc/altivec_vld_vst_addr-2.c: Ditto.
      
      From-SVN: r268102
      Kewen Lin committed
    • Daily bump. · c72473e4
      From-SVN: r268101
      GCC Administrator committed
  3. 19 Jan, 2019 9 commits
    • [multiple changes] · b4e17cad
      2019-01-19  Dominique d'Humieres  <dominiq@gcc.gnu.org>
      
      	PR fortran/37835
      	* resolve.c (resolve_types): Add !flag_automatic.
      	* symbol.c (gfc_add_save): Silence warnings.
      
      2019-01-18  Dominique d'Humieres  <dominiq@gcc.gnu.org>
      
      	PR fortran/37835
      	* gfortran.dg/no-automatic.f90: New test.
      
      From-SVN: r268098
      Dominique d'Humieres committed
    • re PR fortran/77960 (ICE in gfc_conv_ss_startstride, at fortran/trans-array.c:3966) · 5131b898
      2019-01-19  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/77960
      	* io.c (match_io_element): input-item cannot be an external function.
       
      2019-01-19  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/77960
      	* gfortran.dg/pr77960.f90: New test.
      
      From-SVN: r268097
      Steven G. Kargl committed
    • re PR fortran/56789 (Handling of contiguous dummy arguments) · 8558af50
      2018-01-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
      	Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/56789
      	* trans-expr.c (gfc_conv_procedure_call): Call
      	gfc_conv_subref_array_arg if the formal arg is contiguous
      	and the actual arg may not be.
      
      2018-01-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
      	Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/56789
      	* gfortran.dg/contiguous_3.f90: Make code compilant.  Remove
      	scan-tree tests that fail with patch.
      	* gfortran.dg/contiguous_8.f90: New test.
      
      
      Co-Authored-By: Paul Thomas <pault@gcc.gnu.org>
      
      From-SVN: r268096
      Thomas Koenig committed
    • aarch64.c (aarch64_stack_protect_guard): Move outside of #if CHECKING_P code. · e76c8e56
      	* config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
      	outside of #if CHECKING_P code.
      
      From-SVN: r268095
      Jakub Jelinek committed
    • Claw back some of the code size regression in 548.exchange2_r · e047844b
      This patch tries harder to detect cases in which the inner dimension
      of an array access is invariant, such as:
      
           x(i, :) = 100
      
      It fixes some of the code size regression in 548.exchange2_r, with
      size improving by 5% compared to before the patch.  Of the two other
      SPEC 2017 tests affected by loop versioning, 554.roms_r improved by a
      trivial amount (0.3%) and 549.fotonik3d_r didn't change.  All three
      results are with -Ofast -flto.
      
      2019-01-19  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
      	New function, split out from...
      	(loop_versioning::analyze_stride): ...here.
      	(loop_versioning::find_per_loop_multiplication): Use gassign.
      	(loop_versioning::analyze_term_using_scevs): Return a success code.
      	(loop_versioning::analyze_arbitrary_term): New function.
      	(loop_versioning::analyze_address_fragment): Use
      	analyze_arbitrary_term if all else fails.
      
      gcc/testsuite/
      	* gfortran.dg/loop_versioning_1.f90: Bump the number of identified
      	inner strides.
      	* gfortran.dg/loop_versioning_9.f90: New test.
      	* gfortran.dg/loop_versioning_10.f90: Likewise.
      
      From-SVN: r268093
      Richard Sandiford committed
    • re PR fortran/88871 (ICE segmentation fault in f951) · b9e25708
      2019-01-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/88871
      	* resolve.c (resolve_ref): Fix logic for removal of
      	reference.
      
      From-SVN: r268092
      Thomas Koenig committed
    • re PR fortran/88902 (ICE: Segmentation fault (in DFS::DFS_write_tree_body)) · 152f258f
      	PR fortran/88902
      	* trans-decl.c (gfc_get_symbol_decl): Don't add length to function
      	or parent function if it has been added there already.
      
      	* gfortran.dg/pr88902.f90: New test.
      
      From-SVN: r268091
      Jakub Jelinek committed
    • attr-nonstring-3.c: Remove an xfail. · 1f7c5604
      gcc/testsuite/ChangeLog:
      
      	* c-c++-common/attr-nonstring-3.c: Remove an xfail.
      
      From-SVN: r268090
      Martin Sebor committed
    • Daily bump. · 03795aa0
      From-SVN: r268089
      GCC Administrator committed
  4. 18 Jan, 2019 9 commits
    • PR libstdc++/88782 avoid ODR problems in std::make_shared · fb54aa59
      The old version of _Sp_counted_ptr_inplace::_M_get_deleter (up to GCC
      8.2.0) expects to be passed a real std::typeinfo object, so mixing that
      with the new definition of the __shared_ptr constructor (which always
      passes the fake tag) leads to accessing the fake object as a real
      std::typeinfo. Instead of trying to make it safe to mix the old and new
      definitions, just stop using that function. By passing a reference to
      __shared_ptr::_M_ptr to the __shared_count constructor it can be set
      directly, without needing to obtain the pointer via the _M_get_deleter
      back-channel. This avoids a virtual dispatch (which fixes PR 87514).
      
      This means that code built against new libstdc++ headers doesn't use
      _M_get_deleter at all, and so make_shared works the same whether RTTI is
      enabled or not.
      
      Also change _M_get_deleter so that it checks for a real type_info object
      even when RTTI is disabled, by calling a library function. Unless
      libstdc++ itself is built without RTTI that library function will be
      able to test if it's the right type_info. This means the new definition
      of _M_get_deleter can handle both the fake type_info tag and a real
      type_info object, even if built without RTTI.
      
      If linking to objects built against older versions of libstdc++ then if
      all objects use -frtti or all use -fno-rtti, then the caller of
      _M_get_deleter and the definition of _M_get_deleter will be consistent
      and it will work. If mixing -frtti with -fno-rtti it can still fail if
      the linker picks an old definition of _M_get_deleter and an old
      __shared_ptr constructor that are incompatible. In that some or all
      objects might need to be recompiled.
      
      	PR libstdc++/87514
      	PR libstdc++/87520
      	PR libstdc++/88782
      	* config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Export new symbol.
      	* include/bits/shared_ptr.h
      	(shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...))
      	(allocate_shared): Change to use new tag type.
      	* include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_eq):
      	Declare new member function.
      	(_Sp_alloc_shared_tag): Define new type.
      	(_Sp_counted_ptr_inplace): Declare __shared_count<_Lp> as a friend.
      	(_Sp_counted_ptr_inplace::_M_get_deleter) [!__cpp_rtti]: Use
      	_Sp_make_shared_tag::_S_eq to check type_info.
      	(__shared_count(Ptr, Deleter),__shared_count(Ptr, Deleter, Alloc)):
      	Constrain to prevent being called with _Sp_alloc_shared_tag.
      	(__shared_count(_Sp_make_shared_tag, const _Alloc&, Args&&...)):
      	Replace constructor with ...
      	(__shared_count(Tp*&, _Sp_alloc_shared_tag<_Alloc>, Args&&...)): Use
      	reference parameter so address of the new object can be returned to
      	the caller. Obtain the allocator from the tag type.
      	(__shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)): Replace
      	constructor with ...
      	(__shared_ptr(_Sp_alloc_shared_tag<Alloc>, Args&&...)): Pass _M_ptr
      	to the __shared_count constructor.
      	(__allocate_shared): Change to use new tag type.
      	* src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq): Define.
      
      From-SVN: r268086
      Jonathan Wakely committed
    • PR c++/88875 - error with explicit list constructor. · dea93fc6
      In my patch for CWG issue 2267, I changed reference_binding to clear
      CONSTRUCTOR_IS_DIRECT_INIT on the argument init-list.  But that breaks if
      there's another candidate for which CONSTRUCTOR_IS_DIRECT_INIT is correct.
      So instead, let's encode in the conversion that we want to override the
      flag.
      
      	* call.c (reference_binding): Don't modify EXPR.  Set
      	need_temporary_p on the ck_user conversion for a temporary.
      	(convert_like_real): Check it.
      
      From-SVN: r268085
      Jason Merrill committed
    • libgo: update to Go1.12beta2 · 4f4a855d
          
          Reviewed-on: https://go-review.googlesource.com/c/158019
      
      gotools/:
      	* Makefile.am (go_cmd_vet_files): Update for Go1.12beta2 release.
      	(GOTOOLS_TEST_TIMEOUT): Increase to 600.
      	(check-runtime): Export LD_LIBRARY_PATH before computing GOARCH
      	and GOOS.
      	(check-vet): Copy golang.org/x/tools into check-vet-dir.
      	* Makefile.in: Regenerate.
      
      gcc/testsuite/:
      	* go.go-torture/execute/names-1.go: Stop using debug/xcoff, which
      	is no longer externally visible.
      
      From-SVN: r268084
      Ian Lance Taylor committed
    • rs6000: Fix *movsi_from_df (PR88892) · 225220d6
      The memory store instructions (stfs[u][x], stxssp[x]) can result in
      garbage if the value to be stored isn't already a valid single
      precision floating point number.  So we cannot use this here.
      
      
      	PR target/88892
      	* config/rs6000/rs6000.md (*movsi_from_df): Allow only register
      	operands.
      
      From-SVN: r268083
      Segher Boessenkool committed
    • re PR libbacktrace/88890 (libbacktrace on 32-bit system with _FILE_OFFSET_BITS == 64) · 8b248c17
      	PR libbacktrace/88890
      	* mmapio.c (backtrace_get_view): Change size parameter to
      	uint64_t.  Check that value fits in size_t.
      	* read.c (backtrace_get_view): Likewise.
      	* internal.h (backtrace_get_view): Update declaration.
      	* elf.c (elf_add): Pass shstrhdr->sh_size to backtrace_get_view.
      
      From-SVN: r268082
      Ian Lance Taylor committed
    • re PR c++/86926 (ICE for a recursive generic lambda) · 89ce81fb
      	PR c++/86926
      	* g++.dg/cpp1z/constexpr-lambda23.C: New test.
      
      From-SVN: r268080
      Marek Polacek committed
    • Update PR middle-end/88587 tests · 3a42e16d
      It is wrong to use -m32 in dg-options.  { target ia32 } should be used
      instead.  Also add -fno-pic to g++.target/i386/pr88587.C since it is
      invalid with PIC.
      
      	PR middle-end/88587
      	* g++.target/i386/pr88587.C (dg-do): Add { target ia32 }.
      	(dg-options): Replace -m32 with -fno-pic.
      	* gcc.target/i386/mvc13.c (dg-do): Add { target ia32 }.
      	(dg-options): Remove -m32.
      
      From-SVN: r268079
      H.J. Lu committed
    • re PR tree-optimization/88903 (wrong-code with SLP vectorized shift) · 649794ff
      2019-01-18  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/88903
      	* tree-vect-stmts.c (vectorizable_shift): Verify we see all
      	scalar stmts a SLP shift amount is composed of when detecting
      	shifts by scalars.
      
      	* gcc.dg/vect/pr88903-1.c: New testcase.
      	* gcc.dg/vect/pr88903-2.c: Likewise.
      
      From-SVN: r268076
      Richard Biener committed
    • c-family: Update unaligned adress of packed member check · 420183d9
      Check unaligned pointer conversion and strip NOPS.
      
      gcc/c-family/
      
      	PR c/51628
      	PR c/88664
      	* c-common.h (warn_for_address_or_pointer_of_packed_member):
      	Remove the boolean argument.
      	* c-warn.c (check_address_of_packed_member): Renamed to ...
      	(check_address_or_pointer_of_packed_member): This.  Also
      	warn pointer conversion.
      	(check_and_warn_address_of_packed_member): Renamed to ...
      	(check_and_warn_address_or_pointer_of_packed_member): This.
      	Also warn pointer conversion.
      	(warn_for_address_or_pointer_of_packed_member): Remove the
      	boolean argument.  Don't check pointer conversion here.
      
      gcc/c
      
      	PR c/51628
      	PR c/88664
      	* c-typeck.c (convert_for_assignment): Upate the
      	warn_for_address_or_pointer_of_packed_member call.
      
      gcc/cp
      
      	PR c/51628
      	PR c/88664
      	* call.c (convert_for_arg_passing): Upate the
      	warn_for_address_or_pointer_of_packed_member call.
      	* typeck.c (convert_for_assignment): Likewise.
      
      gcc/testsuite/
      
      	PR c/51628
      	PR c/88664
      	* c-c++-common/pr51628-33.c: New test.
      	* c-c++-common/pr51628-35.c: New test.
      	* c-c++-common/pr88664-1.c: Likewise.
      	* c-c++-common/pr88664-2.c: Likewise.
      	* gcc.dg/pr51628-34.c: Likewise.
      
      From-SVN: r268075
      H.J. Lu committed