1. 03 May, 2018 13 commits
    • Update .po files. · 4e0c5f94
      	* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po,
      	ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po,
      	zh_TW.po: Update.
      
      From-SVN: r259897
      Joseph Myers committed
    • Add tests for std::remove_cvref · adba76a3
      	* testsuite/20_util/remove_cvref/requirements/alias_decl.cc: New.
      	* testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
      	New.
      	* testsuite/20_util/remove_cvref/value.cc: New.
      	* testsuite/20_util/remove_cvref/value_ext.cc: New.
      
      From-SVN: r259896
      Jonathan Wakely committed
    • PR libstdc++/84087 add default arguments to basic_string members (LWG 2268) · 852ee53c
      This change was a DR against C++11 and so should have been implemented
      years ago.
      
      	PR libstdc++/84087 LWG DR 2268 basic_string default arguments
      	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1]
      	(append(const basic_string&, size_type, size_type)
      	(assign(const basic_string&, size_type, size_type)
      	(insert(size_type, const basic_string&, size_type, size_type)
      	(replace(size_type,size_type,const basic_string&,size_type,size_type)
      	(compare(size_type,size_type,constbasic_string&,size_type,size_type)):
      	Add default arguments (LWG 2268).
      	[_GLIBCXX_USE_CXX11_ABI=0]
      	(append(const basic_string&, size_type, size_type)
      	(assign(const basic_string&, size_type, size_type)
      	(insert(size_type, const basic_string&, size_type, size_type)
      	(replace(size_type,size_type,const basic_string&,size_type,size_type)
      	(compare(size_type,size_type,constbasic_string&,size_type,size_type)):
      	Likewise.
      	* testsuite/21_strings/basic_string/dr2268.cc: New test.
      
      From-SVN: r259895
      Jonathan Wakely committed
    • PR libstdc++/84535 constrain std::thread constructor · d49b3426
      The standard requires that the std::thread constructor is constrained so
      it can't be called with a first argument of type std::thread. The
      current implementation only meets that requirement if the constructor is
      called with one argument, by using deleted overloads. This uses an
      enable_if constraint to enforce the requirement for any number of
      arguments.
      
      Also add a static assertion to give a more readable error for invalid
      arguments that cannot be invoked. Also simplify _Invoker to reduce the
      error cascade for ill-formed instantiations with non-invocable
      arguments.
      
      	PR libstdc++/84535
      	* include/std/thread (thread::__not_same): New SFINAE helper.
      	(thread::thread(_Callable&&, _Args&&...)): Add SFINAE constraint that
      	first argument is not a std::thread. Add static assertion to check
      	INVOKE expression is valid.
      	(thread::thread(thread&), thread::thread(const thread&&)): Remove.
      	(thread::_Invoke::_M_invoke, thread::_Invoke::operator()): Use
      	__invoke_result for return types and remove exception specifications.
      	* testsuite/30_threads/thread/cons/84535.cc: New.
      
      From-SVN: r259893
      Jonathan Wakely committed
    • [testsuite] Add scan-offload-tree-dump · 63f12215
      2018-05-03  Tom de Vries  <tom@codesourcery.com>
      
      	PR testsuite/85106
      	* lib/scanoffloadtree.exp: New file.
      
      	* testsuite/lib/libgomp-dg.exp (libgomp-dg-test): Add save-temps to
      	extra_tool_flags if it contains an -foffload=-fdump-* flag.
      	* testsuite/lib/libgomp.exp: Include scanoffloadtree.exp.
      	* testsuite/libgomp.oacc-c/vec.c: Use scan-offload-tree-dump.
      
      	* doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization
      	dump files): Add offload-tree.
      
      From-SVN: r259892
      Tom de Vries committed
    • re PR tree-optimization/85615 (ICE at -O2 and above on valid code on… · a378f85c
      re PR tree-optimization/85615 (ICE at -O2 and above on valid code on x86_64-linux-gnu: in dfs_enumerate_from, at cfganal.c:1197)
      
      2018-05-03  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/85615
      	* tree-ssa-threadupdate.c (thread_block_1): Only allow exits
      	to loops not nested in BBs loop father to avoid creating multi-entry
      	loops.
      
      	* gcc.dg/torture/pr85615.c: New testcase.
      
      From-SVN: r259891
      Richard Biener committed
    • [tree-complex.c] PR tree-optimization/70291: Inline floating-point complex… · b7244ccb
      [tree-complex.c] PR tree-optimization/70291: Inline floating-point complex multiplication more aggressively
      
      We can improve the performance of complex floating-point multiplications by inlining the expansion a bit more aggressively.
      We can inline complex x = a * b as:
      x = (ar*br - ai*bi) + i(ar*bi + br*ai);
      if (isunordered (__real__ x, __imag__ x))
        x = __muldc3 (a, b); //Or __mulsc3 for single-precision
      
      That way the common case where no NaNs are produced we can avoid the libgcc call and fall back to the
      NaN handling stuff in libgcc if either components of the expansion are NaN.
      
      The implementation is done in expand_complex_multiplication in tree-complex.c and the above expansion
      will be done when optimising for -O1 and greater and when not optimising for size.
      At -O0 and -Os the single call to libgcc will be emitted.
      
      For the code:
      __complex double
      foo (__complex double a, __complex double b)
      {
        return a * b;
      }
      
      We will now emit at -O2 for aarch64:
      foo:
              fmul    d16, d1, d3
              fmul    d6, d1, d2
              fnmsub  d5, d0, d2, d16
              fmadd   d4, d0, d3, d6
              fcmp    d5, d4
              bvs     .L8
              fmov    d1, d4
              fmov    d0, d5
              ret
      .L8:
              stp     x29, x30, [sp, -16]!
              mov     x29, sp
              bl      __muldc3
              ldp     x29, x30, [sp], 16
              ret
      
      Instead of just a branch to __muldc3.
      
      	PR tree-optimization/70291
      	* tree-complex.c (expand_complex_libcall): Add type, inplace_p
      	arguments.  Change return type to tree.  Emit libcall as a new
      	statement rather than replacing existing one when inplace_p is true.
      	(expand_complex_multiplication_components): New function.
      	(expand_complex_multiplication): Expand floating-point complex
      	multiplication using the above.
      	(expand_complex_division): Rename inner_type parameter to type.
      	Update expand_complex_libcall call-site.
      	(expand_complex_operations_1): Update expand_complex_multiplication
      	and expand_complex_division call-sites.
      
      	* gcc.dg/complex-6.c: New test.
      	* gcc.dg/complex-7.c: Likewise.
      
      From-SVN: r259889
      Kyrylo Tkachov committed
    • Use std::invoke_result in std::async instead of std::result_of · 9e3ef542
      	* include/std/future (__async_result_of): Use __invoke_result instead
      	of result_of.
      
      From-SVN: r259888
      Jonathan Wakely committed
    • Define std::remove_cvref and std::remove_cvref_t for C++2a · 6791489e
      Also define __remove_cvref_t for internal use before C++2a.
      
      	* include/std/any (any_cast): Use __remove_cvref_t.
      	* include/std/tuple (__make_tuple): Likewise.
      	* include/std/type_traits (__remove_cvref_t): Define.
      	(__result_of_memobj, __result_of_memfun): Use __remove_cvref_t.
      	[__cplusplus > 201703L] (remove_cvref, remove_cvref_t): Define.
      	* include/std/variant (__erased_hash): Use __remove_cvref_t.
      
      From-SVN: r259887
      Jonathan Wakely committed
    • re PR other/85622 (gcc-8.1.0/NEWS says it's not released yet) · 31aac344
      	PR other/85622
      	* gcc_release: For -f, verify contrib/gennews has the major version
      	pages listed and both index.html and changes.html have been updated
      	for the new release.
      
      From-SVN: r259881
      Jakub Jelinek committed
    • re PR fortran/85579 (accepts invalid fortran test case gfortran.dg/pr51434.f90) · c2901468
      2018-05-03  Richard Biener  <rguenther@suse.de>
      
      	PR testsuite/85579
      	* fortran.dg/pr51434.f90: Truncate transfer argument.
      
      From-SVN: r259880
      Richard Biener committed
    • cmd/go: run tests that require package build IDs · 5cf05282
          
          These tests used to be disabled in the gofrontend since the go tool
          didn't support build IDs for the gofrontend. It does now, so enable
          the tests again.
          
          Reviewed-on: https://go-review.googlesource.com/111098
      
      From-SVN: r259875
      Ian Lance Taylor committed
    • Daily bump. · 47802519
      From-SVN: r259874
      GCC Administrator committed
  2. 02 May, 2018 27 commits
    • libgo: add type/const references to sysinfo.c · fbf2f198
          
          This patch adds explicit references to various types and constants
          defined by the header files included by sysinfo.c (used to drive the
          generation of gen-sysinfo.go as part of the libgo build via the GCC
          "-fdump-go-spec" option).
          
          The intent is to enable clients to gather the same info generated by
          "-fdump-go-spec" by instead reading the generated DWARF from a
          sysinfo.o object file compiled with "-g". Some compilers (notably
          clang) try to omit DWARF records for a given type unless there is an
          explicit use of it in the translation unit; the additional references
          are to insure that everything we want to see in the DWARF shows up.
          
          Reviewed-on: https://go-review.googlesource.com/99063
      
      From-SVN: r259868
      Ian Lance Taylor committed
    • runtime: remove unused stack.go · e1aeb9bc
          
          We're never going to use stack.go for gccgo.  Although a build tag
          keeps it from being built, even having it around can be confusing.
          Remove it.
          
          Reviewed-on: https://go-review.googlesource.com/40774
      
      From-SVN: r259865
      Ian Lance Taylor committed
    • libgo: refactor code to enumerate stdlib packages · cec9701b
          
          Move the list of libgo, gotool, and check-target packages into
          separate files, then read the file contents as part of the build
          process on the fly. This is intended to enable other build tooling to
          share the canonical list of target packages (avoid duplication).
          
          Reviewed-on: https://go-review.googlesource.com/89515
      
          libgo: revise rules for runtime.inc generation
          
          Refactor code for generating runtime.inc: extract out the relevant
          commands and place them in a separate shell script ("mkruntimeinc.sh").
          Update rules to avoid generating macros whose names begin with "$",
          such as "#define $sinkconst0 0".
          
          Reviewed-on: https://go-review.googlesource.com/85955
      
      From-SVN: r259863
      Ian Lance Taylor committed
    • re PR target/85582 (wrong code at -O1 and above on x86_64-linux-gnu in 32-bit mode) · 31aa23df
      	PR target/85582
      	* config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
      	*ashl<dwi>3_doubleword_mask_1, *<shift_insn><dwi>3_doubleword_mask,
      	*<shift_insn><dwi>3_doubleword_mask_1): In condition require that
      	the highest significant bit of the shift count mask is clear.  In
      	check whether and[sq]i3 is needed verify that all significant bits
      	of the shift count other than the highest are set.
      
      	* gcc.c-torture/execute/pr85582-3.c: New test.
      
      From-SVN: r259862
      Jakub Jelinek committed
    • libgo: break dependence on libgcc unwind-pe.h · 019808c9
          
          The C portion of the Go runtime includes the header "unwind-pe.h" from
          libgcc, which contains some constants and a few small routines for
          decoding pointer values within unwind info. This patch gets rid of
          that include and instead adds a re-implementation of that
          functionality in the single file that uses it. The intent is to allow
          the C runtime portion of libgo to be built without a companion GCC
          installation.
          
          Reviewed-on: https://go-review.googlesource.com/90235
      
      From-SVN: r259861
      Ian Lance Taylor committed
    • deque.tcc (deque<>::_M_assign_aux): Cast to void to ensure overloaded comma not used. · 27db01d8
      2018-05-02  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/bits/deque.tcc (deque<>::_M_assign_aux): Cast to void to
      	ensure overloaded comma not used.
      	* include/bits/list.tcc (list<>::_M_assign_dispatch): Likewise.
      	* include/bits/vector.tcc (vector<>::_M_assign_aux): Likewise.
      	* include/bits/stl_bvector.h (vector<bool>::_M_assign_aux): Likewise.
      	* testsuite/23_containers/deque/modifiers/assign/1.cc: New.
      	* testsuite/23_containers/list/modifiers/assign/1.cc: New.
      	* testsuite/23_containers/vector/bool/modifiers/assign/1.cc: New.
      	* testsuite/23_containers/vector/modifiers/assign/1.cc: New.
      
      From-SVN: r259856
      François Dumont committed
    • PR libstdc++/68197 fail on negative iword/pword indices · 85d0fad4
      The suggested resolution of LWG 3083 is to make invalid indices
      undefined, but we can fairly easily check for them and treat them as
      errors in the same way as allocation failure. This avoids a segfault or
      worse, setting an error flag on the stream instead.
      
      	PR libstdc++/68197
      	* include/bits/ios_base.h (ios_base::iword, ios_base::pword): Cast
      	indices to unsigned.
      	* src/c++11/ios.cc (ios_base::_M_grow_words): Treat negative indices
      	as failure. Refactor error handling.
      	* testsuite/27_io/ios_base/storage/68197.cc: New.
      
      From-SVN: r259854
      Jonathan Wakely committed
    • re PR c++/68374 (G++ -Wshadow doesn't warn about static member shadowing) · 006fbbe9
      /cp
      2018-05-02  Paolo Carlini  <paolo.carlini@oracle.com>
      	    Jason Merrill  <jason@redhat.com>
      
      	PR c++/68374
      	* name-lookup.c (check_local_shadow): Don't handle static old
      	declarations in the block handling locals shadowing locals.
      
      /testsuite
      2018-05-02  Paolo Carlini  <paolo.carlini@oracle.com>
      	    Jason Merrill  <jason@redhat.com>
      
      	PR c++/68374
      	* g++.dg/warn/Wshadow-13.C: New.
      	* g++.dg/warn/Wshadow-14.C: Likewise.
      
      Co-Authored-By: Jason Merrill <jason@redhat.com>
      
      From-SVN: r259853
      Paolo Carlini committed
    • [openacc] Move GOMP_OPENACC_DIM parsing out of nvptx plugin · ec00d3fa
      2018-05-02  Tom de Vries  <tom@codesourcery.com>
      
      	PR libgomp/85411
      	* plugin/plugin-nvptx.c (nvptx_exec): Move parsing of
      	GOMP_OPENACC_DIM ...
      	* env.c (parse_gomp_openacc_dim): ... here.  New function.
      	(initialize_env): Call parse_gomp_openacc_dim.
      	(goacc_default_dims): Define.
      	* libgomp.h (goacc_default_dims): Declare.
      	* oacc-plugin.c (GOMP_PLUGIN_acc_default_dim): New function.
      	* oacc-plugin.h (GOMP_PLUGIN_acc_default_dim): Declare.
      	* libgomp.map: New version "GOMP_PLUGIN_1.2". Add
      	GOMP_PLUGIN_acc_default_dim.
      	* testsuite/libgomp.oacc-c-c++-common/loop-default-runtime.c: New test.
      	* testsuite/libgomp.oacc-c-c++-common/loop-default.h: New test.
      
      From-SVN: r259852
      Tom de Vries committed
    • [libgomp, testsuite] Move tests to libgomp.c-c++-common · 92243e7c
      2018-05-02  Tom de Vries  <tom@codesourcery.com>
      
      	PR testsuite/83791
      	* testsuite/libgomp.c++/udr-9.C: Update.
      	* testsuite/libgomp.c++/atomic-16.C: Remove.
      	* testsuite/libgomp.c++/cancel-taskgroup-2.C: Remove.
      	* testsuite/libgomp.c++/loop-13.C: Remove.
      	* testsuite/libgomp.c++/loop-14.C: Remove.
      	* testsuite/libgomp.c++/loop-15.C: Remove.
      	* testsuite/libgomp.c++/monotonic-1.C: Remove.
      	* testsuite/libgomp.c++/monotonic-2.C: Remove.
      	* testsuite/libgomp.c++/nonmonotonic-1.C: Remove.
      	* testsuite/libgomp.c++/nonmonotonic-2.C: Remove.
      	* testsuite/libgomp.c++/ordered-1.C: Remove.
      	* testsuite/libgomp.c++/pr45784.C: Remove.
      	* testsuite/libgomp.c++/pr64824.C: Remove.
      	* testsuite/libgomp.c++/pr64868.C: Remove.
      	* testsuite/libgomp.c++/pr66199-1.C: Remove.
      	* testsuite/libgomp.c++/pr66199-2.C: Remove.
      	* testsuite/libgomp.c++/pr66199-3.C: Remove.
      	* testsuite/libgomp.c++/pr66199-4.C: Remove.
      	* testsuite/libgomp.c++/pr66199-5.C: Remove.
      	* testsuite/libgomp.c++/pr66199-6.C: Remove.
      	* testsuite/libgomp.c++/pr66199-7.C: Remove.
      	* testsuite/libgomp.c++/pr66199-8.C: Remove.
      	* testsuite/libgomp.c++/pr66199-9.C: Remove.
      	* testsuite/libgomp.c++/pr69389.C: Remove.
      	* testsuite/libgomp.c++/simd10.C: Remove.
      	* testsuite/libgomp.c++/simd11.C: Remove.
      	* testsuite/libgomp.c++/simd12.C: Remove.
      	* testsuite/libgomp.c++/simd13.C: Remove.
      	* testsuite/libgomp.c++/target-1.C: Remove.
      	* testsuite/libgomp.c++/target-3.C: Remove.
      	* testsuite/libgomp.c++/target-4.C: Remove.
      	* testsuite/libgomp.c++/target-5.C: Remove.
      	* testsuite/libgomp.c++/taskgroup-1.C: Remove.
      	* testsuite/libgomp.c++/taskloop-1.C: Remove.
      	* testsuite/libgomp.c++/taskloop-2.C: Remove.
      	* testsuite/libgomp.c++/taskloop-3.C: Remove.
      	* testsuite/libgomp.c++/taskloop-4.C: Remove.
      	* testsuite/libgomp.c++/udr-9.C: Remove.
      	* testsuite/libgomp.c++/for-10.C: Remove.
      	* testsuite/libgomp.c++/for-11.C: Remove.
      	* testsuite/libgomp.c++/for-12.C: Remove.
      	* testsuite/libgomp.c++/for-13.C: Remove.
      	* testsuite/libgomp.c++/for-14.C: Remove.
      	* testsuite/libgomp.c++/for-9.C: Remove.
      	* testsuite/libgomp.c/atomic-18.c: Move ...
      	* testsuite/libgomp.c-c++-common/atomic-18.c: ... here.
      	* testsuite/libgomp.c/cancel-taskgroup-2.c: Move ...
      	* testsuite/libgomp.c-c++-common/cancel-taskgroup-2.c: here.
      	* testsuite/libgomp.c/loop-13.c: Move ...
      	* testsuite/libgomp.c-c++-common/loop-13.c: ... here.
      	* testsuite/libgomp.c/loop-14.c: Move ...
      	* testsuite/libgomp.c-c++-common/loop-14.c: ... here.
      	* testsuite/libgomp.c/loop-15.c: Remove.
      	* testsuite/libgomp.c-c++-common/loop-15.c: New test.
      	* testsuite/libgomp.c/monotonic-1.c: Move ...
      	* testsuite/libgomp.c-c++-common/monotonic-1.c: ... here.
      	* testsuite/libgomp.c/monotonic-2.c: Move ...
      	* testsuite/libgomp.c-c++-common/monotonic-2.c: ... here.
      	* testsuite/libgomp.c/nonmonotonic-1.c: Move ...
      	* testsuite/libgomp.c-c++-common/nonmonotonic-1.c: ... here.
      	* testsuite/libgomp.c/nonmonotonic-2.c: Move ...
      	* testsuite/libgomp.c-c++-common/nonmonotonic-2.c: ... here.
      	* testsuite/libgomp.c/ordered-4.c: Move ...
      	* testsuite/libgomp.c-c++-common/ordered-4.c: ... here.
      	* testsuite/libgomp.c/pr45784.c: Move ...
      	* testsuite/libgomp.c-c++-common/pr45784.c: ... here.
      	* testsuite/libgomp.c/pr64824.c: Move ...
      	* testsuite/libgomp.c-c++-common/pr64824.c: ... here.
      	* testsuite/libgomp.c/pr64868.c: Move ...
      	* testsuite/libgomp.c-c++-common/pr64868.c: ... here.
      	* testsuite/libgomp.c/pr66199-1.c: Move ...
      	* testsuite/libgomp.c-c++-common/pr66199-1.c: ... here.
      	* testsuite/libgomp.c/pr66199-2.c: Move ...
      	* testsuite/libgomp.c-c++-common/pr66199-2.c: ... here.
      	* testsuite/libgomp.c/pr66199-3.c: Move ...
      	* testsuite/libgomp.c-c++-common/pr66199-3.c: ... here.
      	* testsuite/libgomp.c/pr66199-4.c: Move ...
      	* testsuite/libgomp.c-c++-common/pr66199-4.c: ... here.
      	* testsuite/libgomp.c/pr66199-5.c: Move ...
      	* testsuite/libgomp.c-c++-common/pr66199-5.c: ... here.
      	* testsuite/libgomp.c/pr66199-6.c: Move ...
      	* testsuite/libgomp.c-c++-common/pr66199-6.c: ... here.
      	* testsuite/libgomp.c/pr66199-7.c: Move ...
      	* testsuite/libgomp.c-c++-common/pr66199-7.c: ... here.
      	* testsuite/libgomp.c/pr66199-8.c: Move ...
      	* testsuite/libgomp.c-c++-common/pr66199-8.c: ... here.
      	* testsuite/libgomp.c/pr66199-9.c: Move ...
      	* testsuite/libgomp.c-c++-common/pr66199-9.c: ... here.
      	* testsuite/libgomp.c/pr69389.c: Move ...
      	* testsuite/libgomp.c-c++-common/pr69389.c: ... here.
      	* testsuite/libgomp.c/simd-14.c: Move ...
      	* testsuite/libgomp.c-c++-common/simd-14.c: ... here.
      	* testsuite/libgomp.c/simd-15.c: Move ...
      	* testsuite/libgomp.c-c++-common/simd-15.c: ... here.
      	* testsuite/libgomp.c/simd-16.c: Move ...
      	* testsuite/libgomp.c-c++-common/simd-16.c: ... here.
      	* testsuite/libgomp.c/simd-17.c: Move ...
      	* testsuite/libgomp.c-c++-common/simd-17.c: ... here.
      	* testsuite/libgomp.c/target-1.c: Move ...
      	* testsuite/libgomp.c-c++-common/target-1.c: ... here.
      	* testsuite/libgomp.c/target-10.c: Move ...
      	* testsuite/libgomp.c-c++-common/target-10.c: ... here.
      	* testsuite/libgomp.c/target-13.c: Move ...
      	* testsuite/libgomp.c-c++-common/target-13.c: ... here.
      	* testsuite/libgomp.c/target-2.c: Move ...
      	* testsuite/libgomp.c-c++-common/target-2.c: ... here.
      	* testsuite/libgomp.c/taskgroup-1.c: Move ...
      	* testsuite/libgomp.c-c++-common/taskgroup-1.c: ... here.
      	* testsuite/libgomp.c/taskloop-1.c: Move ...
      	* testsuite/libgomp.c-c++-common/taskloop-1.c: ... here.
      	* testsuite/libgomp.c/taskloop-2.c: Move ...
      	* testsuite/libgomp.c-c++-common/taskloop-2.c: ... here.
      	* testsuite/libgomp.c/taskloop-3.c: Move ...
      	* testsuite/libgomp.c-c++-common/taskloop-3.c: ... here.
      	* testsuite/libgomp.c/taskloop-4.c: Move ...
      	* testsuite/libgomp.c-c++-common/taskloop-4.c: ... here.
      	* testsuite/libgomp.c/udr-1.c: Move ...
      	* testsuite/libgomp.c-c++-common/udr-1.c: ... here.
      	* testsuite/libgomp.c/for-1.c: Move ...
      	* testsuite/libgomp.c-c++-common/for-1.c: ... here.
      	* testsuite/libgomp.c/for-1.h: Move ...
      	* testsuite/libgomp.c-c++-common/for-1.h: ... here.
      	* testsuite/libgomp.c/for-2.c: Move ...
      	* testsuite/libgomp.c-c++-common/for-2.c: ... here.
      	* testsuite/libgomp.c/for-2.h: Move ...
      	* testsuite/libgomp.c-c++-common/for-2.h: ... here.
      	* testsuite/libgomp.c/for-3.c: Move ...
      	* testsuite/libgomp.c-c++-common/for-3.c: ... here.
      	* testsuite/libgomp.c/for-4.c: Move ...
      	* testsuite/libgomp.c-c++-common/for-4.c: ... here.
      	* testsuite/libgomp.c/for-5.c: Move ...
      	* testsuite/libgomp.c-c++-common/for-5.c: ... here.
      	* testsuite/libgomp.c/for-6.c: Move ...
      	* testsuite/libgomp.c-c++-common/for-6.c: ... here.
      
      From-SVN: r259851
      Tom de Vries committed
    • [openacc] Add __builtin_goacc_parlevel_{id,size} · 1f62d637
      2018-05-02  Tom de Vries  <tom@codesourcery.com>
      
      	PR libgomp/82428
      	* builtins.def (DEF_GOACC_BUILTIN_ONLY): Define.
      	* omp-builtins.def (BUILT_IN_GOACC_PARLEVEL_ID)
      	(BUILT_IN_GOACC_PARLEVEL_SIZE): New builtin.
      	* builtins.c (expand_builtin_goacc_parlevel_id_size): New function.
      	(expand_builtin): Call expand_builtin_goacc_parlevel_id_size.
      	* doc/extend.texi (Other Builtins): Add __builtin_goacc_parlevel_id and
      	__builtin_goacc_parlevel_size.
      
      	* f95-lang.c (DEF_GOACC_BUILTIN_ONLY): Define.
      
      	* c-c++-common/goacc/builtin-goacc-parlevel-id-size-2.c: New test.
      	* c-c++-common/goacc/builtin-goacc-parlevel-id-size.c: New test.
      
      	* testsuite/libgomp.oacc-c-c++-common/gang-static-2.c: Use
      	__builtin_goacc_parlevel_{id,size}.
      	* testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Same.
      	* testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Same.
      	* testsuite/libgomp.oacc-c-c++-common/loop-g-1.c: Same.
      	* testsuite/libgomp.oacc-c-c++-common/loop-g-2.c: Same.
      	* testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: Same.
      	* testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Same.
      	* testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Same.
      	* testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Same.
      	* testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: Same.
      	* testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Same.
      	* testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Same.
      	* testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Same.
      	* testsuite/libgomp.oacc-c-c++-common/loop-v-1.c: Same.
      	* testsuite/libgomp.oacc-c-c++-common/loop-w-1.c: Same.
      	* testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: Same.
      	* testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Same.
      	* testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: Same.
      	* testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: Same.
      	* testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: Same.
      	* testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: Same.
      	* testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: Same.
      	* testsuite/libgomp.oacc-c-c++-common/routine-wv-2.c: Same.
      	* testsuite/libgomp.oacc-c-c++-common/tile-1.c: Same.
      
      From-SVN: r259850
      Tom de Vries committed
    • re PR c/30552 (gcc crashes when compiling examples with GNU statement… · f7584c81
      re PR c/30552 (gcc crashes when compiling examples with GNU statement expressions in VLAs (also involved: nested functions declared K&R-style))
      
      	PR c/30552
      	* c-decl.c (old_style_parameter_scope): New function.
      	* c-parser.c (c_parser_postfix_expression): Check for statement
      	expressions in old-style function parameter list declarations.
      	* c-parser.h (old_style_parameter_scope): New extern declaration.
      
      	PR c/30552
      	* gcc.dg/noncompile/pr30552-1.c: New test.
      	* gcc.dg/noncompile/pr30552-2.c: New test.
      	* gcc.dg/noncompile/pr30552-3.c: New test.
      	* gcc.dg/noncompile/pr30552-4.c: New test.
      
      From-SVN: r259849
      David Pagan committed
    • * es.po: Update. · 621af561
      From-SVN: r259845
      Joseph Myers committed
    • PR libstdc++/83860 avoid dangling references in valarray closure types · 1b749ae9
      Store nested closures by value not by reference, to prevent holding
      invalid references to temporaries that have been destroyed. This
      changes the layout of the closure types, so change their linkage names,
      but moving them to a different namespace.
      
      	PR libstdc++/57997
      	PR libstdc++/83860
      	* include/bits/gslice_array.h (gslice_array): Define default
      	constructor as deleted, as per C++11 standard.
      	* include/bits/mask_array.h (mask_array): Likewise.
      	* include/bits/slice_array.h (slice_array): Likewise.
      	* include/bits/valarray_after.h (_GBase, _GClos, _IBase, _IClos): Move
      	to namespace __detail.
      	(_GBase::_M_expr, _IBase::_M_expr): Use _ValArrayRef for type of data
      	members.
      	* include/bits/valarray_before.h (_ValArrayRef): New helper for type
      	of data members in closure objects.
      	(_FunBase, _ValFunClos, _RefFunClos, _UnBase, _UnClos, _BinBase)
      	(_BinBase2, _BinBase1, _BinClos, _SBase, _SClos): Move to namespace
      	__detail.
      	(_FunBase::_M_expr, _UnBase::_M_expr, _BinBase::_M_expr1)
      	(_BinBase::_M_expr2, _BinBase2::_M_expr1, _BinBase1::_M_expr2)
      	(_SBase::_M_expr): Use _ValArrayRef for type of data members.
      	* include/std/valarray (_UnClos, _BinClos, _SClos, _GClos, _IClos)
      	(_ValFunClos, _RefFunClos): Move to namespace __detail and add
      	using-declarations to namespace std.
      	* testsuite/26_numerics/valarray/83860.cc: New.
      
      From-SVN: r259844
      Jonathan Wakely committed
    • Remove duplicate function call in test · 59bcf900
      	* testsuite/backward/strstream_move.cc: Remove duplicate function
      	call.
      
      From-SVN: r259843
      Jonathan Wakely committed
    • PR libstdc++/69608 Move semantics for strstreambuf · c6d42579
      In libstdc++ the deprecated char* streams are non-copyable, as was
      required pre-C++11.
      
      Since C++11 the standard implies that those streams should be copyable,
      but doesn't specify the effects of copying them. This is surely a
      defect, so for consistency with other implementations this change makes
      them movable, but not copyable.
      
      	PR libstdc++/69608
      	* include/backward/strstream (strstreambuf): Define move constructor
      	and move assignment operator.
      	(istrstream, ostrstream, strstream): Likewise.
      	* testsuite/backward/strstream_move.cc: New.
      
      From-SVN: r259842
      Jonathan Wakely committed
    • re PR tree-optimization/85597 (internal compiler error: in… · d6476f90
      re PR tree-optimization/85597 (internal compiler error: in compute_live_loop_exits, at tree-ssa-loop-manip.c:229)
      
      2018-05-02  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/85597
      	* tree-vect-stmts.c (vectorizable_operation): For ternary SLP
      	do not use split vect_get_vec_defs call but call vect_get_slp_defs
      	directly.
      
      	* gcc.dg/vect/pr85597.c: New testcase.
      
      From-SVN: r259840
      Richard Biener committed
    • [testsuite] Add scan-ltrans-tree-dump · 9220b511
      2018-05-02  Tom de Vries  <tom@codesourcery.com>
      
      	PR testsuite/85106
      	* gcc.dg/ipa/ipa-icf-38.c: Use scan-ltrans-tree-dump.
      	* lib/scanltranstree.exp: New file.
      	* lib/target-supports.exp (scan-ltrans-tree-dump_required_options)
      	(scan-ltrans-tree-dump-times_required_options)
      	(scan-ltrans-tree-dump-not_required_options)
      	(scan-ltrans-tree-dump-dem_required_options)
      	(scan-ltrans-tree-dump-dem-not_required_options): New proc.
      	* lib/gcc-dg.exp: Include scanltranstree.exp.
      
      	* testsuite/lib/libatomic.exp: Include scanltranstree.exp.
      
      	* testsuite/lib/libgomp.exp: Include scanltranstree.exp.
      
      	* testsuite/lib/libitm.exp: Include scanltranstree.exp.
      
      	* testsuite/lib/libvtv.exp: Include scanltranstree.exp.
      
      	* doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization
      	dump files): Add ltrans-tree.
      
      From-SVN: r259838
      Tom de Vries committed
    • [testsuite] Add scan-wpa-ipa-dump · 6c3c13c1
      2018-05-02  Tom de Vries  <tom@codesourcery.com>
      
      	PR testsuite/85106
      	* gcc.dg/ipa/ipa-icf-38.c: New test.
      	* gcc.dg/ipa/ipa-icf-38a.c: New test.
      	* lib/scandump.exp (dump-base): New proc.
      	(scan-dump, scan-dump-times, scan-dump-not, scan-dump-dem)
      	(scan-dump-dem-not): Add and handle parameter for suffix of the dump
      	base.
      	* lib/scanipa.exp: Add "" argument to scan-dump calls.
      	* lib/scanlang.exp: Same.
      	* lib/scanrtl.exp: Same.
      	* lib/scantree.exp: Same.
      	* lib/scanwpaipa.exp: New file.
      	* lib/gcc-dg.exp: Include scanwpaipa.exp.
      
      	* testsuite/lib/libatomic.exp: Include scanwpaipa.exp.
      
      	* testsuite/lib/libgomp.exp: Include scanwpaipa.exp.
      
      	* testsuite/lib/libitm.exp: Include scanwpaipa.exp.
      
      	* testsuite/lib/libvtv.exp: Include scanwpaipa.exp.
      
      	* doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization
      	dump files): Add wpa-ipa.
      
      From-SVN: r259837
      Tom de Vries committed
    • rs6000: Remove paired single · 55928937
      This removes paired single (used on the 750CL and friends).  It was
      deprecated in GCC 8.  Removing it means we only have one vector model
      to deal with (VMX+VSX, 16-byte vectors).
      
      
      	* config.gcc (powerpc*-*-*): Remove paired.h.  Unsupport the
      	powerpc*-*-linux*paired* target.
      	* config/rs6000/750cl.h: Delete.
      	* config/rs6000/paired.h: Delete.
      	* config/rs6000/paired.md: Delete.
      	* config/rs6000/predicates.md (easy_vector_constant): Remove paired
      	float support.
      	* config/rs6000/rs6000-builtin.def: Remove paired float support.
      	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update
      	comment.  Remove paired float support.
      	* config/rs6000/rs6000-modes.def: Remove V2SF and V2SI.
      	* config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete
      	VECTOR_PAIRED.
      	* config/rs6000/rs6000-protos.h (paired_expand_vector_init,
      	paired_emit_vector_cond_expr, paired_expand_vector_move): Delete
      	declarations.
      	* config/rs6000/rs6000.c: Remove paired float support.
      	(paired_expand_vector_init, paired_expand_vector_move,
      	paired_emit_vector_compare, paired_emit_vector_cond_expr,
      	(paired_expand_lv_builtin, paired_expand_stv_builtin,
      	paired_expand_builtin, paired_expand_predicate_builtin,
      	paired_init_builtins): Delete.
      	* config/rs6000/rs6000.h: Remove paired float support.
      	* config/rs6000/rs6000.md: Remove paired float support.
      	(move_from_CR_ov_bit): Delete.
      	* config/rs6000/rs6000.opt (mpaired): Delete.
      	* config/rs6000/t-rs6000: Remove paired.md from MD_INCLUDES.
      	* doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mpaired.
      
      From-SVN: r259833
      Segher Boessenkool committed
    • ansidecl.h (ATTRIBUTE_NONSTRING): Define. · 85b3bb6d
      ATTRIBUTE_NONSTRING
      
      	* ansidecl.h (ATTRIBUTE_NONSTRING): Define.
      
      From-SVN: r259832
      Alan Modra committed
    • * gennews (files): Add files for GCC 8. · b1750618
      From-SVN: r259828
      Jakub Jelinek committed
    • re PR middle-end/85567 (internal compiler error: in gimplify_modify_expr, at… · b18f161d
      re PR middle-end/85567 (internal compiler error: in gimplify_modify_expr, at gimplify.c:5797 when using sincos())
      
      2018-05-02  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/85567
      	* gimplify.c (gimplify_save_expr): When in SSA form allow
      	SAVE_EXPRs to compute to SSA vars.
      
      	* gcc.dg/torture/pr85567.c: New testcase.
      
      From-SVN: r259826
      Richard Biener committed
    • re PR target/85582 (wrong code at -O1 and above on x86_64-linux-gnu in 32-bit mode) · 014dcf47
      	PR target/85582
      	* config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
      	*ashl<dwi>3_doubleword_mask_1, *<shift_insn><dwi>3_doubleword_mask,
      	*<shift_insn><dwi>3_doubleword_mask_1): If and[sq]i3 is needed, don't
      	clobber operands[2], instead use a new pseudo.  Formatting fixes.
      
      	* gcc.c-torture/execute/pr85582-1.c: New test.
      	* gcc.c-torture/execute/pr85582-2.c: New test.
      
      From-SVN: r259825
      Jakub Jelinek committed
    • Tighten early exit in vect_analyze_data_ref_dependence (PR85586) · 9e4da9b5
      The problem in this PR was that we didn't consider aliases between
      writes in the same strided group.  After tightening the early exit
      we get the expected abs(step) >= 2 versioning check.
      
      2018-05-02  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	PR tree-optimization/85586
      	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Only
      	exit early for statements in the same group if the accesses are
      	not strided.
      
      gcc/testsuite/
      	PR tree-optimization/85586
      	* gcc.dg/vect/pr85586.c: New test.
      
      From-SVN: r259822
      Richard Sandiford committed
    • [lto] Add "could not find mkoffload" error message to lto-wrapper · c2e1580c
      2018-05-02  Tom de Vries  <tom@codesourcery.com>
      
      	PR lto/85451
      	* lto-wrapper.c (compile_offload_image): Add "could not find mkoffload"
      	error message.
      
      From-SVN: r259821
      Tom de Vries committed