- 03 May, 2018 13 commits
-
-
* 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 -
* 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 -
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 -
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 -
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 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 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 -
* include/std/future (__async_result_of): Use __invoke_result instead of result_of. From-SVN: r259888
Jonathan Wakely committed -
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 -
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 -
2018-05-03 Richard Biener <rguenther@suse.de> PR testsuite/85579 * fortran.dg/pr51434.f90: Truncate transfer argument. From-SVN: r259880
Richard Biener committed -
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 -
From-SVN: r259874
GCC Administrator committed
-
- 02 May, 2018 27 commits
-
-
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 -
Reviewed-on: https://go-review.googlesource.com/90775 From-SVN: r259866
Ian Lance Taylor committed -
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 -
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 -
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 -
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 -
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 -
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 -
/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 -
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 -
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 -
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 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 -
From-SVN: r259845
Joseph Myers committed -
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 -
* testsuite/backward/strstream_move.cc: Remove duplicate function call. From-SVN: r259843
Jonathan Wakely committed -
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 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 -
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 -
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 -
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 -
ATTRIBUTE_NONSTRING * ansidecl.h (ATTRIBUTE_NONSTRING): Define. From-SVN: r259832
Alan Modra committed -
From-SVN: r259828
Jakub Jelinek committed -
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 -
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 -
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 -
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
-