- 12 Oct, 2018 4 commits
-
-
gcc/ChangeLog: * doc/extend.texi (attribute flatten): Mention interaction with noinline. From-SVN: r265075
Martin Sebor committed -
PR target/87156 * cgraphclones.c (cgraph_node::create_version_clone_with_body): Set new_decl virtual flag to zero. From-SVN: r265074
Jan Hubicka committed -
gcc/ChangeLog: * doc/extend.texi (attribute format_arg): Discuss using multiple attributes on a single function. From-SVN: r265073
Martin Sebor committed -
From-SVN: r265072
GCC Administrator committed
-
- 11 Oct, 2018 27 commits
-
-
It's not safe to assume that malloc(n) returns memory aligned to more than n, so when relying on the guaranteed alignment of malloc ensure that the number of bytes allocated is at least as large as the alignment. PR libstdc++/77691 * include/experimental/memory_resource (__resource_adaptor_imp): Do not allocate sizes smaller than alignment when relying on guaranteed alignment. * testsuite/experimental/memory_resource/new_delete_resource.cc: Adjust expected number of bytes allocated for alignof(max_align_t). From-SVN: r265068
Jonathan Wakely committed -
[testsuite] 2018-10-10 Will Schmidt <will_schmidt@vnet.ibm.com> * gcc.target/powerpc/fold-vec-insert-char-p8.c: New. * gcc.target/powerpc/fold-vec-insert-char-p9.c: New. * gcc.target/powerpc/fold-vec-insert-double.c: New. * gcc.target/powerpc/fold-vec-insert-float-p8.c: New. * gcc.target/powerpc/fold-vec-insert-float-p9.c: New. * gcc.target/powerpc/fold-vec-insert-int-p8.c: New. * gcc.target/powerpc/fold-vec-insert-int-p9.c: New. * gcc.target/powerpc/fold-vec-insert-longlong.c: New. * gcc.target/powerpc/fold-vec-insert-short-p8.c: New. * gcc.target/powerpc/fold-vec-insert-short-p9.c: New. From-SVN: r265067
Will Schmidt committed -
[testsuite] * gcc.target/powerpc/fold-vec-extract-char.p7.c: New. * gcc.target/powerpc/fold-vec-extract-char.p8.c: New. * gcc.target/powerpc/fold-vec-extract-char.p9.c: New. * gcc.target/powerpc/fold-vec-extract-double.p7.c: New. * gcc.target/powerpc/fold-vec-extract-double.p8.c: New. * gcc.target/powerpc/fold-vec-extract-double.p9.c: New. * gcc.target/powerpc/fold-vec-extract-float.p7.c: New. * gcc.target/powerpc/fold-vec-extract-float.p8.c: New. * gcc.target/powerpc/fold-vec-extract-float.p9.c: New. * gcc.target/powerpc/fold-vec-extract-int.p7.c: New. * gcc.target/powerpc/fold-vec-extract-int.p8.c: New. * gcc.target/powerpc/fold-vec-extract-int.p9.c: New. * gcc.target/powerpc/fold-vec-extract-longlong.p7.c: New. * gcc.target/powerpc/fold-vec-extract-longlong.p8.c: New. * gcc.target/powerpc/fold-vec-extract-longlong.p9.c: New. * gcc.target/powerpc/fold-vec-extract-short.p7.c: New. * gcc.target/powerpc/fold-vec-extract-short.p8.c: New. * gcc.target/powerpc/fold-vec-extract-short.p9.c: New. From-SVN: r265066
Will Schmidt committed -
[testsuite] 2018-10-11 Will Schmidt <will_schmidt@vnet.ibm.com> * gcc.target/powerpc/fold-vec-select-char.c: New. * gcc.target/powerpc/fold-vec-select-double.c: New. * gcc.target/powerpc/fold-vec-select-float.c: New. * gcc.target/powerpc/fold-vec-select-int.c: New. * gcc.target/powerpc/fold-vec-select-longlong.c: New. * gcc.target/powerpc/fold-vec-select-short.c: New. From-SVN: r265065
Will Schmidt committed -
PR tree-optimization/86829 * match.pd (sin (atan (x))): New simplification rules. (cos (atan (x))): Likewise. * real.c (build_sinatan_real): New function. * real.h (build_sinatan_real): Prototype. PR tree-optimization/86829 * gcc.dg/sinatan-1.c: New test. * gcc.dg/sinatan-2.c: New test. * gcc.dg/sinatan-3.c: New test. From-SVN: r265064
Giuliano Belinassi committed -
[gcc] 2018-10-09 Will Schmidt <will_schmidt@vnet.ibm.com> * config/rs6000/rs6000.c (map_to_integral_tree_type): New helper function. (fold_mergeeo_helper): New helper function. (rs6000_gimple_fold_builtin): Add hooks for vec_mergee and vec_mergeo intrinsics. Correct some whitespace indentation issues. From-SVN: r265063
Will Schmidt committed -
[testsuite] 2018-10-09 Will Schmidt <will_schmidt@vnet.ibm.com> * gcc.target/powerpc/fold-vec-mergeeo-floatdouble.c: New. * gcc.target/powerpc/fold-vec-mergeeo-int.c: New. * gcc.target/powerpc/fold-vec-mergeeo-longlong.c: New. From-SVN: r265062
Will Schmidt committed -
* include/debug/forward_list (forward_list<>::before_begin()): Use C++11 direct initialization. (forward_list<>::begin()): Likewise. (forward_list<>::end()): Likewise. (forward_list<>::cbefore_begin()): Likewise. (forward_list<>::cbegin()): Likewise. (forward_list<>::cend()): Likewise. (forward_list<>::emplace_after<>(const_iterator, _Args&&...)): Likewise. (forward_list<>::insert_after(const_iterator, const _Tp&)): Likewise. (forward_list<>::insert_after(const_iterator, _Tp&&)): Likewise. (forward_list<>::insert_after(const_iterator, size_type, const _Tp&)): Likewise. (forward_list<>::insert_after(const_iterator, initializer_list<>)): Likewise. (forward_list<>::erase_after(const_iterator)): Likewise. (forward_list<>::erase_after(const_iterator, const_iterator)): Likewise and ensure consistent iterator comparison. From-SVN: r265061
François Dumont committed -
* include/bits/forward_list.h (_Fwd_list_iterator<>::operator==): Replace member function with inline friend. (_Fwd_list_iterator<>::operator!=): Likewise. (_Fwd_list_const_iterator<>::operator==): Likewise. (_Fwd_list_const_iterator<>::operator!=): Likewise. (operator==(const _Fwd_list_iterator<>&, const _Fwd_list_const_iterator<>&)): Remove. (operator!=(const _Fwd_list_iterator<>&, const _Fwd_list_const_iterator<>&)): Remove. (forward_list<>::_Node): Take typedef from base type. (forward_list<>::iterator): Likewise. (forward_list<>::const_iterator): Likewise. From-SVN: r265060
François Dumont committed -
2018-10-11 Tobias Burnus <burnus@net-b.de> Revert: 2018-10-09 Tobias Burnus <burnus@net-b.de> PR fortran/83522 * resolve.c (resolve_ref): Reject nonscalar substring references. 2018-10-11 Tobias Burnus <burnus@net-b.de> Revert: 2018-10-09 Tobias Burnus <burnus@net-b.de> PR fortran/83522 * gfortran.dg/actual_array_substr_1.f90: Add dg-error, change to dg-do compile. * gfortran.dg/actual_array_substr_2.f90: Ditto. * gfortran.dg/array_initializer_1.f90: Use array element not size-one section. * gfortran.dg/array_substring.f90: New. From-SVN: r265059
Tobias Burnus committed -
As mentioned in PR87511, the shift used in aarch64_mask_and_shift_for_ubfiz_p should be evaluated as a HOST_WIDE_INT rather than int. Passes bootstrap & regress. gcc/ PR target/87511 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p): Use HOST_WIDE_INT_1U for shift. testsuite/ PR target/87511 * gcc.target/aarch64/pr87511.c: Add new test. From-SVN: r265058
Wilco Dijkstra committed -
PR c++/84993 identifies a problem with our suggestions for misspelled member names in the C++ FE for the case where the member is private. For example, given: class foo { public: double get_ratio() const { return m_ratio; } private: double m_ratio; }; void test(foo *ptr) { if (ptr->ratio >= 0.5) ;// etc } ...we currently emit this suggestion: <source>: In function 'void test(foo*)': <source>:12:12: error: 'class foo' has no member named 'ratio'; did you mean 'm_ratio'? if (ptr->ratio >= 0.5) ^~~~~ m_ratio ...but if the user follows this suggestion, they get: <source>: In function 'void test(foo*)': <source>:12:12: error: 'double foo::m_ratio' is private within this context if (ptr->m_ratio >= 0.5) ^~~~~~~ <source>:7:10: note: declared private here double m_ratio; ^~~~~~~ <source>:12:12: note: field 'double foo::m_ratio' can be accessed via 'double foo::get_ratio() const' if (ptr->m_ratio >= 0.5) ^~~~~~~ get_ratio() It feels wrong to be emitting a fix-it hint that doesn't compile, so this patch adds the accessor fix-it hint logic to this case, so that we directly offer a valid suggestion: <source>: In function 'void test(foo*)': <source>:12:12: error: 'class foo' has no member named 'ratio'; did you mean 'double foo::m_ratio'? (accessible via 'double foo::get_ratio() const') if (ptr->ratio >= 0.5) ^~~~~ get_ratio() gcc/cp/ChangeLog: PR c++/84993 * call.c (enforce_access): Move diagnostics to... (complain_about_access): ...this new function. * cp-tree.h (class access_failure_info): Rename split out field "m_field_decl" into "m_decl" and "m_diag_decl". (access_failure_info::record_access_failure): Add tree param. (access_failure_info::was_inaccessible_p): New accessor. (access_failure_info::get_decl): New accessor. (access_failure_info::get_diag_decl): New accessor. (access_failure_info::get_any_accessor): New member function. (access_failure_info::add_fixit_hint): New static member function. (complain_about_access): New decl. * typeck.c (access_failure_info::record_access_failure): Update for change to fields. (access_failure_info::maybe_suggest_accessor): Split out into... (access_failure_info::get_any_accessor): ...this new function... (access_failure_info::add_fixit_hint): ...and this new function. (finish_class_member_access_expr): Split out "has no member named" error-handling into... (complain_about_unrecognized_member): ...this new function, and check that the guessed name is accessible along the access path. Only provide a spell-correction fix-it hint if it is; otherwise, attempt to issue an accessor fix-it hint. gcc/testsuite/ChangeLog: PR c++/84993 * g++.dg/torture/accessor-fixits-9.C: New test. From-SVN: r265056
David Malcolm committed -
https://gcc.gnu.org/ml/gcc-patches/2018-10/msg00689.html cp/ * parser.c (cp_parser_translation_unit): Return void. Don't fail at first extra }, simplify logic. (c_parse_file): Call finish_translation_unit here. testsuite/ * g++.dg/parse/close-brace.C: New. * g++.dg/cpp0x/noexcept16.C: Avoid warning. * g++.old-deja/g++.other/crash32.C: Add another error From-SVN: r265055
Nathan Sidwell committed -
2018-10-11 Doug Rupp <rupp@adacore.com> Olivier Hainque <hainque@adacore.com> * config/rs6000/vxworks.h (VXWORKS_RELAX_LINK_SPEC): New macro. Pass --relax to the linker for RTPs. (LINK_SPEC): Append VXWORKS_RELAX_LINK_SPEC. Co-Authored-By: Olivier Hainque <hainque@adacore.com> From-SVN: r265054
Doug Rupp committed -
PR c++/85070 * g++.dg/cpp0x/pr85070.C: Change effective target for diagnostics from c++14_only to c++14. From-SVN: r265052
Jakub Jelinek committed -
Mismatched dg-{begin|end}-multiline-output directives are currently silently ignored, leading to difficult-to-diagnose test failures involving excess output. This patch makes multiline.exp complain about them. gcc/testsuite/ChangeLog: * lib/multiline.exp (dg-begin-multiline-output): Issue an error if there hasn't been a dg-end-multiline-output since the last dg-begin-multiline-output. (dg-end-multiline-output): Issue an error if there hasn't been a dg-begin-multiline-output. Reset _multiline_last_beginning_line as soon possible. Rename "line" to "last_line". From-SVN: r265046
David Malcolm committed -
Avoid a system call when no sleep is required. Sleep in a loop (actually two loops) to handle interruption by signals. PR libstdc++/80538 * src/c++11/thread.cc (this_thread::__sleep_for) [_GLIBCXX_HAVE_SLEEP]: Only call sleep for non-zero values. Loop while sleep call is interrupted and until steady_clock shows requested duration has elapsed. (!_GLIBCXX_HAVE_USLEEP]: Use the _GLIBCXX_HAVE_SLEEP code path, but avoiding the usleep call. * testsuite/30_threads/this_thread/60421.cc: Test repeated signal interruptions. From-SVN: r265044
Jonathan Wakely committed -
GCN's 64-lane vectors tend to make RTL dumps very long. This patch makes them far more bearable by eliding long sequences of the same element into "repeated" messages. This also takes care of reading repeated sequences in the RTL front-end. There are self tests for both reading and writing. 2018-10-11 Andrew Stubbs <ams@codesourcery.com> Jan Hubicka <jh@suse.cz> Martin Jambor <mjambor@suse.cz> gcc/ * print-rtl.c (print_rtx_operand_codes_E_and_V): Print how many times the same elements are repeated rather than printing all of them. * read-rtl.c (rtx_reader::read_rtx_operand): Recognize and expand "repeated" elements. * read-rtl-function.c (test_loading_repeat): New function. (read_rtl_function_c_tests): Call test_loading_repeat. * rtl-tests.c (test_dumping_repeat): New function. (rtl_tests_c_tests): Call test_dumping_repeat. gcc/testsuite/ * selftests/repeat.rtl: New file. Co-Authored-By: Jan Hubicka <jh@suse.cz> Co-Authored-By: Martin Jambor <mjambor@suse.cz> From-SVN: r265042
Andrew Stubbs committed -
PR c++/87582 * typeck.c (maybe_warn_about_returning_address_of_local): If whats_returned is a structured binding identifier and the structured binding is a reference, recurse on its initializer. * g++.dg/cpp1z/decomp48.C: New test. From-SVN: r265041
Jakub Jelinek committed -
Consider: demo.c: In function 'test': demo.c:5:40: error: macro "LOG_2" requires 3 arguments, but only 2 given 5 | LOG_2 ("loading file: %s\n", filename); | ^ This patch adds a note showing the definition of the macro in question, giving: demo.c: In function 'test': demo.c:5:40: error: macro "LOG_2" requires 3 arguments, but only 2 given 5 | LOG_2 ("loading file: %s\n", filename); | ^ In file included from demo.c:1: logging.h:1: note: macro "LOG_2" defined here 1 | #define LOG_2(FMT, ARG0, ARG1) do { fprintf (stderr, (FMT), (ARG0), (ARG1)); } | gcc/testsuite/ChangeLog: * g++.dg/diagnostic/macro-arg-count.C: Move to... * c-c++-common/cpp/macro-arg-count-1.c: ...here, generalizing output for C vs C++. Expect notes showing the definitions of the macros. * c-c++-common/cpp/macro-arg-count-2.c: New test, adapted from the above. libcpp/ChangeLog: * macro.c (_cpp_arguments_ok): If the argument count is wrong, add a note showing the definition of the macro. From-SVN: r265040
David Malcolm committed -
2018-10-11 Richard Biener <rguenther@suse.de> * config/i386/x86-tune-costs.h (bdver?_memcpy, bdver?_memset, bdver?_cost): Unify to ... (bdver_memcpy, bdver_memset, bdver_cost): ... this. * config/i386/i386.c (processor_cost_table): Adjust. From-SVN: r265038
Richard Biener committed -
https://gcc.gnu.org/ml/gcc-patches/2018-10/msg00623.html * include/line-map.h (LINEMAPS_MACRO_LOWEST_LOCATION): Fix off-by-one error. * line-map.c (linemap_enter_macro): Use RAII. Clear all of the macro_locations. From-SVN: r265037
Nathan Sidwell committed -
The Allocator requirements include the ability to compare different specializations of the same allocator class template. This did not work for __gnu_cxx::new_allocator and other extension allocators. This patch replaces the equality operators for those allocators with inline friends that support heterogeneous comparisons. (I'm not changing all ext allocators because some are bit-rotted already). Additionally, the equality operators for comparing two std::allocator objects of the same type are now defined as inline friends. Those overloads don't need to be declared at namespace scope, because they aren't specified in the standard (but they're needed in this implementation to avoid ambiguities caused by the extra overloads defined for the base allocator type). * include/bits/allocator.h (operator==(const allocator<_Tp>&, const allocator<_Tp>)) (operator!=(const allocator<_Tp>&, const allocator<_Tp>)): Replace with inline friends. * include/ext/debug_allocator.h (operator==, operator!=): Replace with inline friend functions that compare to rebound allocators. * include/ext/malloc_allocator.h (operator==, operator!=): Likewise. * include/ext/new_allocator.h (operator==, operator!=): Likewise. * testsuite/ext/debug_allocator/eq.cc: New test. * testsuite/ext/ext_pointer/alloc_eq.cc: New test. * testsuite/ext/malloc_allocator/eq.cc: New test. * testsuite/ext/new_allocator/eq.cc: New test. From-SVN: r265036
Jonathan Wakely committed -
2018-10-11 Martin Jambor <mjambor@suse.cz> testsuite/ * gcc.dg/warn-abs-1.c: Guard tests assuming size of long double is greater that the size of double by target large_long double. From-SVN: r265035
Martin Jambor committed -
* c-lex.c (c_common_has_attribute): Return 201803 instead of 20180312 for no_unique_address. * g++.dg/cpp2a/feat-cxx2a.C: New test. From-SVN: r265034
Jakub Jelinek committed -
PR c++/87547 * rtti.c (get_tinfo_decl_dynamic): Use unlowered_expr_type instead of TREE_TYPE. * g++.dg/rtti/typeid12.C: New test. From-SVN: r265033
Jakub Jelinek committed -
From-SVN: r265032
GCC Administrator committed
-
- 10 Oct, 2018 9 commits
-
-
re PR middle-end/87574 (ICE in add_data_member_location_attribute at gcc/gcc/dwarf2out.c:19226 since r264943) PR middle-end/87574 * cgraphunit.c (cgraph_node::expand_thunk): Force DECL_IGNORED_P on the thunk when expanding to GIMPLE. From-SVN: r265028
Eric Botcazou committed -
* constexpr.c (potential_constant_expression_1) <case FOR_STMT>: Return true if the condition is always false. <case WHILE_STMT>: Likewise. * g++.dg/cpp1y/constexpr-loop7.C: New test. From-SVN: r265027
Marek Polacek committed -
most likely by twice applying the patch which added the testcases. This patch removes the duplicated code. [gcc/testsuite] 2018-10-10 Paul A. Clarke <pc@us.ibm.com> PR target/87579 * gcc.target/powerpc/sse3-check.h: Remove duplicated code. * gcc.target/powerpc/sse3-addsubps.c: Likewise. * gcc.target/powerpc/sse3-addsubpd.c: Likewise. * gcc.target/powerpc/sse3-haddps.c: Likewise. * gcc.target/powerpc/sse3-hsubps.c: Likewise. * gcc.target/powerpc/sse3-haddpd.c: Likewise. * gcc.target/powerpc/sse3-hsubpd.c: Likewise. * gcc.target/powerpc/sse3-lddqu.c: Likewise. * gcc.target/powerpc/sse3-movsldup.c: Likewise. * gcc.target/powerpc/sse3-movshdup.c: Likewise. * gcc.target/powerpc/sse3-movddup.c: Likewise. * gcc.target/powerpc/pr37191.c: Likewise. From-SVN: r265026
Paul A. Clarke committed -
2018-10-10 Bernd Edlinger <bernd.edlinger@hotmail.de> * varasm.c (mergeable_string_section): Don't try to move zero-length strings to the merge section. From-SVN: r265025
Bernd Edlinger committed -
gcc/testsuite/ChangeLog: * gcc.dg/transparent-union-6.c: New. From-SVN: r265024
Martin Sebor committed -
The C++17 standard requires the default implementation for allocator_traits::max_size to return SIZE_MAX / sizeof(value_type). That causes GCC to warn because the value could be larger than can sensibly be passed to malloc. This patch changes the new_allocator and malloc_allocator max_size() members to use PTRDIFF_MAX instead of SIZE_MAX (and because they define it, the allocator_traits default isn't used). This also changes vector::max_size to impose a sensible limit using PTRDIFF_MAX for cases where the value from the allocator or allocator_traits is not sensible. PR libstdc++/87544 * include/bits/stl_vector.h (vector::_S_max_size): Limit size to PTRDIFF_MAX / sizeof(value_type). * include/ext/malloc_allocator.h (malloc_allocator::max_size): Likewise. * include/ext/new_allocator.h (new_allocator::max_size): Likewise. * testsuite/23_containers/vector/allocator/minimal.cc: Adjust expected value for max_size(). * testsuite/23_containers/vector/capacity/87544.cc: New test. From-SVN: r265021
Jonathan Wakely committed -
gcc/testsuite/ChangeLog: * gcc.c-torture/execute/memchr-1.c: Avoid assuming 4-byte wchar_t. Add a test for 2-byte wchar_t. * gcc.dg/builtin-memchr.c: New test. From-SVN: r265020
Martin Sebor committed -
PR target/87573 * config/i386/mmx.md (const_vector 0 -> mem splitter): New splitter. testsuite/ChangeLog: PR target/87573 * gcc.target/i386/pr87573.c: New test. From-SVN: r265019
Uros Bizjak committed -
re PR target/87550 (Intrinsics for rdpmc (__rdpmc, __builtin_ia32_rdpmc) are interpreted as pure functions) PR target/87550 * config/i386/i386-builtin.def (IX86_BUILTIN_RDPMC): Move from args set to special_args set. * gcc.target/i386/pr87550.c: New test. From-SVN: r265007
Jakub Jelinek committed
-