Commit 5e080a7
authored
Fix build when compiling against libc++ (#5284)
When using libc++, the build fails with errors like:
error: incomplete type 'clang::DeclContext::udir_iterator' used in type trait expression
: public integral_constant<bool, __is_base_of(_Bp, _Dp)> {};
^
note: while substituting deduced template arguments into function template 'iterator_adaptor_base' [with U = const llvm::iterator_adaptor_base<clang::DeclContext::udir_iterator, clang::DeclContextLookupResult::iterator, std::random_access_iterator_tag, clang::UsingDirectiveDecl *> &]
class iterator_adaptor_base
This was fixed in upstream LLVM in this CL:
llvm/llvm-project@e78e32a
(also see original review: https://reviews.llvm.org/D22951#change-zKJSAlLXXy11)
Unfortunately, the CL does not explain why this change was made, so I
can only assume that it was failing a libc++ build as well.
I also added the static_assert that was later added in this CL:
llvm/llvm-project@0aecae3
This restores the build failure that would occur if U is not a base of DerivedT.1 parent 66f8c6d commit 5e080a7
1 file changed
Lines changed: 6 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
152 | 152 | | |
153 | 153 | | |
154 | 154 | | |
155 | | - | |
156 | | - | |
157 | | - | |
158 | | - | |
159 | | - | |
160 | | - | |
161 | | - | |
162 | | - | |
163 | | - | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
164 | 161 | | |
165 | 162 | | |
166 | 163 | | |
| |||
0 commit comments