- 08 Apr, 2019 17 commits
-
-
* include/std/variant (__do_visit): Add a template parameter for enforcing same return types for visit. (__gen_vtable_impl): Likewise. (_S_apply_single_alt): Adjust. (__visit_invoke_impl): New. Handle casting to void. (__do_visit_invoke): New. Enforces same return types. (__do_visit_invoke_r): New. Converts return types. (__visit_invoke): Adjust. (__gen_vtable): Add a template parameter for enforcing same return types for visit. * testsuite/20_util/variant/visit_r.cc: Add a test for a visitor with different return types. * testsuite/20_util/variant/visit_neg.cc: New. Ensures that visitors with different return types don't accidentally compile with regular visitation. From-SVN: r270216
Ville Voutilainen committed -
* typeck2.c (digest_init_r): Don't condition the object slicing warning on flag_checking. From-SVN: r270215
Marek Polacek committed -
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/170706 From-SVN: r270214
Ian Lance Taylor committed -
Committed on behalf of Wu Yuan: 2019-04-04 wu yuan <wuyuan5@huawei.com> * config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model. * config/aarch64/aarch64.md : Add "tsv110.md" * config/aarch64/tsv110.md: New file. From-SVN: r270212
wu yuan committed -
re PR tree-optimization/90006 (gcc loops indefinitely around vect_get_constant_vectors on -O2 -ftree-slp-vectorize -fno-math-errno) 2019-04-08 Richard Biener <rguenther@suse.de> PR tree-optimization/90006 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle calls like lrint. * gcc.dg/vect/bb-slp-pr90006.c: New testcase. From-SVN: r270210
Richard Biener committed -
From-SVN: r270209
Martin Liska committed -
2019-04-08 Martin Liska <mliska@suse.cz> PR sanitizer/89941 * sanitizer_common/sanitizer_platform_limits_linux.cc (defined): Reapply patch from r259664. * sanitizer_common/sanitizer_platform_limits_posix.h (defined): Likewise. From-SVN: r270208
Martin Liska committed -
The fma_forest, fma_root_node and func_fma_steering classes lack a copy constructor. However, they contain pointers to allocated memory so this omission can be regarded as poor style. We don't need to copy such objects, so declare the copy constructor private to inhibit accidental copying. 2019-04-08 Andrea Corallo <andrea.corallo@arm.com> PR target/83033 * config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy construction. (fma_root_node): Likewise. (func_fma_steering): Likewise. From-SVN: r270207
Andrea Corallo committed -
PR rtl-optimization/89865 * config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z. * gcc.target/i386/pr49095.c: Don't expect any RMW sequences. From-SVN: r270206
Jakub Jelinek committed -
PR rtl-optimization/89865 * config/i386/i386.md (SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand numbers not to clash with the additional operands[4]. (peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s with extra register copy in the middle. * gcc.target/i386/pr49095.c: Adjust number of expected RMW spots on ia32. From-SVN: r270205
Jakub Jelinek committed -
2019-04-08 Martin Liska <mliska@suse.cz> PR gcov-profile/89961 * doc/gcov.texi: Document data_file. * gcov.c (generate_results): Add data_info into JSON output. From-SVN: r270204
Martin Liska committed -
2019-04-01 Bin Cheng <bin.cheng@linux.alibaba.com> PR tree-optimization/89725 * tree-chrec.c (chrec_contains_symbols): New parameter. Handle outer loop's chrec as invariant symbol. * tree-chrec.h (chrec_contains_symbols): New parameter. * tree-data-ref.c (analyze_miv_subscript): Pass new argument. (build_classic_dist_vector_1, add_other_self_distances): Bypass access function of loops not in DDR's loop_nest. * tree-data-ref.h (index_in_loop_nest): Add unreachable check. * gcc.dg/tree-ssa/pr89725.c: New test. From-SVN: r270203
Bin Cheng committed -
2019-04-08 Martin Liska <mliska@suse.cz> * gcc.target/riscv/arch-1.c: Fix expected scanned pattern. From-SVN: r270202
Martin Liska committed -
/cp 2019-04-08 Paolo Carlini <paolo.carlini@oracle.com> PR c++/89914 * semantics.c (trait_expr_value): Don't use TYPE_NOTHROW_P when maybe_instantiate_noexcept fails. (classtype_has_nothrow_assign_or_copy_p): Likewise. * method.c (implicitly_declare_fn): Avoid passing error_mark_node to build_exception_variant. /testsuite 2019-04-08 Paolo Carlini <paolo.carlini@oracle.com> PR c++/89914 * g++.dg/ext/has_nothrow_constructor-3.C: New. From-SVN: r270201
Paolo Carlini committed -
2019-04-08 Christophe Lyon <christophe.lyon@linaro.org> * testsuite/27_io/filesystem/iterators/caching.cc: Add dg-require-filesystem-ts. From-SVN: r270199
Christophe Lyon committed -
2019-04-08 Chenghua Xu <paul.hua.gm@gmail.com> gcc/ PR target/89623 * config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of Mask. From-SVN: r270198
Chenghua Xu committed -
From-SVN: r270195
GCC Administrator committed
-
- 07 Apr, 2019 6 commits
-
-
2019-04-07 Harald Anlauf <anlauf@gmx.de> PR fortran/89904 * ChangeLog: Correct ChangeLog entry. From-SVN: r270192
Harald Anlauf committed -
* ChangeLog: Fix whitespace. * testsuite/ChangeLog: Ditto. From-SVN: r270191
Uros Bizjak committed -
PR target/89945 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter): Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand. testsuite/ChangeLog: PR target/89945 * gcc.target/i386/pr89945.c: New test. From-SVN: r270190
Uros Bizjak committed -
This patch just picks up changes made in r231983 (git 2afaef0360) and r268793 (git 0f7c25df5f). * functions.texi: Regenerate. From-SVN: r270189
Alan Modra committed -
c-family/ * c-ada-spec.c (is_float128): New predicate extracted from... (dump_ada_node) <COMPLEX_TYPE>: Use it to recognize __cfloat128. <REAL_TYPE>: ...here. Call it. ada/ * libgnat/i-cexten.ads (CFloat_128): New type. From-SVN: r270188
Eric Botcazou committed -
From-SVN: r270187
GCC Administrator committed
-
- 06 Apr, 2019 3 commits
-
-
2019-04-06 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/87352 * gfortran.h (gfc_component): Add finalized field. * class.c (finalize_component): If the component is already finalized, return early. Set component->finalized on exit. 2019-04-06 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/87352 * gfortran.dg/finalize_28.f90: Adjust count of __builtin_free. * gfortran.dg/finalize_33.f90: Likewise. * gfortran.dg/finalize_34.f90: New test. From-SVN: r270184
Thomas Koenig committed -
2019-04-06 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/89981 * resolve.c (resolve_global_procedure): If the global symbol is an ENTRY, also look up its name among the entries. 2019-04-06 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/89981 * gfortran.dg/entry_22.f90: New test. From-SVN: r270182
Thomas Koenig committed -
From-SVN: r270181
GCC Administrator committed
-
- 05 Apr, 2019 14 commits
-
-
* pt.c (convert_nontype_argument): Don't call build_converted_constant_expr if it could involve calling a conversion function with a instantiation-dependent constructor as its argument. * g++.dg/cpp0x/constexpr-conv3.C: New test. * g++.dg/cpp0x/constexpr-conv4.C: New test. From-SVN: r270178
Marek Polacek committed -
gcc/cp/ChangeLog: PR bootstrap/89980 * decl.c (reshape_init_array_1): Avoid treating empty strings as zeros in array initializers. Use trivial_type_p () instead of TYPE_HAS_TRIVIAL_DFLT(). gcc/testsuite/ChangeLog: PR bootstrap/89980 * g++.dg/init/array52.C: New test. From-SVN: r270177
Martin Sebor committed -
* doc/xml/manual/status_cxx2020.xml: Update status. * include/std/variant (visit<R>): Define for C++2a (P0655R1). * testsuite/20_util/variant/visit_r.cc: New test. From-SVN: r270176
Jonathan Wakely committed -
The equality operators for directory iterators are not explicitly specified in the standard, they're only required to meet the iterator requirements. This means we don't need to declare them at namespace scope and can implement them as hidden friends. Also add 'noexcept' to directory_iterator's dereference operators. * include/bits/fs_dir.h (directory_iterator::operator*) (directory_iterator::operator->): Add noexcept. (operator==, operator!=): Replace namespace-scope equality operators for directory iterators with hidden friends. From-SVN: r270175
Jonathan Wakely committed -
PR libstdc++/89986 * config/abi/pre/gnu.ver: Add missing exports. * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Test increment member. From-SVN: r270174
Jonathan Wakely committed -
Implement the proposed resolution of LWG 2708 by moving the _M_options and _M_pending members out of the recursive_directory_iterator into the shared _Dir_stack object. Because _Dir_stack is an opaque type, the member functions that access the _M_options and _M_pending variables cannot be inline. Move them into the library. As a drive-by fix, add noexcept to the non-throwing member functions of recursive_directory_iterator. * config/abi/pre/gnu.ver: Export new symbols. * include/bits/fs_dir.h (recursive_directory_iterator::options()) (recursive_directory_iterator::recursion_pending()) (recursive_directory_iterator::disable_recursion_pending()): Remove inline definitions. Make noexcept. (recursive_directory_iterator::depth()) (recursive_directory_iterator::operator*()) (recursive_directory_iterator::operator->()): Make noexcept. (recursive_directory_iterator::_M_options) (recursive_directory_iterator::_M_pending): Remove data members. * src/c++17/fs_path.cc (_Dir_stack): Add constructor and data members. (recursive_directory_iterator::recursive_directory_iterator): Remove ctor-initializer. Use new constructor for _Dir_stack. (recursive_directory_iterator::options()) (recursive_directory_iterator::recursion_pending()) (recursive_directory_iterator::disable_recursion_pending()): Add non-inline definitions. (recursive_directory_iterator::depth()): Make noexcept. (recursive_directory_iterator::increment(error_code&)) (recursive_directory_iterator::pop(error_code&)): Adjust to new location of options and recursion_pending members. * testsuite/27_io/filesystem/iterators/recursion_pending.cc: New test. * testsuite/util/testsuite_fs.h (__gnu_test::scoped_file): Add user-declared move constructor and assignment operator, to make the type move-only. From-SVN: r270173
Jonathan Wakely committed -
We need to handle DT_UNKNOWN earlier, not only during directory recursion, so that the cached file_type value in the directory_entry won't be used. * src/c++17/fs_dir.cc (_Dir::advance(bool, error_code&)): Handle d_type == DT_UNKNOWN immediately. (_Dir::should_recurse(bool, error_code&)): Remove file_type::unknown handling here. * testsuite/27_io/filesystem/iterators/caching.cc: New test. From-SVN: r270172
Jonathan Wakely committed -
The standard says "If *this and p are the same object, has no effect." Previously we ended up clearing the path. * include/bits/fs_path.h (path::operator=(path&&)): Check for self assignment. * src/c++17/fs_path.cc (path::operator=(const path&)): Likewise. * testsuite/27_io/filesystem/path/assign/copy.cc: Test self assignment. From-SVN: r270171
Jonathan Wakely committed -
Avoid creating arbitrarily large objects on the stack when emplacing trivially copyable objects into a variant. Currently we provide the strong exception-safety guarantee for all trivially copyable types, by constructing a second variant and then doing a non-throwing move assignment from the temporary. This patch restricts that behaviour to trivially copyable types that are no larger than 256 bytes. For larger types the object will be emplaced directly into the variant, and if its initialization throws then the variant becomes valueless. Also implement Antony Polukhin's suggestion to whitelist specific types that are not trivially copyable but can be efficiently move-assigned. Emplacing those types will never cause a variant to become valueless. The whitelisted types are: std::shared_ptr, std::weak_ptr, std::unique_ptr, std::function, and std::any. Additionally, std::basic_string, std::vector, and __gnu_debug::vector are whitelisted if their allocator traits give them a non-throwing move assignment operator. Specifically, this means std::string is whitelisted, but std::pmr::string is not. As part of this patch, additional if-constexpr branches are added for the cases where the initialization is known to be non-throwing (so the overhead of the try-catch block can be avoided) and where a scalar is being produced by a potentially-throwing conversion operator (so that the overhead of constructing and move-assigning a variant is avoided). These changes should have no semantic effect, just better codegen. PR libstdc++/87431 (again) * include/bits/basic_string.h (__variant::_Never_valueless_alt): Define partial specialization for basic_string. * include/bits/shared_ptr.h (_Never_valueless_alt): Likewise for shared_ptr and weak_ptr. * include/bits/std_function.h (_Never_valueless_alt): Likewise for function. * include/bits/stl_vector.h (_Never_valueless_alt): Likewise for vector. * include/bits/unique_ptr.h (_Never_valueless_alt): Likewise for unique_ptr. * include/debug/vector (_Never_valueless_alt): Likewise for debug vector. * include/std/any (_Never_valueless_alt): Define explicit specialization for any. * include/std/variant (_Never_valueless_alt): Define primary template. (__never_valueless): Use _Never_valueless_alt instead of is_trivially_copyable. (variant::emplace<N>(Args&&...)): Add special case for non-throwing initializations to avoid try-catch overhead. Add special case for scalars produced by potentially-throwing conversions. Use _Never_valueless_alt instead of is_trivially_copyable for the remaining strong exception-safety cases. (variant::emplace<N>(initializer_list<U>, Args&&...)): Likewise. * testsuite/20_util/variant/87431.cc: Run both test functions. * testsuite/20_util/variant/exception_safety.cc: New test. * testsuite/20_util/variant/run.cc: Use pmr::string instead of string, so the variant becomes valueless. From-SVN: r270170
Jonathan Wakely committed -
gcc/c-family/ChangeLog: PR c/89985 * c-warn.c (check_address_or_pointer_of_packed_member): Add auto_diagnostic_group. Guard inform calls by result of warning_at call. gcc/testsuite/ChangeLog: PR c/89985 * c-c++-common/pr89985.c: New test. From-SVN: r270169
David Malcolm committed -
2019-04-05 Christophe Lyon <christophe.lyon@linaro.org> PR c/71598 * gcc.dg/torture/pr71598-1.c: dg-prune arm linker messages about size of enums. * gcc.dg/torture/pr71598-2.c: Likewise. From-SVN: r270168
Christophe Lyon committed -
* sched-deps.c (sched_macro_fuse_insns): Check return value of targetm.fixed_condition_code_regs. From-SVN: r270167
Joern Rennecke committed -
PR c++/89973 - -Waddress-of-packed-member ICE with invalid conversion. * c-warn.c (check_address_or_pointer_of_packed_member): Check the type of RHS. * g++.dg/warn/Waddress-of-packed-member2.C: New test. From-SVN: r270166
Marek Polacek committed -
2019-04-05 Richard Biener <rguenther@suse.de> PR debug/89892 PR debug/89905 * tree-cfgcleanup.c (remove_forwarder_block): Always move debug bind stmts but reset them if they are not valid at the destination. * gcc.dg/guality/pr89892.c: New testcase. * gcc.dg/guality/pr89905.c: Likewise. * gcc.dg/guality/loop-1.c: Likewise. From-SVN: r270165
Richard Biener committed
-