1. 15 Aug, 2018 14 commits
  2. 14 Aug, 2018 11 commits
    • Include <sys/random.h> for getentropy on Solaris · 864c28e1
      	* configure.ac: Check for <sys/random.h>.
      	* configure, config.h.in: Regenerate.
      	* intrinsics/random.c [HAVE_SYS_RANDOM_H]: Include <sys/random.h>.
      
      From-SVN: r263543
      Rainer Orth committed
    • PR libstdc++/86954 use non-placement operator delete · aa7df52e
      As explained in the PR, there's no reason to call the nothrow delete,
      we can just use the normal one.
      
      	PR libstdc++/86954
      	* include/bits/stl_tempbuf.h (return_temporary_buffer): Use
      	non-placement delete.
      
      From-SVN: r263542
      Jonathan Wakely committed
    • PR tree-optimization/86650 - -Warray-bounds missing inlining context · 2b1aedf3
      gcc/ChangeLog:
      
      	PR tree-optimization/86650
      	* tree-vrp.c (vrp_prop::check_array_ref): Print an inform message.
      	(vrp_prop::check_mem_ref): Same.
      
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/86650
      	* gcc.dg/Warray-bounds-34.c: New test.
      
      From-SVN: r263541
      Martin Sebor committed
    • re PR fortran/86116 (Ambiguous generic interface not recognised) · 0ce0e6e8
      2018-08-14  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/86116
      	* interface.c (compare_type): Remove a CLASS/TYPE check.
      	(compare_type_characteristics): New function that behaves like the old
      	'compare_type'.
      	(gfc_check_dummy_characteristics, gfc_check_result_characteristics):
      	Call 'compare_type_characteristics' instead of 'compare_type'.
      
      2018-08-14  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/86116
      	* gfortran.dg/generic_34.f90: New test case.
      
      From-SVN: r263540
      Janus Weil committed
    • Simplify overflow checks in duration literals · b8b5398c
      	* include/std/chrono (__check_overflow): Simplify definition.
      	(_Checked_integral_constant): Remove.
      
      From-SVN: r263537
      Jonathan Wakely committed
    • PR libstdc++/86846 Alternative to pointer-width atomics · 26e13048
      Define a class using std::mutex for when std::atomic<memory_resource*>
      cannot be used to implement the default memory resource.
      
      When std::mutex constructor is not constexpr the constant_init trick
      won't work, so just define a global and use init_priority for it. The
      compiler warns about using reserved priority, so put the definition in a
      header file using #pragma GCC system_header to suppress the warning.
      
      	PR libstdc++/86846
      	* src/c++17/default_resource.h: New file, defining default_res.
      	* src/c++17/memory_resource.cc [ATOMIC_POINTER_LOCK_FREE != 2]
      	(atomic_mem_res): Define alternative for atomic<memory_resource*>
      	using a mutex instead of atomics.
      
      From-SVN: r263536
      Jonathan Wakely committed
    • PR libstdc++/85343 overload __throw_ios_failure to take errno · 484e936e
      [ios::failure] p2: "When throwing ios_base::failure exceptions,
      implementations should provide values of ec that identify the specific
      reason for the failure."
      
      This adds a new overload of __throw_ios_failure that can be passed
      errno, to store error_code(errno, system_category()) in the exception
      object.
      
      	PR libstdc++/85343
      	* acinclude.m4 (libtool_VERSION): Bump version.
      	* config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Add new symbol version.
      	Export new symbol.
      	* configure: Regenerate.
      	* doc/xml/manual/abi.xml: Document new versions.
      	* include/bits/fstream.tcc (basic_filebuf<C, T>::underflow)
      	(basic_filebuf<C, T>::xsgetn): Pass errno to __throw_ios_failure.
      	* include/bits/functexcept.h (__throw_ios_failure(const char*, int)):
      	Declare new overload.
      	* src/c++11/cxx11-ios_failure.cc (__ios_failure): Add new constructor
      	and static member function.
      	(__throw_ios_failure(const char*, int)): Define.
      	* src/c++98/ios_failure.cc [!_GLIBCXX_USE_DUAL_ABI]
      	(__throw_ios_failure(const char*, int)): Define.
      	* testsuite/util/testsuite_abi.cc: Update known and latest versions.
      
      From-SVN: r263535
      Jonathan Wakely committed
    • Rope iterators: don't retain pointers when copied · 3ffa55de
      Rope iterators sometimes contain pointers to an internal buffer
      inside the iterator itself.  When such an iterator is copied, the
      copy incorrectly retains pointers to the original.
      
      This patch takes the simple approach of not copying the cached
      information when the internal buffer is being used, instead
      requiring it to be recomputed when the copied iterator is
      dereferenced.  An alternative would be to adjust the pointers so
      they refer to the buffer in the copy.
      
      2018-08-14  Jeremy Sawicki  <jeremy-gcc@sawicki.us>
      
      	* include/ext/rope (_Rope_iterator_base(const _Rope_iterator_base&))
      	(_Rope_const_iterator::operator=(const _Rope_const_iterator&))
      	(_Rope_iterator::operator=(const _Rope_iterator&)): Ensure
      	copied/assigned rope iterators don't retain pointers to the iterator
      	they were copied/assigned from.
      	* testsuite/ext/rope/7.cc: New.
      
      From-SVN: r263534
      Jeremy Sawicki committed
    • pretty-print.c (eat_esc_sequence): Swap the foreground and background colors if... · 5d3083dd
      * gcc/pretty-print.c (eat_esc_sequence): Swap the foreground and background
      colors if the COMMON_LVB_REVERSE_VIDEO flag is set, and clear it thereafter,
      as it only works for DBCS.
      
      From-SVN: r263531
      Liu Hao committed
    • pretty-print.c (mingw_ansi_fputs): Do not call _close() on the handle returned… · e99c19aa
      pretty-print.c (mingw_ansi_fputs): Do not call _close() on the handle returned by _get_osf_handle().
      
      * gcc/pretty-print.c (mingw_ansi_fputs): Do not call _close() on the handle
      returned by _get_osf_handle().
      
      From-SVN: r263530
      Liu Hao committed
    • Daily bump. · 8e2f414c
      From-SVN: r263527
      GCC Administrator committed
  3. 13 Aug, 2018 15 commits
    • re PR c++/57891 (No diagnostic of narrowing conversion in non-type template argument) · ed4f2c00
      	PR c++/57891
      	* call.c (struct conversion): Add check_narrowing_const_only.
      	(build_converted_constant_expr): Set check_narrowing and
      	check_narrowing_const_only.  Give error if expr is error node.
      	(convert_like_real): Pass it to check_narrowing.
      	* cp-tree.h (check_narrowing): Add a default parameter.
      	* decl.c (compute_array_index_type): Use input_location instead of
      	location_of.
      	* pt.c (convert_nontype_argument): Return NULL_TREE if tf_error.
      	* typeck2.c (check_narrowing): Don't warn for instantiation-dependent
      	expressions.  Call maybe_constant_value instead of
      	fold_non_dependent_expr.  Don't mention { } in diagnostic.  Only check
      	narrowing for constants if CONST_ONLY.
      
      	* g++.dg/cpp0x/Wnarrowing6.C: New test.
      	* g++.dg/cpp0x/Wnarrowing7.C: New test.
      	* g++.dg/cpp0x/Wnarrowing8.C: New test.
      	* g++.dg/cpp0x/Wnarrowing9.C: New test.
      	* g++.dg/cpp0x/Wnarrowing10.C: New test.
      	* g++.dg/cpp0x/constexpr-47969.C: Adjust dg-error.
      	* g++.dg/cpp0x/constexpr-ex2.C: Likewise.
      	* g++.dg/cpp0x/constexpr-targ.C: Likewise.
      	* g++.dg/cpp0x/scoped_enum2.C: Likewise.
      	* g++.dg/ext/stmtexpr15.C: Likewise.
      	* g++.dg/gomp/pr47963.C: Likewise.
      	* g++.dg/init/new37.C: Likewise.
      	* g++.dg/init/new43.C: Likewise.
      	* g++.dg/other/fold1.C: Likewise.
      	* g++.dg/parse/array-size2.C: Likewise.
      	* g++.dg/template/dependent-name3.C: Likewise.
      	* g++.dg/cpp0x/constexpr-data2.C: Add dg-error.
      	* g++.dg/other/vrp1.C: Likewise.
      	* g++.dg/template/char1.C: Likewise.
      
      From-SVN: r263523
      Marek Polacek committed
    • Use getentropy() for seeding PRNG · d66d6d15
      The getentropy function, found on Linux, OpenBSD, and recently also
      FreeBSD, can be used to get random bytes to initialize the PRNG.  It
      is similar to the traditional way of reading from /dev/urandom, but
      being a system call rather than a special file, it doesn't suffer from
      problems like running out of file descriptors, or failure when running
      in a container where /dev/urandom may not be available.
      
      Regtested on x86_64-pc-linux-gnu, Ok for trunk?
      
      2018-08-13  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* configure.ac: Check for getentropy.
      	* intrinsics/random.c (getosrandom): Use getentropy if available.
      	* config.h.in: Regenerated.
      	* configure: Regenerated.
      
      From-SVN: r263522
      Janne Blomqvist committed
    • rs6000: Fix pr56605.c · 72217988
      After the combine 2-2 changes, this testcase does not have a ZERO_EXTEND
      in the intermediate code, but an AND instead.
      
      
      gcc/testsuite/
      	* gcc.target/powerpc/pr56605.c: The generated code can have an AND
      	instead of a ZERO_EXTEND.
      
      From-SVN: r263521
      Segher Boessenkool committed
    • rs6000.c (rs6000_gimple_fold_builtin): Add support for folding vec_perm. · d20d6e55
      [gcc]
      
      2018-07-06  Will Schmidt  <will_schmidt@vnet.ibm.com>
      
      	* gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support
      	for folding vec_perm.
      
      From-SVN: r263520
      Will Schmidt committed
    • rs6000.c (rs6000_gimple_fold_builtin): Add support for gimple-folding of… · 67bfa03a
      rs6000.c (rs6000_gimple_fold_builtin): Add support for gimple-folding of vec_pack() and vec_unpack() intrinsics.
      
      [gcc]
      
      2018-08-13 Will Schmidt  <will_schmidt@vnet.ibm.com>
      
      	* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin):
      	Add support for gimple-folding of vec_pack() and vec_unpack()
      	intrinsics.
      
      From-SVN: r263519
      Will Schmidt committed
    • PR libstdc++/45093 avoid warnings for _M_destroy_node · ca086dda
      	PR libstdc++/45093
      	* include/bits/stl_tree.h (_Rb_tree::_M_destroy_node(_Link_type)):
      	Combine definitions to avoid --detect-odr-violations warning.
      
      From-SVN: r263516
      Jonathan Wakely committed
    • Minor optimisations in operator new(size_t, align_val_t) · 2383ed02
      	* libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Use
      	__is_pow2 to check for valid alignment. Avoid branching when rounding
      	size to multiple of alignment.
      
      From-SVN: r263515
      Jonathan Wakely committed
    • Add <bit> and <version> to freestanding headers · 7997ede2
      	* include/Makefile.am: Install <bit> and <version> for freestanding.
      	* include/Makefile.in: Regenerate.
      	* testsuite/17_intro/freestanding.cc: Check for <bit> and <version>.
      
      From-SVN: r263514
      Jonathan Wakely committed
    • Revert "libstdc++-v3: Have aligned_alloc() on Newlib" · 9db03bee
      This reverts commit r263461 / 2e920cd849b3cf0a72df4f172e27676a3e70b73f
      because aligned_alloc is not defined for baremetal newlib targets, see
      https://gcc.gnu.org/ml/libstdc++/2018-08/msg00065.html
      
      Revert
      2018-08-10  Sebastian Huber  <sebastian.huber@embedded-brains.de>
      
      	PR target/85904
      	* configure.ac: Define HAVE_ALIGNED_ALLOC if building for
      	Newlib.
      	* configure: Regenerate.
      
      From-SVN: r263513
      Jonathan Wakely committed
    • rs6000.c (rs6000_builtin_valid_without_lhs): Add vec_xst variants to the list. · 3f7a77cd
      [gcc]
      
      2018-08-13 Will Schmidt <will_schmidt@vnet.ibm.com>
      
      	* config/rs6000/rs6000.c (rs6000_builtin_valid_without_lhs): Add
      	vec_xst variants to the list.
      	(rs6000_gimple_fold_builtin): Add support for folding unaligned
      	vector loads and stores.
      
      From-SVN: r263512
      Will Schmidt committed
    • PR tree-optimization/71625 - missing strlen optimization on different array initialization style · 23aa9f7c
      gcc/c/ChangeLog:
      
      	PR tree-optimization/71625
      	* c-parser.c (c_parser_declaration_or_fndef): Call
      	braced_list_to_string.
      
      gcc/c-family/ChangeLog:
      
      	PR tree-optimization/71625
      	* c-common.c (braced_list_to_string): New function.
      	* c-common.h (braced_list_to_string): Declare it.
      
      gcc/cp/ChangeLog:
      
      	PR tree-optimization/71625
      	* decl.c (check_initializer):  Call braced_list_to_string.
      	(eval_check_narrowing): New function.
      	* gcc/cp/typeck2.c (digest_init_r): Accept strings literals
      	as initilizers for all narrow character types.
      
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/71625
      
      	* g++.dg/init/string2.C: New test.
      	* g++.dg/init/string3.C: New test.
      	* g++.dg/init/string4.C: New test.
      	* gcc.dg/init-string-3.c: New test.
      	* gcc.dg/strlenopt-55.c: New test.
      	* gcc.dg/strlenopt-56.c: New test.
      
      From-SVN: r263511
      Martin Sebor committed
    • P0806R2 - Deprecate implicit capture of this via [=] · e6a1e5fe
      	P0806R2 - Deprecate implicit capture of this via [=]
      	* lambda.c (add_default_capture): Formatting fixes.  Warn about
      	deprecated implicit capture of this via [=].
      
      	* g++.dg/cpp2a/lambda-this1.C: New test.
      	* g++.dg/cpp2a/lambda-this2.C: New test.
      	* g++.dg/cpp2a/lambda-this3.C: New test.
      
      From-SVN: r263508
      Marek Polacek committed
    • re PR c++/86915 (Segmentation fault for an array of auto in template parameter) · 27a98312
      	PR c++/86915
      	* decl.c (create_array_type_for_decl): Handle null name.
      
      	* g++.dg/diagnostic/auto1.C: New test.
      
      From-SVN: r263507
      Marek Polacek committed
    • config.gcc (rs6000-ibm-aix4.x): Delete. · 116c7f32
              * config.gcc (rs6000-ibm-aix4.x): Delete.
              (rs6000-ibm-aix5.1): Delete.
              (rs6000-ibm-aix5.2): Delete.
              (rs6000-ibm-aix5.3): Delete.
              * config/rs6000/aix43.h: Delete.
              * config/rs6000/aix51.h: Delete.
              * config/rs6000/aix52.h: Delete.
              * config/rs6000/t-aix43: Delete.
      
      From-SVN: r263506
      David Edelsohn committed
    • [nvptx] Use CUDA driver API to select default runtime launch geometry · bd9b3d3d
      The CUDA driver API starting version 6.5 offers a set of runtime functions to
      calculate several occupancy-related measures, as a replacement for the occupancy
      calculator spreadsheet.
      
      This patch adds a heuristic for default runtime launch geometry, based on the
      new runtime function cuOccupancyMaxPotentialBlockSize.
      
      Build on x86_64 with nvptx accelerator and ran libgomp testsuite.
      
      2018-08-13  Cesar Philippidis  <cesar@codesourcery.com>
      	    Tom de Vries  <tdevries@suse.de>
      
      	PR target/85590
      	* plugin/cuda/cuda.h (CUoccupancyB2DSize): New typedef.
      	(cuOccupancyMaxPotentialBlockSize): Declare.
      	* plugin/cuda-lib.def (cuOccupancyMaxPotentialBlockSize): New
      	CUDA_ONE_CALL_MAYBE_NULL.
      	* plugin/plugin-nvptx.c (CUDA_VERSION < 6050): Define
      	CUoccupancyB2DSize and declare
      	cuOccupancyMaxPotentialBlockSize.
      	(nvptx_exec): Use cuOccupancyMaxPotentialBlockSize to set the
      	default num_gangs and num_workers when the driver supports it.
      
      Co-Authored-By: Tom de Vries <tdevries@suse.de>
      
      From-SVN: r263505
      Cesar Philippidis committed