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).