[clang] [clang-tools-extra] [lldb] [llvm] [mlir] Fix compatibility issues with GCC15+ in C++23 (PR #182522)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Feb 20 08:13:39 PST 2026
2876225417 wrote:
## Details
<span id="issue1"></span>
### 1. reverse_iterator requires default ctor
```bash
In file included from /usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/stl_algobase.h:67:
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/stl_iterator.h:182:37: error: no matching constructor for initialization of 'llvm::detail::indexed_accessor_range_base<mlir::SuccessorRange, mlir::BlockOperand *, mlir::Block *, mlir::Block *, mlir::Block *>::iterator'
182 | _GLIBCXX_NOEXCEPT_IF(noexcept(_Iterator()))
| ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/x86_64-pc-linux-gnu/bits/c++config.h:245:46: note: expanded from macro '_GLIBCXX_NOEXCEPT_IF'
245 | # define _GLIBCXX_NOEXCEPT_IF(...) noexcept(__VA_ARGS__)
| ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/type_traits:3558:46: note: in instantiation of exception specification for 'reverse_iterator' requested here
3558 | inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...);
| ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/concepts:162:30: note: in instantiation of variable template specialization 'std::is_constructible_v<std::reverse_iterator<llvm::detail::indexed_accessor_range_base<mlir::SuccessorRange, mlir::BlockOperand *, mlir::Block *, mlir::Block *, mlir::Block *>::iterator>>' requested here
162 | = destructible<_Tp> && is_constructible_v<_Tp, _Args...>;
| ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/concepts:162:30: note: while substituting template arguments into constraint expression here
162 | = destructible<_Tp> && is_constructible_v<_Tp, _Args...>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/concepts:166:37: note: while checking the satisfaction of concept 'constructible_from<std::reverse_iterator<llvm::detail::indexed_accessor_range_base<mlir::SuccessorRange, mlir::BlockOperand *, mlir::Block *, mlir::Block *, mlir::Block *>::iterator>>' requested here
166 | concept default_initializable = constructible_from<_Tp>
| ^~~~~~~~~~~~~~~~~~~~~~~
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/concepts:282:44: note: while checking the satisfaction of concept 'default_initializable<std::reverse_iterator<llvm::detail::indexed_accessor_range_base<mlir::SuccessorRange, mlir::BlockOperand *, mlir::Block *, mlir::Block *, mlir::Block *>::iterator>>' requested here
282 | concept semiregular = copyable<_Tp> && default_initializable<_Tp>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/concepts:356:23: note: (skipping 14 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
356 | concept regular = semiregular<_Tp> && equality_comparable<_Tp>;
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/Support/GenericDomTreeConstruction.h:870:5: note: in instantiation of member function 'llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<mlir::Block, false>>::ComputeUnreachableDominators' requested here
870 | ComputeUnreachableDominators(DT, BUI, To, From, DiscoveredEdgesToReachable);
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/Support/GenericDomTreeConstruction.h:671:7: note: in instantiation of member function 'llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<mlir::Block, false>>::InsertUnreachable' requested here
671 | InsertUnreachable(DT, BUI, FromTN, To);
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/Support/GenericDomTreeConstruction.h:1145:11: note: in instantiation of member function 'llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<mlir::Block, false>>::InsertEdge' requested here
1145 | InsertEdge(DT, /*BUI=*/nullptr, Update.getFrom(), Update.getTo());
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/Support/GenericDomTreeConstruction.h:1582:26: note: in instantiation of member function 'llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<mlir::Block, false>>::ApplyUpdates' requested here
1582 | SemiNCAInfo<DomTreeT>::ApplyUpdates(DT, PreViewCFG, PostViewCFG);
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/Support/GenericDomTree.h:637:21: note: in instantiation of function template specialization 'llvm::DomTreeBuilder::ApplyUpdates<llvm::DominatorTreeBase<mlir::Block, false>>' requested here
637 | DomTreeBuilder::ApplyUpdates(*this, PreViewCFG, nullptr);
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/STLExtras.h:1221:9: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 0 were provided
1221 | class iterator : public indexed_accessor_iterator<iterator, BaseT, T,
| ^~~~~~~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/STLExtras.h:1221:9: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 0 were provided
1221 | class iterator : public indexed_accessor_iterator<iterator, BaseT, T,
| ^~~~~~~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/STLExtras.h:1230:5: note: candidate constructor not viable: requires 2 arguments, but 0 were provided
1230 | iterator(BaseT owner, ptrdiff_t curIndex)
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
```
<span id="issue2"></span>
### 2. reverse_iterator requires default ctor
```bash
FAILED: [code=1] lib/IR/CMakeFiles/LLVMCore.dir/Dominators.cpp.o
/usr/bin/g++ -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GLIBCXX_USE_CXX11_ABI=1 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-fix/build-stage1/lib/IR -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-fix/llvm/lib/IR -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-fix/build-stage1/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-fix/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-dangling-reference -Wno-redundant-move -Wno-pessimizing-move -Wno-array-bounds -Wno-stringop-overread -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -std=c++23 -UNDEBUG -fno-exceptions -funwind-tables -fno-rtti -MD -MT lib/IR/CMakeFiles/LLVMCore.dir/Dominators.cpp.o -MF lib/IR/CMakeFiles/LLVMCore.dir/Dominators.cpp.o.d -o lib/IR/CMakeFiles/LLVMCore.dir/Dominators.cpp.o -c /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-fix/llvm/lib/IR/Dominators.cpp
In file included from /usr/include/c++/15.2.1/functional:50,
from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-fix/llvm/include/llvm/ADT/STLForwardCompat.h:21,
from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-fix/llvm/include/llvm/Support/MathExtras.h:16,
from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-fix/llvm/include/llvm/ADT/APInt.h:19,
from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-fix/llvm/include/llvm/IR/Dominators.h:17,
from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-fix/llvm/lib/IR/Dominators.cpp:16:
/usr/include/c++/15.2.1/bits/stl_iterator.h: In instantiation of ‘constexpr std::reverse_iterator<_Iterator>::reverse_iterator() [with _Iterator = llvm::SuccIterator<llvm::Instruction, llvm::BasicBlock>]’:
/usr/include/c++/15.2.1/type_traits:3558:46: required from ‘constexpr const bool std::is_constructible_v<std::reverse_iterator<llvm::SuccIterator<llvm::Instruction, llvm::BasicBlock> > >’
3558 | inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/15.2.1/concepts:162:30: required from ‘_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = reverse_iterator<llvm::SuccIterator<llvm::Instruction, llvm::BasicBlock> >; _ForwardIterator = llvm::BasicBlock**]’
162 | = destructible<_Tp> && is_constructible_v<_Tp, _Args...>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-fix/llvm/include/llvm/ADT/SmallVector.h:522:30: required from ‘static void llvm::SmallVectorTemplateBase<T, true>::uninitialized_copy(It1, It1, It2) [with It1 = std::reverse_iterator<llvm::SuccIterator<llvm::Instruction, llvm::BasicBlock> >; It2 = llvm::BasicBlock**; T = llvm::BasicBlock*]’
522 | std::uninitialized_copy(I, E, Dest);
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-fix/llvm/include/llvm/ADT/SmallVector.h:690:29: required from ‘void llvm::SmallVectorImpl<T>::append(ItTy, ItTy) [with ItTy = std::reverse_iterator<llvm::SuccIterator<llvm::Instruction, llvm::BasicBlock> >; <template-parameter-2-2> = void; T = llvm::BasicBlock*]’
690 | this->uninitialized_copy(in_start, in_end, this->end());
| ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-fix/llvm/include/llvm/ADT/SmallVector.h:1232:17: required from ‘llvm::SmallVector<T, N>::SmallVector(const llvm::iterator_range<RangeTy>&) [with RangeTy = std::reverse_iterator<llvm::SuccIterator<llvm::Instruction, llvm::BasicBlock> >; T = llvm::BasicBlock*; unsigned int N = 8]’
1232 | this->append(R.begin(), R.end());
| ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-fix/llvm/include/llvm/Support/CFGDiff.h:137:19: required from ‘llvm::GraphDiff<NodePtr, InverseGraph>::VectRet llvm::GraphDiff<NodePtr, InverseGraph>::getChildren(NodePtr) const [with bool InverseEdge = false; NodePtr = llvm::BasicBlock*; bool InverseGraph = false; VectRet = llvm::SmallVector<llvm::BasicBlock*, 8>]’
137 | VectRet Res = VectRet(detail::reverse_if<!InverseEdge>(R));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-fix/llvm/include/llvm/Support/GenericDomTreeConstruction.h:114:60: required from ‘static llvm::SmallVector<typename DomTreeT::NodePtr, 8> llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::getChildren(NodePtr, BatchUpdatePtr) [with bool Inversed = false; DomTreeT = llvm::DominatorTreeBase<llvm::BasicBlock, false>; typename DomTreeT::NodePtr = llvm::BasicBlock*; NodePtr = llvm::BasicBlock*; BatchUpdatePtr = llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<llvm::BasicBlock, false> >::BatchUpdateInfo*]’
114 | return BUI->PreViewCFG.template getChildren<Inversed>(N);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-fix/llvm/include/llvm/Support/GenericDomTreeConstruction.h:923:47: required from ‘static void llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::DeleteEdge(DomTreeT&, BatchUpdatePtr, NodePtr, NodePtr) [with DomTreeT = llvm::DominatorTreeBase<llvm::BasicBlock, false>; BatchUpdatePtr = llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<llvm::BasicBlock, false> >::BatchUpdateInfo*; NodePtr = llvm::BasicBlock*]’
923 | auto Successors = getChildren<IsPostDom>(Of, BUI);
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-fix/llvm/include/llvm/Support/GenericDomTreeConstruction.h:1573:36: required from ‘void llvm::DomTreeBuilder::DeleteEdge(DomTreeT&, typename DomTreeT::NodePtr, typename DomTreeT::NodePtr) [with DomTreeT = llvm::DominatorTreeBase<llvm::BasicBlock, false>; typename DomTreeT::NodePtr = llvm::BasicBlock*]’
1573 | SemiNCAInfo<DomTreeT>::DeleteEdge(DT, nullptr, From, To);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-fix/llvm/lib/IR/Dominators.cpp:103:68: required from here
103 | DomTreeBuilder::BBDomTree &DT, BasicBlock *From, BasicBlock *To);
| ^
/usr/include/c++/15.2.1/bits/stl_iterator.h:182:7: error: no matching function for call to ‘llvm::SuccIterator<llvm::Instruction, llvm::BasicBlock>::SuccIterator()’
182 | _GLIBCXX_NOEXCEPT_IF(noexcept(_Iterator()))
| ^~~~~~~~~~~~~~~~~~~~
/usr/include/c++/15.2.1/bits/stl_iterator.h:182:7: note: there are 4 candidates
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-fix/llvm/include/llvm/IR/Dominators.h:27:
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-fix/llvm/include/llvm/IR/CFG.h:186:10: note: candidate 1: ‘llvm::SuccIterator<InstructionT, BlockT>::SuccIterator(InstructionT*, bool) [with InstructionT = llvm::Instruction; BlockT = llvm::BasicBlock]’
186 | inline SuccIterator(InstructionT *Inst, bool) : Inst(Inst) {
| ^~~~~~~~~~~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-fix/llvm/include/llvm/IR/CFG.h:186:10: note: candidate expects 2 arguments, 0 provided
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-fix/llvm/include/llvm/IR/CFG.h:184:19: note: candidate 2: ‘llvm::SuccIterator<InstructionT, BlockT>::SuccIterator(InstructionT*) [with InstructionT = llvm::Instruction; BlockT = llvm::BasicBlock]’
184 | explicit inline SuccIterator(InstructionT *Inst) : Inst(Inst), Idx(0) {}
| ^~~~~~~~~~~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-fix/llvm/include/llvm/IR/CFG.h:184:19: note: candidate expects 1 argument, 0 provided
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-fix/llvm/include/llvm/IR/CFG.h:139:7: note: candidate 3: ‘constexpr llvm::SuccIterator<llvm::Instruction, llvm::BasicBlock>::SuccIterator(const llvm::SuccIterator<llvm::Instruction, llvm::BasicBlock>&)’
139 | class SuccIterator
| ^~~~~~~~~~~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-fix/llvm/include/llvm/IR/CFG.h:139:7: note: candidate expects 1 argument, 0 provided
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-fix/llvm/include/llvm/IR/CFG.h:139:7: note: candidate 4: ‘constexpr llvm::SuccIterator<llvm::Instruction, llvm::BasicBlock>::SuccIterator(llvm::SuccIterator<llvm::Instruction, llvm::BasicBlock>&&)’
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-fix/llvm/include/llvm/IR/CFG.h:139:7: note: candidate expects 1 argument, 0 provided
```
<span id="issue3"></span>
### 3. Requires complete type
```bash
有一个问题:
[207/1679] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIInsertWaitcnts.cpp.o
FAILED: [code=1] lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIInsertWaitcnts.cpp.o
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-built/bin/clang++ -D_GLIBCXX_USE_CXX11_ABI=1 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/lib/Target/AMDGPU -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/lib/Target/AMDGPU -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -std=c++23 -fvisibility=hidden -fno-exceptions -funwind-tables -fno-rtti -MD -MT lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIInsertWaitcnts.cpp.o -MF lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIInsertWaitcnts.cpp.o.d -o lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIInsertWaitcnts.cpp.o -c /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:26:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/lib/Target/AMDGPU/AMDGPU.h:13:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/CodeGen/MachinePassManager.h:24:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:36:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:20:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/STLExtras.h:37:
In file included from /usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/memory:80:
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/unique_ptr.h:90:16: error: invalid application of 'sizeof' to an incomplete type '(anonymous namespace)::WaitcntBrackets'
90 | static_assert(sizeof(_Tp)>0,
| ^~~~~~~~~~~
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/unique_ptr.h:398:4: note: in instantiation of member function 'std::default_delete<(anonymous namespace)::WaitcntBrackets>::operator()' requested here
398 | get_deleter()(std::move(__ptr));
| ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/type_traits:1364:43: note: in instantiation of member function 'std::unique_ptr<(anonymous namespace)::WaitcntBrackets>::~unique_ptr' requested here
1364 | = requires (void(&__f)(_Tp)) { __f({}); };
| ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/type_traits:1364:38: note: in instantiation of requirement here
1364 | = requires (void(&__f)(_Tp)) { __f({}); };
| ^~~~~~~
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/type_traits:1368:23: note: in instantiation of variable template specialization 'std::__is_implicitly_default_constructible_v<(anonymous namespace)::SIInsertWaitcnts::BlockInfo>' requested here
1368 | : __bool_constant<__is_implicitly_default_constructible_v<_Tp>>
| ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/type_traits:189:30: note: in instantiation of template class 'std::__is_implicitly_default_constructible<(anonymous namespace)::SIInsertWaitcnts::BlockInfo>' requested here
189 | __enable_if_t<bool(_Bn::value)>...>;
| ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/type_traits:205:16: note: (skipping 5 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
205 | : decltype(__detail::__and_fn<_Bn...>(0))
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/SmallVector.h:332:31: note: in instantiation of template class 'std::is_trivially_copy_constructible<std::pair<llvm::MachineBasicBlock *, (anonymous namespace)::SIInsertWaitcnts::BlockInfo>>' requested here
332 | template <typename T, bool = (std::is_trivially_copy_constructible<T>::value) &&
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/SmallVector.h:576:32: note: in instantiation of default argument for 'SmallVectorTemplateBase<std::pair<llvm::MachineBasicBlock *, (anonymous namespace)::SIInsertWaitcnts::BlockInfo>>' required here
576 | class SmallVectorImpl : public SmallVectorTemplateBase<T> {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/SmallVector.h:1204:43: note: in instantiation of template class 'llvm::SmallVectorImpl<std::pair<llvm::MachineBasicBlock *, (anonymous namespace)::SIInsertWaitcnts::BlockInfo>>' requested here
1204 | class LLVM_GSL_OWNER SmallVector : public SmallVectorImpl<T>,
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/MapVector.h:39:31: note: in instantiation of template class 'llvm::SmallVector<std::pair<llvm::MachineBasicBlock *, (anonymous namespace)::SIInsertWaitcnts::BlockInfo>, 0>' requested here
39 | using value_type = typename VectorType::value_type;
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:518:45: note: in instantiation of template class 'llvm::MapVector<llvm::MachineBasicBlock *, (anonymous namespace)::SIInsertWaitcnts::BlockInfo>' requested here
518 | MapVector<MachineBasicBlock *, BlockInfo> BlockInfos;
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:329:7: note: forward declaration of '(anonymous namespace)::WaitcntBrackets'
329 | class WaitcntBrackets;
| ^
1 error generated.
```
<span id="issue4"></span>
### 4. unique_ptr requires complete type
```bash
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:13:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/STLExtras.h:37:
In file included from /usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/memory:80:
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/unique_ptr.h:90:16: error: invalid application of 'sizeof' to an incomplete type 'llvm::MCStreamer'
90 | static_assert(sizeof(_Tp)>0,
| ^~~~~~~~~~~
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/unique_ptr.h:398:4: note: in instantiation of member function 'std::default_delete<llvm::MCStreamer>::operator()' requested here
398 | get_deleter()(std::move(__ptr));
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/lib/Target/BPF/BPFAsmPrinter.h:22:24: note: in instantiation of member function 'std::unique_ptr<llvm::MCStreamer>::~unique_ptr' requested here
22 | : AsmPrinter(TM, std::move(Streamer), ID), BTF(nullptr), TM(TM) {}
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/MC/MCExpr.h:25:7: note: forward declaration of 'llvm::MCStreamer'
25 | class MCStreamer;
| ^
1 error generated.
```
<span id="issue5"></span>
### 5. unique_ptr requires complete type
Same as [4](#issue4)
<span id="issue6"></span>
### 6. Default params requires complete type
```bash
[413/1417] Building CXX object tools/clang/lib/Interpreter/CMakeFiles/obj.clangInterpreter.dir/Interpreter.cpp.o
FAILED: [code=1] tools/clang/lib/Interpreter/CMakeFiles/obj.clangInterpreter.dir/Interpreter.cpp.o
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-built/bin/clang++ -DCLANG_EXPORTS -D_GLIBCXX_USE_CXX11_ABI=1 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/tools/clang/lib/Interpreter -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang/lib/Interpreter -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/tools/clang/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -std=c++23 -fno-exceptions -funwind-tables -fno-rtti -MD -MT tools/clang/lib/Interpreter/CMakeFiles/obj.clangInterpreter.dir/Interpreter.cpp.o -MF tools/clang/lib/Interpreter/CMakeFiles/obj.clangInterpreter.dir/Interpreter.cpp.o.d -o tools/clang/lib/Interpreter/CMakeFiles/obj.clangInterpreter.dir/Interpreter.cpp.o -c /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang/lib/Interpreter/Interpreter.cpp
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang/lib/Interpreter/Interpreter.cpp:14:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang/lib/Interpreter/DeviceOffload.h:16:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang/lib/Interpreter/IncrementalParser.h:17:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/Support/Error.h:17:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/Twine.h:12:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/SmallVector.h:30:
In file included from /usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/memory:80:
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/unique_ptr.h:90:16: error: invalid application of 'sizeof' to an incomplete type 'llvm::Module'
90 | static_assert(sizeof(_Tp)>0,
| ^~~~~~~~~~~
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/unique_ptr.h:398:4: note: in instantiation of member function 'std::default_delete<llvm::Module>::operator()' requested here
398 | get_deleter()(std::move(__ptr));
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang/lib/Interpreter/IncrementalParser.h:71:71: note: in instantiation of member function 'std::unique_ptr<llvm::Module>::~unique_ptr' requested here
71 | std::unique_ptr<llvm::Module> M = {});
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang/lib/Interpreter/IncrementalParser.h:23:7: note: forward declaration of 'llvm::Module'
23 | class Module;
| ^
1 error generated.
[415/1417] Building CXX object tools/clang/tools/extra/clang-apply-replacements/CMakeFiles/obj.clangApplyReplacements.dir/lib/Tooling/ApplyReplacements.cpp.o
ninja: build stopped: subcommand failed.
```
<span id="issue7"></span>
### 7. Default params requires complete type
Same as [6](#issue6)
<span id="issue8"></span>
### 8. unique_ptr requires complete type
```bash
[17/1428] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/Indexing.cpp.o
FAILED: [code=1] tools/clang/tools/libclang/CMakeFiles/libclang.dir/Indexing.cpp.o
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-built/bin/clang++ -D_CINDEX_LIB_ -D_GLIBCXX_USE_CXX11_ABI=1 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/tools/clang/tools/libclang -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang/tools/libclang -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/tools/clang/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -std=c++23 -fPIC -fno-exceptions -funwind-tables -fno-rtti -MD -MT tools/clang/tools/libclang/CMakeFiles/libclang.dir/Indexing.cpp.o -MF tools/clang/tools/libclang/CMakeFiles/libclang.dir/Indexing.cpp.o.d -o tools/clang/tools/libclang/CMakeFiles/libclang.dir/Indexing.cpp.o -c /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang/tools/libclang/Indexing.cpp
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang/tools/libclang/Indexing.cpp:9:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang/tools/libclang/CIndexDiagnostic.h:18:
In file included from /usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/memory:80:
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/unique_ptr.h:90:16: error: invalid application of 'sizeof' to an incomplete type 'clang::CXDiagnosticImpl'
90 | static_assert(sizeof(_Tp)>0,
| ^~~~~~~~~~~
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/unique_ptr.h:398:4: note: in instantiation of member function 'std::default_delete<clang::CXDiagnosticImpl>::operator()' requested here
398 | get_deleter()(std::move(__ptr));
| ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/stl_construct.h:88:15: note: in instantiation of member function 'std::unique_ptr<clang::CXDiagnosticImpl>::~unique_ptr' requested here
88 | __location->~_Tp();
| ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/stl_construct.h:164:12: note: in instantiation of function template specialization 'std::destroy_at<std::unique_ptr<clang::CXDiagnosticImpl>>' requested here
164 | std::destroy_at(__pointer);
| ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/stl_construct.h:226:9: note: in instantiation of function template specialization 'std::_Destroy<std::unique_ptr<clang::CXDiagnosticImpl>>' requested here
226 | std::_Destroy(std::__addressof(*__first));
| ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/alloc_traits.h:1045:12: note: in instantiation of function template specialization 'std::_Destroy<std::unique_ptr<clang::CXDiagnosticImpl> *>' requested here
1045 | std::_Destroy(__first, __last);
| ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/stl_vector.h:802:7: note: in instantiation of function template specialization 'std::_Destroy<std::unique_ptr<clang::CXDiagnosticImpl> *, std::unique_ptr<clang::CXDiagnosticImpl>>' requested here
802 | std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang/tools/libclang/CIndexDiagnostic.h:32:3: note: in instantiation of member function 'std::vector<std::unique_ptr<clang::CXDiagnosticImpl>>::~vector' requested here
32 | CXDiagnosticSetImpl(bool isManaged = false)
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang/tools/libclang/CIndexDiagnostic.h:25:7: note: forward declaration of 'clang::CXDiagnosticImpl'
25 | class CXDiagnosticImpl;
| ^
1 error generated.
```
<span id="issue9"></span>
### 9. unique_ptr requires complete type
Same as [8](#issue8)
<span id="issue10"></span>
### 10. make_unique requires complete type
```bash
[409/1926] Building CXX object tools/clang/tools/extra/clangd/CMakeFiles/obj.clangDaemon.dir/GlobalCompilationDatabase.cpp.o
FAILED: [code=1] tools/clang/tools/extra/clangd/CMakeFiles/obj.clangDaemon.dir/GlobalCompilationDatabase.cpp.o
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-built/bin/clang++ -D_GLIBCXX_USE_CXX11_ABI=1 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/tools/clang/tools/extra/clangd -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang-tools-extra/clangd -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang-tools-extra/clangd/../include-cleaner/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/tools/clang/tools/extra/clangd/../clang-tidy -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/tools/clang/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -std=c++23 -fno-exceptions -funwind-tables -fno-rtti -MD -MT tools/clang/tools/extra/clangd/CMakeFiles/obj.clangDaemon.dir/GlobalCompilationDatabase.cpp.o -MF tools/clang/tools/extra/clangd/CMakeFiles/obj.clangDaemon.dir/GlobalCompilationDatabase.cpp.o.d -o tools/clang/tools/extra/clangd/CMakeFiles/obj.clangDaemon.dir/GlobalCompilationDatabase.cpp.o -c /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang-tools-extra/clangd/GlobalCompilationDatabase.cpp
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang-tools-extra/clangd/GlobalCompilationDatabase.cpp:9:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang-tools-extra/clangd/GlobalCompilationDatabase.h:12:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang-tools-extra/clangd/ProjectModules.h:12:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang-tools-extra/clangd/support/Function.h:16:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:36:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:20:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/STLExtras.h:37:
In file included from /usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/memory:80:
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/unique_ptr.h:1084:34: error: allocation of incomplete type 'clang::clangd::DirectoryBasedGlobalCompilationDatabase::BroadcastThread'
1084 | { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }
| ^~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang-tools-extra/clangd/GlobalCompilationDatabase.cpp:355:24: note: in instantiation of function template specialization 'std::make_unique<clang::clangd::DirectoryBasedGlobalCompilationDatabase::BroadcastThread, clang::clangd::DirectoryBasedGlobalCompilationDatabase &>' requested here
355 | Broadcaster(std::make_unique<BroadcastThread>(*this)) {
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang-tools-extra/clangd/GlobalCompilationDatabase.h:181:9: note: forward declaration of 'clang::clangd::DirectoryBasedGlobalCompilationDatabase::BroadcastThread'
181 | class BroadcastThread;
| ^
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang-tools-extra/clangd/GlobalCompilationDatabase.cpp:9:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang-tools-extra/clangd/GlobalCompilationDatabase.h:12:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang-tools-extra/clangd/ProjectModules.h:12:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang-tools-extra/clangd/support/Function.h:16:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:36:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:20:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/STLExtras.h:37:
In file included from /usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/memory:80:
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/unique_ptr.h:90:16: error: invalid application of 'sizeof' to an incomplete type 'clang::clangd::DirectoryBasedGlobalCompilationDatabase::BroadcastThread'
90 | static_assert(sizeof(_Tp)>0,
| ^~~~~~~~~~~
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/unique_ptr.h:398:4: note: in instantiation of member function 'std::default_delete<clang::clangd::DirectoryBasedGlobalCompilationDatabase::BroadcastThread>::operator()' requested here
398 | get_deleter()(std::move(__ptr));
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang-tools-extra/clangd/GlobalCompilationDatabase.cpp:355:19: note: in instantiation of member function 'std::unique_ptr<clang::clangd::DirectoryBasedGlobalCompilationDatabase::BroadcastThread>::~unique_ptr' requested here
355 | Broadcaster(std::make_unique<BroadcastThread>(*this)) {
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/clang-tools-extra/clangd/GlobalCompilationDatabase.h:181:9: note: forward declaration of 'clang::clangd::DirectoryBasedGlobalCompilationDatabase::BroadcastThread'
181 | class BroadcastThread;
| ^
2 errors generated.
```
<span id="issue11"></span>
### 11. unique_ptr requires complete type
```bash
In file included from /usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/memory:80:
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/unique_ptr.h:90:16: error: invalid application of 'sizeof' to an incomplete type 'lldb_private::EmulateInstruction'
90 | static_assert(sizeof(_Tp)>0,
| ^~~~~~~~~~~
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/unique_ptr.h:398:4: note: in instantiation of member function 'std::default_delete<lldb_private::EmulateInstruction>::operator()' requested here
398 | get_deleter()(std::move(__ptr));
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/include/lldb/Core/EmulateInstruction.h:43:3: note: in instantiation of member function 'std::unique_ptr<lldb_private::EmulateInstruction>::~unique_ptr' requested here
43 | SingleStepBreakpointLocationsPredictor(
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/include/lldb/lldb-forward.h:83:7: note: forward declaration of 'lldb_private::EmulateInstruction'
83 | class EmulateInstruction;
| ^
1 error generated.
```
<span id="issue12"></span>
### 12. unique_ptr requires complete type
Same as [11](#issue11)
<span id="issue13"></span>
### 13. Cannot convert nullopt to nullptr
```bash
FAILED: [code=1] tools/lldb/source/Target/CMakeFiles/lldbTarget.dir/Target.cpp.o
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-built/bin/clang++ -DHAVE_ROUND -D_GLIBCXX_USE_CXX11_ABI=1 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/tools/lldb/source/Target -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/source/Target -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/tools/lldb/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/../clang/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/tools/lldb/../clang/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/source -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/tools/lldb/source -isystem /usr/include/libxml2 -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wno-unknown-pragmas -Wno-strict-aliasing -Wno-vla-extension -O3 -DNDEBUG -std=c++23 -fno-exceptions -funwind-tables -fno-rtti -MD -MT tools/lldb/source/Target/CMakeFiles/lldbTarget.dir/Target.cpp.o -MF tools/lldb/source/Target/CMakeFiles/lldbTarget.dir/Target.cpp.o.d -o tools/lldb/source/Target/CMakeFiles/lldbTarget.dir/Target.cpp.o -c /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/source/Target/Target.cpp
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/source/Target/Target.cpp:18:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/include/lldb/Breakpoint/BreakpointResolverScripted.h:15:
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/include/lldb/Interpreter/Interfaces/ScriptedBreakpointInterface.h:28:62: error: no viable conversion from returned value of type 'std::nullptr_t' to function return type 'std::optional<std::string>' (aka 'std::optional<basic_string<char>>')
28 | virtual std::optional<std::string> GetShortHelp() { return nullptr; }
| ^~~~~~~
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/optional:778:11: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'std::nullptr_t' to 'const optional<std::basic_string<char>> &' for 1st argument
778 | class optional
| ^~~~~~~~
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/optional:778:11: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'std::nullptr_t' to 'optional<std::basic_string<char>> &&' for 1st argument
778 | class optional
| ^~~~~~~~
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/optional:864:17: note: candidate constructor not viable: no known conversion from 'std::nullptr_t' to 'nullopt_t' for 1st argument
864 | constexpr optional(nullopt_t) noexcept { }
| ^ ~~~~~~~~~
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/optional:874:2: note: candidate template ignored: constraints not satisfied [with _Up = std::nullptr_t]
874 | optional(_Up&& __t)
| ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/optional:871:7: note: because 'is_constructible_v<std::basic_string<char>, std::nullptr_t>' evaluated to false
871 | && is_constructible_v<_Tp, _Up>
| ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/optional:871:7: error: call to deleted constructor of 'std::basic_string<char>'
871 | && is_constructible_v<_Tp, _Up>
| ^~~~~~~~~~~~~~~~~~
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/basic_string.h:835:7: note: 'basic_string' has been explicitly marked deleted here
835 | basic_string(nullptr_t) = delete;
| ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/basic_string.h:94:11: note: 'basic_string<char>' defined here
94 | class basic_string
| ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/optional:883:2: note: candidate template ignored: could not match 'optional<_Up>' against 'std::nullptr_t'
883 | optional(const optional<_Up>& __t)
| ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/optional:895:2: note: candidate template ignored: could not match 'optional<_Up>' against 'std::nullptr_t'
895 | optional(optional<_Up>&& __t)
| ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/optional:905:2: note: explicit constructor is not a candidate
905 | optional(in_place_t, _Args&&... __args)
| ^
2 errors generated.
[166/3391] Building CXX object tools/lldb/source/Symbol/CMakeFiles/lldbSymbol.dir/Symbol.cpp.o
ninja: build stopped: subcommand failed.
```
<span id="issue14"></span>
### 14. unique_ptr requires complete type
```bash
In file included from /usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/memory:80:
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/unique_ptr.h:90:16: error: invalid application of 'sizeof' to an incomplete type 'lldb_private::ASTStructExtractor'
90 | static_assert(sizeof(_Tp)>0,
| ^~~~~~~~~~~
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/unique_ptr.h:398:4: note: in instantiation of member function 'std::default_delete<lldb_private::ASTStructExtractor>::operator()' requested here
398 | get_deleter()(std::move(__ptr));
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.h:60:9: note: in instantiation of member function 'std::unique_ptr<lldb_private::ASTStructExtractor>::~unique_ptr' requested here
60 | class ClangFunctionCallerHelper
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.h:60:9: note: in implicit destructor for 'lldb_private::ClangFunctionCaller::ClangFunctionCallerHelper' first required here
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/include/lldb/lldb-forward.h:19:7: note: forward declaration of 'lldb_private::ASTStructExtractor'
19 | class ASTStructExtractor;
| ^
1 error generated.
```
<span id="issue15"></span>
### 15. unique_ptr requires complete type
```bash
FAILED: [code=1] tools/lldb/source/Plugins/ExpressionParser/Clang/CMakeFiles/lldbPluginExpressionParserClang.dir/ClangUtilityFunction.cpp.o
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-built/bin/clang++ -DHAVE_ROUND -D_GLIBCXX_USE_CXX11_ABI=1 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/tools/lldb/source/Plugins/ExpressionParser/Clang -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/source/Plugins/ExpressionParser/Clang -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/tools/lldb/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/../clang/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/tools/lldb/../clang/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/source -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/tools/lldb/source -isystem /usr/include/libxml2 -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wno-unknown-pragmas -Wno-strict-aliasing -Wno-vla-extension -O3 -DNDEBUG -std=c++23 -fno-exceptions -funwind-tables -fno-rtti -MD -MT tools/lldb/source/Plugins/ExpressionParser/Clang/CMakeFiles/lldbPluginExpressionParserClang.dir/ClangUtilityFunction.cpp.o -MF tools/lldb/source/Plugins/ExpressionParser/Clang/CMakeFiles/lldbPluginExpressionParserClang.dir/ClangUtilityFunction.cpp.o.d -o tools/lldb/source/Plugins/ExpressionParser/Clang/CMakeFiles/lldbPluginExpressionParserClang.dir/ClangUtilityFunction.cpp.o -c /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.cpp
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.cpp:9:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.h:16:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionHelper.h:16:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/include/lldb/Expression/ExpressionTypeSystemHelper.h:13:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/Support/Casting.h:20:
In file included from /usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/memory:80:
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/unique_ptr.h:90:16: error: invalid application of 'sizeof' to an incomplete type 'lldb_private::ClangExpressionDeclMap'
90 | static_assert(sizeof(_Tp)>0,
| ^~~~~~~~~~~
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/unique_ptr.h:398:4: note: in instantiation of member function 'std::default_delete<lldb_private::ClangExpressionDeclMap>::operator()' requested here
398 | get_deleter()(std::move(__ptr));
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.h:75:9: note: in instantiation of member function 'std::unique_ptr<lldb_private::ClangExpressionDeclMap>::~unique_ptr' requested here
75 | class ClangUtilityFunctionHelper
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.h:75:9: note: in implicit destructor for 'lldb_private::ClangUtilityFunction::ClangUtilityFunctionHelper' first required here
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionHelper.h:26:7: note: forward declaration of 'lldb_private::ClangExpressionDeclMap'
26 | class ClangExpressionDeclMap;
| ^
1 error generated.
[148/2012] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/CodeViewDebug.cpp.o
ninja: build stopped: subcommand failed.
```
<span id="issue16"></span>
### 16. unique_ptr requires complete type
```bash
In file included from /usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/memory:80:
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/unique_ptr.h:90:16: error: invalid application of 'sizeof' to an incomplete type 'lldb_private::ASTStructExtractor'
90 | static_assert(sizeof(_Tp)>0,
| ^~~~~~~~~~~
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/unique_ptr.h:398:4: note: in instantiation of member function 'std::default_delete<lldb_private::ASTStructExtractor>::operator()' requested here
398 | get_deleter()(std::move(__ptr));
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.h:60:9: note: in instantiation of member function 'std::unique_ptr<lldb_private::ASTStructExtractor>::~unique_ptr' requested here
60 | class ClangFunctionCallerHelper
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.h:60:9: note: in implicit destructor for 'lldb_private::ClangFunctionCaller::ClangFunctionCallerHelper' first required here
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/include/lldb/lldb-forward.h:19:7: note: forward declaration of 'lldb_private::ASTStructExtractor'
19 | class ASTStructExtractor;
| ^
1 error generated.
```
<span id="issue17"></span>
### 17. unique_ptr requires complete type
Same as [16](#issue16)
<span id="issue18"></span>
### 18. unique_ptr requires complete type
```bash
[115/2012] Building CXX object tools/lldb/source/Plugins/ExpressionParser/Clang/CMakeFiles/lldbPluginExpressionParserClang.dir/ClangUtilityFunction.cpp.o
FAILED: [code=1] tools/lldb/source/Plugins/ExpressionParser/Clang/CMakeFiles/lldbPluginExpressionParserClang.dir/ClangUtilityFunction.cpp.o
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-built/bin/clang++ -DHAVE_ROUND -D_GLIBCXX_USE_CXX11_ABI=1 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/tools/lldb/source/Plugins/ExpressionParser/Clang -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/source/Plugins/ExpressionParser/Clang -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/tools/lldb/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/../clang/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/tools/lldb/../clang/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/source -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/tools/lldb/source -isystem /usr/include/libxml2 -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wno-unknown-pragmas -Wno-strict-aliasing -Wno-vla-extension -O3 -DNDEBUG -std=c++23 -fno-exceptions -funwind-tables -fno-rtti -MD -MT tools/lldb/source/Plugins/ExpressionParser/Clang/CMakeFiles/lldbPluginExpressionParserClang.dir/ClangUtilityFunction.cpp.o -MF tools/lldb/source/Plugins/ExpressionParser/Clang/CMakeFiles/lldbPluginExpressionParserClang.dir/ClangUtilityFunction.cpp.o.d -o tools/lldb/source/Plugins/ExpressionParser/Clang/CMakeFiles/lldbPluginExpressionParserClang.dir/ClangUtilityFunction.cpp.o -c /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.cpp
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.cpp:9:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.h:16:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionHelper.h:16:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/include/lldb/Expression/ExpressionTypeSystemHelper.h:13:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/Support/Casting.h:20:
In file included from /usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/memory:80:
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/unique_ptr.h:90:16: error: invalid application of 'sizeof' to an incomplete type 'lldb_private::ClangExpressionDeclMap'
90 | static_assert(sizeof(_Tp)>0,
| ^~~~~~~~~~~
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/unique_ptr.h:398:4: note: in instantiation of member function 'std::default_delete<lldb_private::ClangExpressionDeclMap>::operator()' requested here
398 | get_deleter()(std::move(__ptr));
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.h:75:9: note: in instantiation of member function 'std::unique_ptr<lldb_private::ClangExpressionDeclMap>::~unique_ptr' requested here
75 | class ClangUtilityFunctionHelper
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.h:75:9: note: in implicit destructor for 'lldb_private::ClangUtilityFunction::ClangUtilityFunctionHelper' first required here
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionHelper.h:26:7: note: forward declaration of 'lldb_private::ClangExpressionDeclMap'
26 | class ClangExpressionDeclMap;
| ^
1 error generated.
[148/2012] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/CodeViewDebug.cpp.o
ninja: build stopped: subcommand failed.
```
<span id="issue19"></span>
### 19. unique_ptr requires complete type
Same as [18](#issue18)
<span id="issue20"></span>
### 20. vector/ArrayRef requires complete type
```bash
[38/2024] Building CXX object tools/mlir/lib/Query/Matcher/CMakeFiles/obj.MLIRQueryMatcher.dir/MatchFinder.cpp.o
FAILED: [code=1] tools/mlir/lib/Query/Matcher/CMakeFiles/obj.MLIRQueryMatcher.dir/MatchFinder.cpp.o
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project-built/bin/clang++ -D_GLIBCXX_USE_CXX11_ABI=1 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/tools/mlir/lib/Query/Matcher -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/lib/Query/Matcher -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/tools/mlir/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/build-final/include -I/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wundef -Werror=mismatched-tags -Werror=global-constructors -O3 -DNDEBUG -std=c++23 -fno-exceptions -funwind-tables -fno-rtti -MD -MT tools/mlir/lib/Query/Matcher/CMakeFiles/obj.MLIRQueryMatcher.dir/MatchFinder.cpp.o -MF tools/mlir/lib/Query/Matcher/CMakeFiles/obj.MLIRQueryMatcher.dir/MatchFinder.cpp.o.d -o tools/mlir/lib/Query/Matcher/CMakeFiles/obj.MLIRQueryMatcher.dir/MatchFinder.cpp.o -c /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/lib/Query/Matcher/MatchFinder.cpp
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/lib/Query/Matcher/MatchFinder.cpp:13:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/Query/Matcher/MatchFinder.h:17:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/Query/Matcher/MatchersInternal.h:24:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/IR/Matchers.h:18:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/IR/BuiltinAttributes.h:12:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/IR/BuiltinAttributeInterfaces.h:12:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/IR/AffineMap.h:17:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/IR/AffineExpr.h:17:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/IR/Visitors.h:18:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/STLExtras.h:21:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/Hashing.h:51:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/Support/SwapByteOrder.h:17:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/STLForwardCompat.h:21:
In file included from /usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/functional:66:
In file included from /usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/vector:68:
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/stl_vector.h:376:35: error: arithmetic on a pointer to an incomplete type 'mlir::query::matcher::DynMatcher'
376 | _M_impl._M_end_of_storage - _M_impl._M_start);
| ~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/stl_vector.h:650:7: note: in instantiation of member function 'std::_Vector_base<mlir::query::matcher::DynMatcher, std::allocator<mlir::query::matcher::DynMatcher>>::~_Vector_base' requested here
650 | vector(vector&&) noexcept = default;
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/Query/Matcher/MatchersInternal.h:106:9: note: in defaulted move constructor for 'std::vector<mlir::query::matcher::DynMatcher>' first required here
106 | : matchers(std::move(matchers)) {}
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/Query/Matcher/MatchersInternal.h:28:7: note: forward declaration of 'mlir::query::matcher::DynMatcher'
28 | class DynMatcher;
| ^
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/lib/Query/Matcher/MatchFinder.cpp:13:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/Query/Matcher/MatchFinder.h:17:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/Query/Matcher/MatchersInternal.h:24:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/IR/Matchers.h:18:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/IR/BuiltinAttributes.h:12:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/IR/BuiltinAttributeInterfaces.h:12:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/IR/AffineMap.h:17:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/IR/AffineExpr.h:17:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/IR/Visitors.h:18:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/STLExtras.h:21:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/Hashing.h:51:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/Support/SwapByteOrder.h:17:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/STLForwardCompat.h:21:
In file included from /usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/functional:66:
In file included from /usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/vector:68:
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/stl_vector.h:1119:44: error: arithmetic on a pointer to an incomplete type 'mlir::query::matcher::DynMatcher'
1119 | ptrdiff_t __dif = this->_M_impl._M_finish - this->_M_impl._M_start;
| ~~~~~~~~~~~~~~~~~~~~~~~ ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:95:36: note: in instantiation of member function 'std::vector<mlir::query::matcher::DynMatcher>::size' requested here
95 | : Data(V.data()), Length(V.size()) {}
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/Query/Matcher/MatchersInternal.h:108:65: note: in instantiation of function template specialization 'llvm::ArrayRef<mlir::query::matcher::DynMatcher>::ArrayRef<std::vector<mlir::query::matcher::DynMatcher>, void>' requested here
108 | bool match(Operation *op) override { return Func(op, nullptr, matchers); }
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/Query/Matcher/MatchersInternal.h:28:7: note: forward declaration of 'mlir::query::matcher::DynMatcher'
28 | class DynMatcher;
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/Query/Matcher/MatchersInternal.h:110:34: error: no viable conversion from 'std::vector<DynMatcher>' to 'ArrayRef<DynMatcher>'
110 | return Func(op, &matchedOps, matchers);
| ^~~~~~~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:40:40: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'std::vector<DynMatcher>' to 'const ArrayRef<mlir::query::matcher::DynMatcher> &' for 1st argument
40 | class LLVM_GSL_POINTER [[nodiscard]] ArrayRef {
| ^~~~~~~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:40:40: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'std::vector<DynMatcher>' to 'ArrayRef<mlir::query::matcher::DynMatcher> &&' for 1st argument
40 | class LLVM_GSL_POINTER [[nodiscard]] ArrayRef {
| ^~~~~~~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:69:18: note: candidate constructor not viable: no known conversion from 'std::vector<DynMatcher>' to 'const mlir::query::matcher::DynMatcher &' for 1st argument
69 | /*implicit*/ ArrayRef(const T &OneElt LLVM_LIFETIME_BOUND)
| ^ ~~~~~~~~~~~~~~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:110:28: note: candidate constructor not viable: no known conversion from 'std::vector<DynMatcher>' to 'std::initializer_list<mlir::query::matcher::DynMatcher>' for 1st argument
110 | constexpr /*implicit*/ ArrayRef(
| ^
111 | std::initializer_list<T> Vec LLVM_LIFETIME_BOUND)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:94:28: note: candidate template ignored: substitution failure [with C = std::vector<DynMatcher>]
94 | /*implicit*/ constexpr ArrayRef(const C &V)
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:99:28: note: candidate template ignored: could not match 'mlir::query::matcher::DynMatcher[N]' against 'std::vector<DynMatcher>'
99 | /*implicit*/ constexpr ArrayRef(const T (&Arr LLVM_LIFETIME_BOUND)[N])
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:123:5: note: candidate template ignored: could not match 'iterator_range' against 'std::vector'
123 | ArrayRef(const iterator_range<U *> &Range)
| ^
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/lib/Query/Matcher/MatchFinder.cpp:13:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/Query/Matcher/MatchFinder.h:17:
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/Query/Matcher/MatchersInternal.h:108:65: error: no viable conversion from 'std::vector<DynMatcher>' to 'ArrayRef<DynMatcher>'
108 | bool match(Operation *op) override { return Func(op, nullptr, matchers); }
| ^~~~~~~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/Query/Matcher/MatchersInternal.h:105:3: note: in instantiation of member function 'mlir::query::matcher::VariadicMatcher<&mlir::query::matcher::internal::allOfVariadicOperator>::match' requested here
105 | VariadicMatcher(std::vector<DynMatcher> matchers)
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/Query/Matcher/MatchersInternal.h:140:15: note: in instantiation of member function 'mlir::query::matcher::VariadicMatcher<&mlir::query::matcher::internal::allOfVariadicOperator>::VariadicMatcher' requested here
140 | new VariadicMatcher<internal::allOfVariadicOperator>(
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:40:40: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'std::vector<DynMatcher>' to 'const ArrayRef<mlir::query::matcher::DynMatcher> &' for 1st argument
40 | class LLVM_GSL_POINTER [[nodiscard]] ArrayRef {
| ^~~~~~~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:40:40: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'std::vector<DynMatcher>' to 'ArrayRef<mlir::query::matcher::DynMatcher> &&' for 1st argument
40 | class LLVM_GSL_POINTER [[nodiscard]] ArrayRef {
| ^~~~~~~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:69:18: note: candidate constructor not viable: no known conversion from 'std::vector<DynMatcher>' to 'const mlir::query::matcher::DynMatcher &' for 1st argument
69 | /*implicit*/ ArrayRef(const T &OneElt LLVM_LIFETIME_BOUND)
| ^ ~~~~~~~~~~~~~~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:110:28: note: candidate constructor not viable: no known conversion from 'std::vector<DynMatcher>' to 'std::initializer_list<mlir::query::matcher::DynMatcher>' for 1st argument
110 | constexpr /*implicit*/ ArrayRef(
| ^
111 | std::initializer_list<T> Vec LLVM_LIFETIME_BOUND)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:94:28: note: candidate template ignored: substitution failure [with C = std::vector<DynMatcher>]
94 | /*implicit*/ constexpr ArrayRef(const C &V)
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:99:28: note: candidate template ignored: could not match 'mlir::query::matcher::DynMatcher[N]' against 'std::vector<DynMatcher>'
99 | /*implicit*/ constexpr ArrayRef(const T (&Arr LLVM_LIFETIME_BOUND)[N])
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:123:5: note: candidate template ignored: could not match 'iterator_range' against 'std::vector'
123 | ArrayRef(const iterator_range<U *> &Range)
| ^
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/lib/Query/Matcher/MatchFinder.cpp:13:
In file included from /run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/Query/Matcher/MatchFinder.h:17:
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/Query/Matcher/MatchersInternal.h:108:65: error: no viable conversion from 'std::vector<DynMatcher>' to 'ArrayRef<DynMatcher>'
108 | bool match(Operation *op) override { return Func(op, nullptr, matchers); }
| ^~~~~~~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/Query/Matcher/MatchersInternal.h:105:3: note: in instantiation of member function 'mlir::query::matcher::VariadicMatcher<&mlir::query::matcher::internal::anyOfVariadicOperator>::match' requested here
105 | VariadicMatcher(std::vector<DynMatcher> matchers)
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/mlir/include/mlir/Query/Matcher/MatchersInternal.h:144:15: note: in instantiation of member function 'mlir::query::matcher::VariadicMatcher<&mlir::query::matcher::internal::anyOfVariadicOperator>::VariadicMatcher' requested here
144 | new VariadicMatcher<internal::anyOfVariadicOperator>(
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:40:40: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'std::vector<DynMatcher>' to 'const ArrayRef<mlir::query::matcher::DynMatcher> &' for 1st argument
40 | class LLVM_GSL_POINTER [[nodiscard]] ArrayRef {
| ^~~~~~~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:40:40: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'std::vector<DynMatcher>' to 'ArrayRef<mlir::query::matcher::DynMatcher> &&' for 1st argument
40 | class LLVM_GSL_POINTER [[nodiscard]] ArrayRef {
| ^~~~~~~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:69:18: note: candidate constructor not viable: no known conversion from 'std::vector<DynMatcher>' to 'const mlir::query::matcher::DynMatcher &' for 1st argument
69 | /*implicit*/ ArrayRef(const T &OneElt LLVM_LIFETIME_BOUND)
| ^ ~~~~~~~~~~~~~~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:110:28: note: candidate constructor not viable: no known conversion from 'std::vector<DynMatcher>' to 'std::initializer_list<mlir::query::matcher::DynMatcher>' for 1st argument
110 | constexpr /*implicit*/ ArrayRef(
| ^
111 | std::initializer_list<T> Vec LLVM_LIFETIME_BOUND)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:94:28: note: candidate template ignored: substitution failure [with C = std::vector<DynMatcher>]
94 | /*implicit*/ constexpr ArrayRef(const C &V)
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:99:28: note: candidate template ignored: could not match 'mlir::query::matcher::DynMatcher[N]' against 'std::vector<DynMatcher>'
99 | /*implicit*/ constexpr ArrayRef(const T (&Arr LLVM_LIFETIME_BOUND)[N])
| ^
/run/media/ppqwqqq/22254a39-a5f0-4e28-93d1-96678a650d53/recover_hq1024/llvm/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:123:5: note: candidate template ignored: could not match 'iterator_range' against 'std::vector'
123 | ArrayRef(const iterator_range<U *> &Range)
| ^
5 errors generated.
```
<span id="issue21"></span>
### 21. Explicit template instantiation
Same as [20](#issue20)
https://github.com/llvm/llvm-project/pull/182522
More information about the llvm-commits
mailing list