Skip to content
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

tuple api break #28058

Closed
llvmbot opened this issue May 9, 2016 · 7 comments
Closed

tuple api break #28058

llvmbot opened this issue May 9, 2016 · 7 comments
Labels
bugzilla Issues migrated from bugzilla libc++ libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.

Comments

@llvmbot
Copy link
Collaborator

llvmbot commented May 9, 2016

Bugzilla Link 27684
Resolution FIXED
Resolved on Jun 21, 2016 18:19
Version unspecified
OS Linux
Reporter LLVM Bugzilla Contributor
CC @hfinkel,@mclow

Extended Description

With clang/libc++/libc++abi 3.9.0 (trunk 268575), I am no longer to build webkitgtk on Linux. It appears that some recent changes to the tuple header made this happen.

The code still compiles with clang/libc++/libc++abi 3.8.0 and gcc 6.1.0.

See also: https://bugs.webkit.org/show_bug.cgi?id=157382

In file included from :1:
In file included from /sources/webkitgtk-2.12.2/Source/WebKit2/WebKit2Prefix.h:69:
In file included from /usr/bin/../include/c++/v1/algorithm:631:
/usr/bin/../include/c++/v1/type_traits:1331:59: error: incomplete type 'WebCore::IDBRequestData' used in type trait expression
: public integral_constant<bool, __is_base_of(_Bp, _Dp)> {};
^
/usr/bin/../include/c++/v1/type_traits:543:37: note: in instantiation of template class 'std::__1::is_base_of<std::__1::allocator_arg_t, WebCore::IDBRequestData>' requested
here
struct __lazy_and : __lazy_and_impl<_P1::type::value, _Pr...> {};
^
/usr/bin/../include/c++/v1/tuple:664:9: note: in instantiation of template class 'std::__1::__lazy_and<std::__1::is_base_of<std::__1::allocator_arg_t, WebCore::IDBRequestData>,
std::__1::__lazy_all<std::__1::__dependent_type<std::__1::is_default_constructible<const WebCore::IDBRequestData &>, true>,
std::__1::__dependent_type<std::__1::is_default_constructible<const WebCore::IDBObjectStoreInfo &>, true> > >' requested here
__lazy_and<
^
/usr/bin/../include/c++/v1/tuple:670:5: note: in instantiation of default argument for 'tuple<WebCore::IDBRequestData, WebCore::IDBObjectStoreInfo, true>' required here
tuple(_AllocArgT, _Alloc const& __a)
^~~~~
/sources/webkitgtk-build/DerivedSources/WebKit2/WebIDBConnectionToClientMessages.h:180:11: note: while substituting deduced template arguments into function template 'tuple'
[with _AllocArgT = WebCore::IDBRequestData, _Alloc = WebCore::IDBObjectStoreInfo, _Dummy = (no value), $3 = (no value)]
: m_arguments(requestData, info)
^
/sources/webkitgtk-2.12.2/Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h:40:7: note: forward declaration of 'WebCore::IDBRequestData'
class IDBRequestData;

@llvmbot
Copy link
Collaborator Author

llvmbot commented May 9, 2016

My bad. I'll have this fixed by tonight.

@llvmbot
Copy link
Collaborator Author

llvmbot commented May 9, 2016

fix.diff
I was trying to support using types that derive from "std::allocator_arg_t". I removed the SFINAE to do that because it clearly breaks code. I've attached a fix to your issue.

@llvmbot
Copy link
Collaborator Author

llvmbot commented May 9, 2016

I can confirm that the proposed fix fixes my issue

@llvmbot
Copy link
Collaborator Author

llvmbot commented May 9, 2016

I'm still surprised that you can get a reference to an incomplete type into the tuple. I'm going to have to add a bunch of tests for that.

@llvmbot
Copy link
Collaborator Author

llvmbot commented Jun 21, 2016

Hi, this is still an issue in clang version 3.9.0 (trunk 273167)

Is there a plan to upstream the patch mentioned here? If not, what would be the correct way to fix the webkit issue?

@llvmbot
Copy link
Collaborator Author

llvmbot commented Jun 21, 2016

Sorry I thought I had committed a fix and put this out of mind. I'll make sure it's fixed before the 3.9 release branch.

@llvmbot
Copy link
Collaborator Author

llvmbot commented Jun 22, 2016

Fixed in r273334.

@llvmbot llvmbot transferred this issue from llvm/llvm-bugzilla-archive Dec 10, 2021
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bugzilla Issues migrated from bugzilla libc++ libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.
Projects
None yet
Development

No branches or pull requests

1 participant