1. 22 Jun, 2018 5 commits
  2. 21 Jun, 2018 34 commits
    • PR libstdc++/86138 prevent implicit instantiation of COW empty rep · d72888d3
      The explicit instantiation declarations for std::basic_string are
      disabled for C++17 (and later) so that basic_string symbols get
      implicitly instantiated in every translation unit that needs them.  On
      targets that don't support STB_GNU_UNIQUE this leads to multiple copies
      of the empty rep symbol for COW strings. In order to detect whether a
      COW string needs to deallocate its storage it compares the address with
      the empty rep.  When there are multiple copies of the empty rep object
      the address is not unique, and so string destructors try to delete the
      empty rep, which crashes.
      
      In order to guarantee uniqueness of the _S_empty_rep_storage symbol this
      patch adds an explicit instantiation declaration for just that symbol.
      This means the other symbols are still implicitly instantiated in C++17
      code, but for the empty rep the definition in the library gets used.
      
      Separately, there is no need for C++17 code to implicitly instantiate
      the I/O functions for strings, so this also restores the explicit
      instantiation declarations for those functions.
      
      	PR libstdc++/86138
      	* include/bits/basic_string.tcc:
      	[__cplusplus > 201402 && !_GLIBCXX_USE_CXX11_ABI]
      	(basic_string<char>::_Rep::_S_empty_rep_storage)
      	(basic_string<wchar_t>::_Rep::_S_empty_rep_storage): Add explicit
      	instantiation declarations.
      	[__cplusplus > 201402] (operator>>, operator<<, getline): Re-enable
      	explicit instantiation declarations.
      	* testsuite/21_strings/basic_string/cons/char/86138.cc: New.
      	* testsuite/21_strings/basic_string/cons/wchar_t/86138.cc: New.
      
      From-SVN: r261873
      Jonathan Wakely committed
    • pack02.c: Use __ibm128 instead of long double if the long double format is IEEE 128-bit... · 30043df9
      2018-06-21  Michael Meissner  <meissner@linux.ibm.com>
      
      	* gcc.target/powerpc/pack02.c: Use __ibm128 instead of long double
      	if the long double format is IEEE 128-bit for tests that are
      	explicitly testing IBM extended double support.  Use the
      	appropriate pack and unpack built-in functions.  Change calls from
      	__builtin_isinfl to __builtin_isinf since the later supports all
      	floating point types.
      	* gcc.target/powerpc/pr57150.c: Likewise.
      	* gcc.target/powerpc/pr60203.c: Likewise.
      	* gcc.target/powerpc/pr67808.c: Likewise.
      	* gcc.target/powerpc/pr70117.c: Likewise.
      	* gcc.target/powerpc/tfmode_off.c: Likewise.
      
      From-SVN: r261872
      Michael Meissner committed
    • cmd/go: re-enable a couple of tests of gccgo · 27fbc519
          
          Port https://golang.org/cl/120375 over to the gofrontend repo so that
          it gets more reliable testing.
          
          Updates golang/go#22472
          
          Reviewed-on: https://go-review.googlesource.com/120395
      
      From-SVN: r261871
      Ian Lance Taylor committed
    • rs6000.c (init_float128_ieee): Prevent complex multiply and divide external… · ed044066
      rs6000.c (init_float128_ieee): Prevent complex multiply and divide external functions from being created more...
      
      2018-06-23  Michael Meissner  <meissner@linux.ibm.com>
      
      	* config/rs6000/rs6000.c (init_float128_ieee): Prevent complex
      	multiply and divide external functions from being created more
      	than once.
      
      From-SVN: r261870
      Michael Meissner committed
    • rs6000.md (neg<mode>2_internal): Use the correct mode to check whether the mode is IBM extended. · e8ccf824
      2018-06-21  Michael Meissner  <meissner@linux.ibm.com>
      
      	* config/rs6000/rs6000.md (neg<mode>2_internal): Use the correct
      	mode to check whether the mode is IBM extended.
      
      From-SVN: r261869
      Michael Meissner committed
    • re PR fortran/49630 ([OOP] ICE on obsolescent deferred-length type bound character function) · 77f72c95
      2018-06-21  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/49630
      	* resolve.c (resolve_contained_fntype): Change standard ref.
      	from F95 to F2003: C418. Correct a spelling error in a comment.
      	It is an error for an abstract interface to have an assumed
      	character length result.
      	* trans-expr.c (gfc_conv_procedure_call): Likewise change the
      	standard reference.
      
      2018-06-21  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/49630
      	* gfortran.dg/assumed_charlen_function_7.f90: New test.
      
      From-SVN: r261868
      Paul Thomas committed
    • rs6000.md (extendtfif2): Add missing 128-bit conversion insn that shows up when... · fe5309c5
      2018-06-21  Michael Meissner  <meissner@linux.ibm.com>
      
      	* config/rs6000/rs6000.md (extendtfif2): Add missing 128-bit
      	conversion insn that shows up when pr85657-3.c is compiled using
      	IEEE 128-bit long double.
      
      From-SVN: r261867
      Michael Meissner committed
    • PR libstdc++/83328 add correct basic_string::insert for initializer_list · cda121ac
      The SSO basic_string has a non-standard insert(iterator, initializer_list)
      overload, from a C++0x draft. This adds the correct overload, while also
      preserving the old one so that the old symbol is still exported from the
      library.
      
      The COW basic_string doesn't have any of the C++11 changes to the insert
      overloads (they all still have non-const iterator parameters and the
      ones that should return an iterator still return void). This doesn't
      make any change to the COW string.
      
      	PR libstdc++/83328
      	* acinclude.m4 (libtool_VERSION): Bump to 6:26:0.
      	* config/abi/pre/gnu.ver: Add GLIBCXX_3.4.26 and export new symbol.
      	* configure: Regenerate.
      	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
      	(basic_string::insert(const_iterator, initializer_list<C>)): Add.
      	[_GLIBCXX_USE_CXX11_ABI && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
      	(basic_string::insert(iterator, initializer_list<C>)): Suppress
      	definition.
      	* include/debug/string (basic_string::insert(iterator, C)): Change
      	first parameter to const_iterator.
      	(basic_string::insert(iterator, size_type, C)): Likewise. Change
      	return type to iterator.
      	(basic_string::insert(iterator, InputIterator, InputIterator)):
      	Likewise.
      	(basic_string::insert(iterator, initializer_list<C>)): Change first
      	parameter to const_iterator and return type to iterator.
      	* src/c++11/string-inst.cc: Extend comment.
      	* testsuite/21_strings/basic_string/modifiers/insert/char/83328.cc:
      	New.
      	* testsuite/21_strings/basic_string/modifiers/insert/wchar_t/83328.cc:
      	New.
      	* testsuite/util/testsuite_abi.cc: Add new symbol version.
      
      From-SVN: r261866
      Jonathan Wakely committed
    • Reduce garbage from push_to_top_level. · 50200c65
      	* name-lookup.c (do_push_to_top_level): Don't allocate
      	current_lang_base.
      	(do_pop_from_top_level): Release current_lang_base.
      
      From-SVN: r261860
      Jason Merrill committed
    • Let -fmem-report see callers of cxx_make_type. · 6ec04704
      	* lex.c (cxx_make_type): Add MEM_STAT_DECL.
      	(make_class_type): Likewise.
      	(cxx_make_type_hook): New.
      	* cp-objcp-common.h (LANG_HOOKS_MAKE_TYPE): Use cxx_make_type_hook.
      
      From-SVN: r261859
      Jason Merrill committed
    • PR c++/86182 - fix wrong PR tag in earlier commit · 8745500a
      From-SVN: r261858
      Jason Merrill committed
    • re PR fortran/83118 (Bad intrinsic assignment of class(*) array component of derived type) · 75382a96
      2018-06-21  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/83118
      	* resolve.c (resolve_ordinary_assign): Force the creation of a
      	vtable for assignment of non-polymorphic expressions to an
      	unlimited polymorphic object.
      	* trans-array.c (gfc_alloc_allocatable_for_assignment): Use the
      	size of the rhs type for such assignments. Set the dtype, _len
      	and vptrs appropriately.
      	* trans-expr.c (gfc_trans_assignment): Force the use of the
      	_copy function for these assignments.
      
      2018-06-21  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/83118
      	* gfortran.dg/unlimited_polymorphic_30.f03: New test.
      
      From-SVN: r261857
      Paul Thomas committed
    • cfgrtl.c (fixup_reorder_chain): Do not emit NOPs in DECL_IGNORED_P functions. · 7792f13c
      	* cfgrtl.c (fixup_reorder_chain): Do not emit NOPs in DECL_IGNORED_P
      	functions.
      	(rtl_merge_blocks): Likewise.  Do not emit a NOP if the location of
      	the edge can be forwarded.
      	(cfg_layout_merge_blocks): Likewise.
      
      From-SVN: r261856
      Eric Botcazou committed
    • except.c (finish_eh_generation): Commit edge insertions only after the EH edges… · 56b97603
      except.c (finish_eh_generation): Commit edge insertions only after the EH edges have been redirected from...
      
      	* except.c (finish_eh_generation): Commit edge insertions only after
      	the EH edges have been redirected from post-landing to landing pads.
      
      From-SVN: r261855
      Eric Botcazou committed
    • tree-nested.c (get_frame_type): Use create_tmp_var_raw instead of… · 575b1925
      tree-nested.c (get_frame_type): Use create_tmp_var_raw instead of create_tmp_var_for to create the FRAME decl.
      
      	* tree-nested.c (get_frame_type): Use create_tmp_var_raw instead of
      	create_tmp_var_for to create the FRAME decl.
      	(finalize_nesting_tree_1): Do not unchain the FRAME decl.
      
      From-SVN: r261854
      Eric Botcazou committed
    • tree-inline.c (copy_edges_for_bb): Minor tweak. · 29cbd18b
      	* tree-inline.c (copy_edges_for_bb): Minor tweak.
      	(maybe_move_debug_stmts_to_successors): Also reset the locus of the
      	debug statement when resetting its value.
      	(expand_call_inline): Copy the locus of the call onto the assignment
      	of the return value, if any.  Use local variable in more cases.
      
      From-SVN: r261853
      Eric Botcazou committed
    • PR libstdc++/70940 make pmr::resource_adaptor return aligned memory · e9df6a8f
      	PR libstdc++/70940
      	* include/experimental/memory_resource
      	(__resource_adaptor_imp::do_deallocate): Add missing return.
      	* testsuite/experimental/memory_resource/new_delete_resource.cc: New.
      	* testsuite/experimental/memory_resource/resource_adaptor.cc: Test
      	resource_adaptor with std::allocator, __gnu_cxx::new_allocator and
      	__gnu_cxx::malloc_allocator.
      
      From-SVN: r261851
      Jonathan Wakely committed
    • PR libstdc++/70940 make pmr::resource_adaptor return aligned memory · 7956c508
      	PR libstdc++/70940
      	* include/experimental/memory_resource (__resource_adaptor_common):
      	New base class.
      	(__resource_adaptor_common::_AlignMgr): Helper for obtaining aligned
      	pointer from unaligned, and vice versa.
      	(__resource_adaptor_imp::do_allocate): Use _AlignMgr to adjust
      	allocated pointer to meet alignment request.
      	(__resource_adaptor_imp::do_deallocate): Use _AlignMgr to retrieve
      	original pointer for deallocation.
      	(__resource_adaptor_imp::do_is_equal): Reformat.
      	(__resource_adaptor_imp::_S_aligned_size): Remove.
      	(__resource_adaptor_imp::_S_supported): Remove.
      	(new_delete_resource): Use __gnu_cxx::new_allocator.
      	* testsuite/experimental/memory_resource/resource_adaptor.cc: Test
      	extended alignments and use debug_allocator to check for matching
      	allocate/deallocate pairs.
      
      From-SVN: r261849
      Jonathan Wakely committed
    • IPA summaries use ::get in ipa-pure-const.c. · 67b3b8fe
      2018-06-21  Martin Liska  <mliska@suse.cz>
      
      	* ipa-pure-const.c (propagate_nothrow): Use
              funct_state_summaries->get.
      	(dump_malloc_lattice): Likewise.
      	(propagate_malloc): Likewise.
      
      From-SVN: r261848
      Martin Liska committed
    • lto-streamer-out.c (DFS::DFS_write_tree_body): Update outdated comment. · f5fe239e
      2018-06-21  Richard Biener  <rguenther@suse.de>
      
      	* lto-streamer-out.c (DFS::DFS_write_tree_body): Update outdated
      	comment.  Follow BLOCK_ABSTRACT_ORIGIN unconditionally.
      	* tree-streamer-in.c (lto_input_ts_block_tree_pointers): Update
      	comment.
      	* tree-streamer-out.c (write_ts_block_tree_pointers): Stream
      	BLOCK_ABSTRACT_ORIGIN unconditionally.
      
      From-SVN: r261847
      Richard Biener committed
    • Fix IPA crash in libgccjit · e67343d7
      gcc/ChangeLog:
      	* ipa-cp.c (ipcp_driver): Set edge_clone_summaries to NULL after
      	deleting it.
      	* ipa-reference.c (ipa_reference_c_finalize): Delete
      	ipa_ref_opt_sum_summaries and set it to NULL.
      
      From-SVN: r261846
      David Malcolm committed
    • [testsuite] Fix guality/pr45882.c for flto · d22d74e0
      Atm this test in pr45882.c fails:
      ...
        int d = a[i];  /* { dg-final { gdb-test 16 "d" "112" } } */
      ...
      as follows:
      ...
      FAIL: gcc.dg/guality/pr45882.c   -O2 -flto -fuse-linker-plugin \
            -fno-fat-lto-objects  line 16 d == 112
      ...
      
      In more detail, gdb fails to print the value of d:
      ...
      Breakpoint 1, foo (i=i@entry=7, j=j@entry=7) at pr45882.c:16
      16        ++v;
      $1 = <optimized out>
      $2 = 112
      <optimized out> != 112
      ...
      
      Variable d is a local variable in function foo, initialized from global array a.
      When compiling, first cddce1 removes the initialization of d in foo, given
      that d is not used afterwards.  Then ipa marks array a as write-only, and
      removes the stores to array a in main.  This invalidates the location
      expression for d, which points to a[i], so it is removed, which is why gdb
      ends up printing <optimized out> for d.
      
      This patches fixes the fail by adding attribute used to array a, preventing
      array a from being marked as write-only.
      
      Tested on x86_64.
      
      2018-06-21  Tom de Vries  <tdevries@suse.de>
      
      	* gcc.dg/guality/pr45882.c (a): Add used attribute.
      
      From-SVN: r261845
      Tom de Vries committed
    • [tail-merge] Fix side-effect test in stmt_local_def · 494e7532
      2018-06-21  Tom de Vries  <tdevries@suse.de>
      
      	PR tree-optimization/85859
      	* tree-ssa-tail-merge.c (stmt_local_def): Copy gimple_is_call
      	test with comment from bb_no_side_effects_p.
      
      	* gcc.dg/pr85859.c: New test.
      
      From-SVN: r261844
      Tom de Vries committed
    • re PR tree-optimization/86232 (ICE in record_estimate, at tree-ssa-loop-niter.c:3258) · 8732dd82
      2018-06-21  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/86232
      	* tree-ssa-loop-niter.c (number_of_iterations_popcount): Adjust
      	max for constant niter.
      
      	* gcc.dg/torture/pr86232.c: New testcase.
      
      From-SVN: r261843
      Richard Biener committed
    • [ARM] Use __ARM_ARCH and __ARM_FEATURE_LDREX instead of __ARM_ARCH__ · 9b2e34ef
      2018-06-21  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	libatomic/
      	* config/arm/arm-config.h (__ARM_ARCH__): Remove definitions, use
      	__ARM_ARCH instead. Use __ARM_FEATURE_LDREX to define HAVE_STREX
      	and HAVE_STREXBHD
      
      	libgcc/
      	* config/arm/lib1funcs.S (__ARM_ARCH__): Remove definitions, use
      	__ARM_ARCH and __ARM_FEATURE_CLZ instead.
      	(HAVE_ARM_CLZ): Remove definition, use __ARM_FEATURE_CLZ instead.
      	* config/arm/ieee754-df.S: Use __ARM_FEATURE_CLZ instead of
      	__ARM_ARCH__.
      	* config/arm/ieee754-sf.S: Likewise.
      	* config/arm/libunwind.S: Use __ARM_ARCH instead of __ARM_ARCH__.
      
      From-SVN: r261841
      Christophe Lyon committed
    • [ARM] libgcc: Remove unsupported code for __ARM_ARCH__ < 4 · d1b0dd54
      2018-06-21  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	libgcc/
      	* config/arm/ieee754-df.S: Remove code for __ARM_ARCH__ < 4, no
      	longer supported.
      	* config/arm/ieee754-sf.S: Likewise.
      
      From-SVN: r261840
      Christophe Lyon committed
    • [AArch64][PATCH 2/2] Combine AES instructions with xor and zero operands · 9b57fd3d
      gcc
      2018-06-21  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	* config/aarch64/aarch64-simd.md
      	(*aarch64_crypto_aes<aes_op>v16qi_xor_combine): New.
      
      gcc/testsuite
      2018-06-21  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	* gcc/gcc.target/aarch64/aes_xor_combine.c: New test.
      
      From-SVN: r261836
      Andre Vieira committed
    • [AArch64][PATCH 1/2] Make AES unspecs commutative · ff029883
      gcc
      2018-06-21  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	* config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
      	Make opernads of the unspec commutative.
      
      gcc/testsuite
      2018-06-21  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	* gcc/gcc.target/aarch64/aes_2.c: New test.
      
      From-SVN: r261835
      Andre Vieira committed
    • tree-data-ref.c (dr_step_indicator): Handle NULL DR_STEP. · 5fa23466
      2018-06-21  Richard Biener  <rguenther@suse.de>
      
      	* tree-data-ref.c (dr_step_indicator): Handle NULL DR_STEP.
      	* tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
      	Avoid calling vect_mark_for_runtime_alias_test with gathers or scatters.
      	(vect_analyze_data_ref_dependence): Re-order checks to deal with
      	NULL DR_STEP.
      	(vect_record_base_alignments): Do not record base alignment
      	for gathers or scatters.
      	(vect_compute_data_ref_alignment): Drop return value that is always
      	true.  Bail out early for gathers or scatters.
      	(vect_enhance_data_refs_alignment): Bail out early for gathers
      	or scatters.
      	(vect_find_same_alignment_drs): Likewise.
      	(vect_analyze_data_refs_alignment): Remove dead code.
      	(vect_slp_analyze_and_verify_node_alignment): Likewise.
      	(vect_analyze_data_refs): For possible gathers or scatters do
      	not create an alternate DR, just check their possible validity
      	and mark them.  Adjust DECL_NONALIASED handling to not rely
      	on DR_BASE_ADDRESS.
      	* tree-vect-loop-manip.c (vect_update_inits_of_drs): Do not
      	update inits of gathers or scatters.
      	* tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
      	Also copy gather/scatter flag to pattern vinfo.
      
      From-SVN: r261834
      Richard Biener committed
    • re PR other/86198 (Libbacktrace does not properly work with ".note.gnu.build-id" section) · 1ac6620a
      libbacktrace/
      
      2018-06-21 Denis Khalikov <d.khalikov@partner.samsung.com>
      
      	PR other/86198
      	* elf.c (elf_add): Increase ".note.gnu.build-id" section size
      	checking up to 36 bytes.
      
      From-SVN: r261832
      Denis Khalikov committed
    • debug.h (_Safe_iterator<>(const _Safe_iterator<_MutableIterator,>& __x)):… · 802743ba
      debug.h (_Safe_iterator<>(const _Safe_iterator<_MutableIterator,>& __x)): Compare __x base iterator with a default initialized iterator of the same type.
      
      2018-06-21  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/debug/debug.h
      	(_Safe_iterator<>(const _Safe_iterator<_MutableIterator,>& __x)):
      	Compare __x base iterator with a default initialized iterator of the
      	same type.
      
      From-SVN: r261831
      François Dumont committed
    • Daily bump. · a788a23c
      From-SVN: r261830
      GCC Administrator committed
  3. 20 Jun, 2018 1 commit