[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