-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Move from destroyed object in tuple_cat of nested tuples #23180
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
More extensive test.
|
It appears also that it's only a problem in the single argument case. If you change Then the assert does not fire. |
Created http://reviews.llvm.org/D8084 with a possible solution for this. |
We are incorrectly calling the "tuple-like" copy/move constructor std::tuple<std::tuple>::tuple(std::tuple&&) on line 664. |
Minimal Reproducer Louis, Is it alright If I commit your "Tracked" class into our test suite? It seems like a useful thing to have around. |
Sure, go ahead. It's very useful to detect improper usage of perfect forwarding in tricky code. Here's the (more complete) version I use in Hana: http://goo.gl/ighmKQ. |
The following also triggers an assertion on my machine:
|
Possible fix up for review as D12502. See http://reviews.llvm.org/D12502 . |
*** Bug llvm/llvm-bugzilla-archive#25169 has been marked as a duplicate of this bug. *** |
Finally fixed in r266461. |
mentioned in issue llvm/llvm-bugzilla-archive#25169 |
Extended Description
This bug concerns libc++ trunk (git-svn ID 230867).
In the following code,
Tracked{}
is destroyed and is then moved-from.Here's a self-contained test program:
Compiling and then running this will produce:
I don't have the time to investigate this further right now, unfortunately.
The text was updated successfully, but these errors were encountered: