public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug libstdc++/99006] New: make_shared<T[]> silently works @ 2021-02-08 17:13 Darrell.Wright at gmail dot com 2021-02-09 8:08 ` [Bug libstdc++/99006] " redi at gcc dot gnu.org ` (7 more replies) 0 siblings, 8 replies; 9+ messages in thread From: Darrell.Wright at gmail dot com @ 2021-02-08 17:13 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99006 Bug ID: 99006 Summary: make_shared<T[]> silently works Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: Darrell.Wright at gmail dot com Target Milestone: --- std::make_shared<T[]> in libstdc++ prior to c++20 doesn't fail. The minimal example is #include <memory> int func( ) { auto sp = std::make_shared<int[]>( 55 ); return *sp.get( ); } will return 55; libc++ removes it from the overload set and MS STL fails. https://gcc.godbolt.org/z/PaW6WY With T = int[], I think https://timsong-https://timsong-cpp.github.io/cppwp/n4659/util.smartptr.shared.create#1 should make this not work. ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug libstdc++/99006] make_shared<T[]> silently works 2021-02-08 17:13 [Bug libstdc++/99006] New: make_shared<T[]> silently works Darrell.Wright at gmail dot com @ 2021-02-09 8:08 ` redi at gcc dot gnu.org 2021-02-09 8:11 ` redi at gcc dot gnu.org ` (6 subsequent siblings) 7 siblings, 0 replies; 9+ messages in thread From: redi at gcc dot gnu.org @ 2021-02-09 8:08 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99006 Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed| |2021-02-09 --- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- I thought this was a duplicate but it looks like I never reported it. I have a half finished patch for it (and there's an unreviewed patch to add proper support for make_shared<T[]>). ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug libstdc++/99006] make_shared<T[]> silently works 2021-02-08 17:13 [Bug libstdc++/99006] New: make_shared<T[]> silently works Darrell.Wright at gmail dot com 2021-02-09 8:08 ` [Bug libstdc++/99006] " redi at gcc dot gnu.org @ 2021-02-09 8:11 ` redi at gcc dot gnu.org 2021-04-22 13:33 ` redi at gcc dot gnu.org ` (5 subsequent siblings) 7 siblings, 0 replies; 9+ messages in thread From: redi at gcc dot gnu.org @ 2021-02-09 8:11 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99006 --- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- https://gcc.gnu.org/pipermail/gcc-help/2020-October/139506.html ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug libstdc++/99006] make_shared<T[]> silently works 2021-02-08 17:13 [Bug libstdc++/99006] New: make_shared<T[]> silently works Darrell.Wright at gmail dot com 2021-02-09 8:08 ` [Bug libstdc++/99006] " redi at gcc dot gnu.org 2021-02-09 8:11 ` redi at gcc dot gnu.org @ 2021-04-22 13:33 ` redi at gcc dot gnu.org 2021-04-22 15:07 ` cvs-commit at gcc dot gnu.org ` (4 subsequent siblings) 7 siblings, 0 replies; 9+ messages in thread From: redi at gcc dot gnu.org @ 2021-04-22 13:33 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99006 --- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> --- The __cpp_lib_shared_ptr_arrays feature test macro can be used to detect whether make_shared<T[]> works correctly: #if __cpp_lib_shared_ptr_arrays >= 201707L https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations#__cpp_lib_shared_ptr_arrays ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug libstdc++/99006] make_shared<T[]> silently works 2021-02-08 17:13 [Bug libstdc++/99006] New: make_shared<T[]> silently works Darrell.Wright at gmail dot com ` (2 preceding siblings ...) 2021-04-22 13:33 ` redi at gcc dot gnu.org @ 2021-04-22 15:07 ` cvs-commit at gcc dot gnu.org 2021-05-11 19:50 ` cvs-commit at gcc dot gnu.org ` (3 subsequent siblings) 7 siblings, 0 replies; 9+ messages in thread From: cvs-commit at gcc dot gnu.org @ 2021-04-22 15:07 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99006 --- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jonathan Wakely <redi@gcc.gnu.org>: https://gcc.gnu.org/g:55650236cd97d81f42f9fdb4f6bcb12babafe51f commit r12-64-g55650236cd97d81f42f9fdb4f6bcb12babafe51f Author: Jonathan Wakely <jwakely@redhat.com> Date: Thu Apr 22 15:46:51 2021 +0100 libstdc++: Reject std::make_shared<T[]> [PR 99006] Prior to C++20 it should be ill-formed to use std::make_shared with an array type (and we don't support the C++20 feature to make it valid yet anyway). libstdc++-v3/ChangeLog: PR libstdc++/99006 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp is not an array type. * include/bits/shared_ptr_base.h (__allocate_shared): Likewise. * testsuite/20_util/shared_ptr/creation/99006.cc: New test. ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug libstdc++/99006] make_shared<T[]> silently works 2021-02-08 17:13 [Bug libstdc++/99006] New: make_shared<T[]> silently works Darrell.Wright at gmail dot com ` (3 preceding siblings ...) 2021-04-22 15:07 ` cvs-commit at gcc dot gnu.org @ 2021-05-11 19:50 ` cvs-commit at gcc dot gnu.org 2021-06-18 12:56 ` cvs-commit at gcc dot gnu.org ` (2 subsequent siblings) 7 siblings, 0 replies; 9+ messages in thread From: cvs-commit at gcc dot gnu.org @ 2021-05-11 19:50 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99006 --- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The releases/gcc-11 branch has been updated by Jonathan Wakely <redi@gcc.gnu.org>: https://gcc.gnu.org/g:ddfba2359d57167ed7a1efd184cae0cd5be2f31b commit r11-8382-gddfba2359d57167ed7a1efd184cae0cd5be2f31b Author: Jonathan Wakely <jwakely@redhat.com> Date: Thu Apr 22 15:46:51 2021 +0100 libstdc++: Reject std::make_shared<T[]> [PR 99006] Prior to C++20 it should be ill-formed to use std::make_shared with an array type (and we don't support the C++20 feature to make it valid yet anyway). libstdc++-v3/ChangeLog: PR libstdc++/99006 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp is not an array type. * include/bits/shared_ptr_base.h (__allocate_shared): Likewise. * testsuite/20_util/shared_ptr/creation/99006.cc: New test. (cherry picked from commit 55650236cd97d81f42f9fdb4f6bcb12babafe51f) ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug libstdc++/99006] make_shared<T[]> silently works 2021-02-08 17:13 [Bug libstdc++/99006] New: make_shared<T[]> silently works Darrell.Wright at gmail dot com ` (4 preceding siblings ...) 2021-05-11 19:50 ` cvs-commit at gcc dot gnu.org @ 2021-06-18 12:56 ` cvs-commit at gcc dot gnu.org 2021-06-18 14:43 ` cvs-commit at gcc dot gnu.org 2021-06-18 14:44 ` redi at gcc dot gnu.org 7 siblings, 0 replies; 9+ messages in thread From: cvs-commit at gcc dot gnu.org @ 2021-06-18 12:56 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99006 --- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The releases/gcc-10 branch has been updated by Jonathan Wakely <redi@gcc.gnu.org>: https://gcc.gnu.org/g:36d6e7fe997aa85dc64b13ce4bb3c2e51e13cd36 commit r10-9936-g36d6e7fe997aa85dc64b13ce4bb3c2e51e13cd36 Author: Jonathan Wakely <jwakely@redhat.com> Date: Thu Apr 22 15:46:51 2021 +0100 libstdc++: Reject std::make_shared<T[]> [PR 99006] Prior to C++20 it should be ill-formed to use std::make_shared with an array type (and we don't support the C++20 feature to make it valid yet anyway). libstdc++-v3/ChangeLog: PR libstdc++/99006 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp is not an array type. * include/bits/shared_ptr_base.h (__allocate_shared): Likewise. * testsuite/20_util/shared_ptr/creation/99006.cc: New test. (cherry picked from commit 55650236cd97d81f42f9fdb4f6bcb12babafe51f) ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug libstdc++/99006] make_shared<T[]> silently works 2021-02-08 17:13 [Bug libstdc++/99006] New: make_shared<T[]> silently works Darrell.Wright at gmail dot com ` (5 preceding siblings ...) 2021-06-18 12:56 ` cvs-commit at gcc dot gnu.org @ 2021-06-18 14:43 ` cvs-commit at gcc dot gnu.org 2021-06-18 14:44 ` redi at gcc dot gnu.org 7 siblings, 0 replies; 9+ messages in thread From: cvs-commit at gcc dot gnu.org @ 2021-06-18 14:43 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99006 --- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The releases/gcc-9 branch has been updated by Jonathan Wakely <redi@gcc.gnu.org>: https://gcc.gnu.org/g:79fa567e234585dc6a71f9bd069101c993513f3e commit r9-9591-g79fa567e234585dc6a71f9bd069101c993513f3e Author: Jonathan Wakely <jwakely@redhat.com> Date: Thu Apr 22 15:46:51 2021 +0100 libstdc++: Reject std::make_shared<T[]> [PR 99006] Prior to C++20 it should be ill-formed to use std::make_shared with an array type (and we don't support the C++20 feature to make it valid yet anyway). libstdc++-v3/ChangeLog: PR libstdc++/99006 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp is not an array type. * include/bits/shared_ptr_base.h (__allocate_shared): Likewise. * testsuite/20_util/shared_ptr/creation/99006.cc: New test. (cherry picked from commit 55650236cd97d81f42f9fdb4f6bcb12babafe51f) ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug libstdc++/99006] make_shared<T[]> silently works 2021-02-08 17:13 [Bug libstdc++/99006] New: make_shared<T[]> silently works Darrell.Wright at gmail dot com ` (6 preceding siblings ...) 2021-06-18 14:43 ` cvs-commit at gcc dot gnu.org @ 2021-06-18 14:44 ` redi at gcc dot gnu.org 7 siblings, 0 replies; 9+ messages in thread From: redi at gcc dot gnu.org @ 2021-06-18 14:44 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99006 Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Target Milestone|--- |9.5 Status|NEW |RESOLVED --- Comment #8 from Jonathan Wakely <redi at gcc dot gnu.org> --- Fixed for 9.5, 10.4 and 11.2 ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2021-06-18 14:44 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-02-08 17:13 [Bug libstdc++/99006] New: make_shared<T[]> silently works Darrell.Wright at gmail dot com 2021-02-09 8:08 ` [Bug libstdc++/99006] " redi at gcc dot gnu.org 2021-02-09 8:11 ` redi at gcc dot gnu.org 2021-04-22 13:33 ` redi at gcc dot gnu.org 2021-04-22 15:07 ` cvs-commit at gcc dot gnu.org 2021-05-11 19:50 ` cvs-commit at gcc dot gnu.org 2021-06-18 12:56 ` cvs-commit at gcc dot gnu.org 2021-06-18 14:43 ` cvs-commit at gcc dot gnu.org 2021-06-18 14:44 ` redi at gcc dot gnu.org
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).