<div dir="ltr">Hi,<div><br></div><div>I just did an llvm build from source and here's what I hit. I am trying to build  projects "mlir;clang;openmp;flang".<br></div><div><br></div><div>Steps Followed:</div><div>- git clone <a href="https://github.com/llvm/llvm-project.git">https://github.com/llvm/llvm-project.git</a><br></div><div>- cmake -DLLVM_ENABLE_PROJECTS="mlir;clang;openmp;flang"  -DCMAKE_C_COMPILER=/usr/local/bin/gcc -DCMAKE_CXX_COMPILER=/usr/local/bin/g++ -G "Unix Makefiles" -DLLVM_USE_LINKER=gold -DCMAKE_BUILD_TYPE=Debug ../llvm/</div><div>- make</div><div><br></div><div>[root@localhost build]# /usr/local/bin/g++ -v<br>Using built-in specs.<br>COLLECT_GCC=/usr/local/bin/g++<br>COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/7.3.0/lto-wrapper<br>Target: x86_64-pc-linux-gnu<br>Configured with: ./configure --disable-multilib --enable-languages=c,c++,fortran<br>Thread model: posix<br>gcc version 7.3.0 (GCC) <br>[root@localhost build]# /usr/local/bin/gcc -v<br>Using built-in specs.<br>COLLECT_GCC=/usr/local/bin/gcc<br>COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/7.3.0/lto-wrapper<br>Target: x86_64-pc-linux-gnu<br>Configured with: ./configure --disable-multilib --enable-languages=c,c++,fortran<br>Thread model: posix<br>gcc version 7.3.0 (GCC) <br>[root@localhost build]# <br></div><div><br></div><div><br></div><div>Scanning dependencies of target MLIRAnalysis<br></div><div>[ 71%] Building CXX object tools/mlir/lib/Analysis/CMakeFiles/MLIRAnalysis.dir/CallGraph.cpp.o<br>[ 71%] Building CXX object tools/mlir/lib/Analysis/CMakeFiles/MLIRAnalysis.dir/Liveness.cpp.o<br>[ 71%] Building CXX object tools/mlir/lib/Analysis/CMakeFiles/MLIRAnalysis.dir/SliceAnalysis.cpp.o<br>[ 71%] Building CXX object tools/mlir/lib/Analysis/CMakeFiles/MLIRAnalysis.dir/Dominance.cpp.o<br>In file included from /root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/STLExtras.h:20:0,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/Support/STLExtras.h:18,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/StorageUniquerSupport.h:17,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/TypeSupport.h:17,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Types.h:12,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Value.h:16,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/BlockSupport.h:16,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Block.h:16,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Region.h:16,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/RegionGraphTraits.h:18,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/Analysis/Dominance.h:12,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/lib/Analysis/Dominance.cpp:14:<br>/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/iterator.h: In instantiation of ‘NodeRef& llvm::WrappedPairNodeDataIterator<ItType, NodeRef, DataRef>::operator*() const [with ItType = mlir::PredecessorIterator; NodeRef = std::pair<const llvm::GraphDiff<mlir::Block*, true>*, mlir::Block*>; DataRef = const llvm::GraphDiff<mlir::Block*, true>*]’:<br>/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/STLExtras.h:315:36:   required from ‘void llvm::filter_iterator_base<WrappedIteratorT, PredicateT, IterTag>::findNextValid() [with WrappedIteratorT = llvm::WrappedPairNodeDataIterator<mlir::PredecessorIterator, std::pair<const llvm::GraphDiff<mlir::Block*, true>*, mlir::Block*>, const llvm::GraphDiff<mlir::Block*, true>*>; PredicateT = llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::children(llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef) [with GraphT = llvm::Inverse<mlir::Block*>; bool InverseGraph = true; bool InverseEdge = true; GT = llvm::GraphTraits<llvm::Inverse<mlir::Block*> >; llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef = std::pair<const llvm::GraphDiff<mlir::Block*, true>*, mlir::Block*>; typename GT::NodeRef = mlir::Block*]::<lambda(llvm::CFGViewChildren<llvm::Inverse<mlir::Block*>, true, true, llvm::GraphTraits<llvm::Inverse<mlir::Block*> > >::NodeRef)>; IterTag = std::forward_iterator_tag]’<br>/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/STLExtras.h:325:18:   required from ‘llvm::filter_iterator_base<WrappedIteratorT, PredicateT, IterTag>::filter_iterator_base(WrappedIteratorT, WrappedIteratorT, PredicateT) [with WrappedIteratorT = llvm::WrappedPairNodeDataIterator<mlir::PredecessorIterator, std::pair<const llvm::GraphDiff<mlir::Block*, true>*, mlir::Block*>, const llvm::GraphDiff<mlir::Block*, true>*>; PredicateT = llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::children(llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef) [with GraphT = llvm::Inverse<mlir::Block*>; bool InverseGraph = true; bool InverseEdge = true; GT = llvm::GraphTraits<llvm::Inverse<mlir::Block*> >; llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef = std::pair<const llvm::GraphDiff<mlir::Block*, true>*, mlir::Block*>; typename GT::NodeRef = mlir::Block*]::<lambda(llvm::CFGViewChildren<llvm::Inverse<mlir::Block*>, true, true, llvm::GraphTraits<llvm::Inverse<mlir::Block*> > >::NodeRef)>; IterTag = std::forward_iterator_tag]’<br>/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/STLExtras.h:348:31:   required from ‘llvm::filter_iterator_impl<WrappedIteratorT, PredicateT, IterTag>::filter_iterator_impl(WrappedIteratorT, WrappedIteratorT, PredicateT) [with WrappedIteratorT = llvm::WrappedPairNodeDataIterator<mlir::PredecessorIterator, std::pair<const llvm::GraphDiff<mlir::Block*, true>*, mlir::Block*>, const llvm::GraphDiff<mlir::Block*, true>*>; PredicateT = llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::children(llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef) [with GraphT = llvm::Inverse<mlir::Block*>; bool InverseGraph = true; bool InverseEdge = true; GT = llvm::GraphTraits<llvm::Inverse<mlir::Block*> >; llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef = std::pair<const llvm::GraphDiff<mlir::Block*, true>*, mlir::Block*>; typename GT::NodeRef = mlir::Block*]::<lambda(llvm::CFGViewChildren<llvm::Inverse<mlir::Block*>, true, true, llvm::GraphTraits<llvm::Inverse<mlir::Block*> > >::NodeRef)>; IterTag = std::forward_iterator_tag]’<br>/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/STLExtras.h:419:7:   required from ‘llvm::iterator_range<llvm::filter_iterator_impl<decltype (std::begin(declval<RangeT&>())), PredicateT, typename llvm::detail::fwd_or_bidi_tag<decltype (std::begin(declval<RangeT&>()))>::type> > llvm::make_filter_range(RangeT&&, PredicateT) [with RangeT = llvm::iterator_range<llvm::WrappedPairNodeDataIterator<mlir::PredecessorIterator, std::pair<const llvm::GraphDiff<mlir::Block*, true>*, mlir::Block*>, const llvm::GraphDiff<mlir::Block*, true>*> >; PredicateT = llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::children(llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef) [with GraphT = llvm::Inverse<mlir::Block*>; bool InverseGraph = true; bool InverseEdge = true; GT = llvm::GraphTraits<llvm::Inverse<mlir::Block*> >; llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef = std::pair<const llvm::GraphDiff<mlir::Block*, true>*, mlir::Block*>; typename GT::NodeRef = mlir::Block*]::<lambda(llvm::CFGViewChildren<llvm::Inverse<mlir::Block*>, true, true, llvm::GraphTraits<llvm::Inverse<mlir::Block*> > >::NodeRef)>; typename llvm::detail::fwd_or_bidi_tag<decltype (std::begin(declval<RangeT&>()))>::type = std::forward_iterator_tag; decltype (std::begin(declval<RangeT&>())) = llvm::WrappedPairNodeDataIterator<mlir::PredecessorIterator, std::pair<const llvm::GraphDiff<mlir::Block*, true>*, mlir::Block*>, const llvm::GraphDiff<mlir::Block*, true>*>]’<br>/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/IR/CFGDiff.h:234:35:   required from ‘static auto llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::children(llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef) [with GraphT = llvm::Inverse<mlir::Block*>; bool InverseGraph = true; bool InverseEdge = true; GT = llvm::GraphTraits<llvm::Inverse<mlir::Block*> >; llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef = std::pair<const llvm::GraphDiff<mlir::Block*, true>*, mlir::Block*>; typename GT::NodeRef = mlir::Block*]’<br>/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/IR/CFGDiff.h:255:20:   [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]<br>/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/Support/GenericDomTreeConstruction.h:885:59:   required from ‘llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::DeleteEdge(DomTreeT&, llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::BatchUpdatePtr, llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::NodePtr, llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::NodePtr)::<lambda(llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::NodePtr, llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::NodePtr)> [with DomTreeT = llvm::DominatorTreeBase<mlir::Block, true>; llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::NodePtr = mlir::Block*]’<br>/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/Support/GenericDomTreeConstruction.h:882:25:   required from ‘struct llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::DeleteEdge(DomTreeT&, llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::BatchUpdatePtr, llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::NodePtr, llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::NodePtr) [with DomTreeT = llvm::DominatorTreeBase<mlir::Block, true>; llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::BatchUpdatePtr = llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<mlir::Block, true> >::BatchUpdateInfo*; llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::NodePtr = mlir::Block*]::<lambda(using NodePtr = using NodePtr = class mlir::Block*, using NodePtr = using NodePtr = class mlir::Block*)>’<br>/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/Support/GenericDomTreeConstruction.h:882:10:   required from ‘static void llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::DeleteEdge(DomTreeT&, llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::BatchUpdatePtr, llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::NodePtr, llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::NodePtr) [with DomTreeT = llvm::DominatorTreeBase<mlir::Block, true>; llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::BatchUpdatePtr = llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<mlir::Block, true> >::BatchUpdateInfo*; llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::NodePtr = mlir::Block*]’<br>/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/Support/GenericDomTreeConstruction.h:1540:36:   required from ‘void llvm::DomTreeBuilder::DeleteEdge(DomTreeT&, typename DomTreeT::NodePtr, typename DomTreeT::NodePtr) [with DomTreeT = llvm::DominatorTreeBase<mlir::Block, true>; typename DomTreeT::NodePtr = mlir::Block*]’<br>/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/Support/GenericDomTree.h:561:31:   required from ‘void llvm::DominatorTreeBase<NodeT, IsPostDom>::deleteEdge(NodeT*, NodeT*) [with NodeT = mlir::Block; bool IsPostDom = true]’<br>/root/LLVM/llvm-project-new/llvm-project/mlir/lib/Analysis/Dominance.cpp:23:22:   required from here<br>/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/iterator.h:366:17: error: passing ‘const mlir::PredecessorIterator’ as ‘this’ argument discards qualifiers [-fpermissive]<br>     NR.second = *this->I;<br>                 ^~~~~~~~<br>In file included from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/Support/STLExtras.h:18:0,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/StorageUniquerSupport.h:17,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/TypeSupport.h:17,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Types.h:12,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Value.h:16,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/BlockSupport.h:16,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Block.h:16,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Region.h:16,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/RegionGraphTraits.h:18,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/Analysis/Dominance.h:12,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/lib/Analysis/Dominance.cpp:14:<br>/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/STLExtras.h:217:16: note:   in call to ‘FuncReturnTy llvm::mapped_iterator<ItTy, FuncTy, FuncReturnTy>::operator*() [with ItTy = mlir::ValueUseIterator<mlir::BlockOperand>; FuncTy = mlir::Block* (*)(mlir::BlockOperand&); FuncReturnTy = mlir::Block*]’<br>   FuncReturnTy operator*() { return F(*this->I); }<br>                ^~~~~~~~<br>In file included from /root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/STLExtras.h:20:0,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/Support/STLExtras.h:18,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/StorageUniquerSupport.h:17,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/TypeSupport.h:17,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Types.h:12,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Value.h:16,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/BlockSupport.h:16,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Block.h:16,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Region.h:16,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/RegionGraphTraits.h:18,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/Analysis/Dominance.h:12,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/lib/Analysis/Dominance.cpp:14:<br>/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/iterator.h: In instantiation of ‘NodeRef& llvm::WrappedPairNodeDataIterator<ItType, NodeRef, DataRef>::operator*() const [with ItType = mlir::PredecessorIterator; NodeRef = std::pair<const llvm::GraphDiff<mlir::Block*, false>*, mlir::Block*>; DataRef = const llvm::GraphDiff<mlir::Block*, false>*]’:<br>/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/STLExtras.h:315:36:   required from ‘void llvm::filter_iterator_base<WrappedIteratorT, PredicateT, IterTag>::findNextValid() [with WrappedIteratorT = llvm::WrappedPairNodeDataIterator<mlir::PredecessorIterator, std::pair<const llvm::GraphDiff<mlir::Block*, false>*, mlir::Block*>, const llvm::GraphDiff<mlir::Block*, false>*>; PredicateT = llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::children(llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef) [with GraphT = llvm::Inverse<mlir::Block*>; bool InverseGraph = false; bool InverseEdge = true; GT = llvm::GraphTraits<llvm::Inverse<mlir::Block*> >; llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef = std::pair<const llvm::GraphDiff<mlir::Block*, false>*, mlir::Block*>; typename GT::NodeRef = mlir::Block*]::<lambda(llvm::CFGViewChildren<llvm::Inverse<mlir::Block*>, false, true, llvm::GraphTraits<llvm::Inverse<mlir::Block*> > >::NodeRef)>; IterTag = std::forward_iterator_tag]’<br>/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/STLExtras.h:325:18:   required from ‘llvm::filter_iterator_base<WrappedIteratorT, PredicateT, IterTag>::filter_iterator_base(WrappedIteratorT, WrappedIteratorT, PredicateT) [with WrappedIteratorT = llvm::WrappedPairNodeDataIterator<mlir::PredecessorIterator, std::pair<const llvm::GraphDiff<mlir::Block*, false>*, mlir::Block*>, const llvm::GraphDiff<mlir::Block*, false>*>; PredicateT = llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::children(llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef) [with GraphT = llvm::Inverse<mlir::Block*>; bool InverseGraph = false; bool InverseEdge = true; GT = llvm::GraphTraits<llvm::Inverse<mlir::Block*> >; llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef = std::pair<const llvm::GraphDiff<mlir::Block*, false>*, mlir::Block*>; typename GT::NodeRef = mlir::Block*]::<lambda(llvm::CFGViewChildren<llvm::Inverse<mlir::Block*>, false, true, llvm::GraphTraits<llvm::Inverse<mlir::Block*> > >::NodeRef)>; IterTag = std::forward_iterator_tag]’<br>/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/STLExtras.h:348:31:   required from ‘llvm::filter_iterator_impl<WrappedIteratorT, PredicateT, IterTag>::filter_iterator_impl(WrappedIteratorT, WrappedIteratorT, PredicateT) [with WrappedIteratorT = llvm::WrappedPairNodeDataIterator<mlir::PredecessorIterator, std::pair<const llvm::GraphDiff<mlir::Block*, false>*, mlir::Block*>, const llvm::GraphDiff<mlir::Block*, false>*>; PredicateT = llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::children(llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef) [with GraphT = llvm::Inverse<mlir::Block*>; bool InverseGraph = false; bool InverseEdge = true; GT = llvm::GraphTraits<llvm::Inverse<mlir::Block*> >; llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef = std::pair<const llvm::GraphDiff<mlir::Block*, false>*, mlir::Block*>; typename GT::NodeRef = mlir::Block*]::<lambda(llvm::CFGViewChildren<llvm::Inverse<mlir::Block*>, false, true, llvm::GraphTraits<llvm::Inverse<mlir::Block*> > >::NodeRef)>; IterTag = std::forward_iterator_tag]’<br>/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/STLExtras.h:419:7:   required from ‘llvm::iterator_range<llvm::filter_iterator_impl<decltype (std::begin(declval<RangeT&>())), PredicateT, typename llvm::detail::fwd_or_bidi_tag<decltype (std::begin(declval<RangeT&>()))>::type> > llvm::make_filter_range(RangeT&&, PredicateT) [with RangeT = llvm::iterator_range<llvm::WrappedPairNodeDataIterator<mlir::PredecessorIterator, std::pair<const llvm::GraphDiff<mlir::Block*, false>*, mlir::Block*>, const llvm::GraphDiff<mlir::Block*, false>*> >; PredicateT = llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::children(llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef) [with GraphT = llvm::Inverse<mlir::Block*>; bool InverseGraph = false; bool InverseEdge = true; GT = llvm::GraphTraits<llvm::Inverse<mlir::Block*> >; llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef = std::pair<const llvm::GraphDiff<mlir::Block*, false>*, mlir::Block*>; typename GT::NodeRef = mlir::Block*]::<lambda(llvm::CFGViewChildren<llvm::Inverse<mlir::Block*>, false, true, llvm::GraphTraits<llvm::Inverse<mlir::Block*> > >::NodeRef)>; typename llvm::detail::fwd_or_bidi_tag<decltype (std::begin(declval<RangeT&>()))>::type = std::forward_iterator_tag; decltype (std::begin(declval<RangeT&>())) = llvm::WrappedPairNodeDataIterator<mlir::PredecessorIterator, std::pair<const llvm::GraphDiff<mlir::Block*, false>*, mlir::Block*>, const llvm::GraphDiff<mlir::Block*, false>*>]’<br>/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/IR/CFGDiff.h:234:35:   required from ‘static auto llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::children(llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef) [with GraphT = llvm::Inverse<mlir::Block*>; bool InverseGraph = false; bool InverseEdge = true; GT = llvm::GraphTraits<llvm::Inverse<mlir::Block*> >; llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef = std::pair<const llvm::GraphDiff<mlir::Block*, false>*, mlir::Block*>; typename GT::NodeRef = mlir::Block*]’<br>/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/IR/CFGDiff.h:255:20:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]<br>/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/GraphTraits.h:121:1:   required by substitution of ‘template<class GraphType> llvm::iterator_range<typename llvm::GraphTraits<GraphType>::ChildIteratorType> llvm::children(const typename llvm::GraphTraits<T>::NodeRef&) [with GraphType = std::pair<const llvm::GraphDiff<mlir::Block*, false>*, llvm::Inverse<mlir::Block*> >]’<br>/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/Support/GenericDomTreeConstruction.h:977:56:   required from ‘static bool llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::HasProperSupport(DomTreeT&, llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::BatchUpdatePtr, llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::TreeNodePtr) [with DomTreeT = llvm::DominatorTreeBase<mlir::Block, false>; llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::BatchUpdatePtr = llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<mlir::Block, false> >::BatchUpdateInfo*; llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::TreeNodePtr = llvm::DomTreeNodeBase<mlir::Block>*; typename DomTreeT::NodeType = mlir::Block]’<br>/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/Support/GenericDomTreeConstruction.h:919:47:   required from ‘static void llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::DeleteEdge(DomTreeT&, llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::BatchUpdatePtr, llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::NodePtr, llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::NodePtr) [with DomTreeT = llvm::DominatorTreeBase<mlir::Block, false>; llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::BatchUpdatePtr = llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<mlir::Block, false> >::BatchUpdateInfo*; llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::NodePtr = mlir::Block*]’<br>/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/Support/GenericDomTreeConstruction.h:1540:36:   required from ‘void llvm::DomTreeBuilder::DeleteEdge(DomTreeT&, typename DomTreeT::NodePtr, typename DomTreeT::NodePtr) [with DomTreeT = llvm::DominatorTreeBase<mlir::Block, false>; typename DomTreeT::NodePtr = mlir::Block*]’<br>/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/Support/GenericDomTree.h:561:31:   required from ‘void llvm::DominatorTreeBase<NodeT, IsPostDom>::deleteEdge(NodeT*, NodeT*) [with NodeT = mlir::Block; bool IsPostDom = false]’<br>/root/LLVM/llvm-project-new/llvm-project/mlir/lib/Analysis/Dominance.cpp:22:22:   required from here<br>/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/iterator.h:366:17: error: passing ‘const mlir::PredecessorIterator’ as ‘this’ argument discards qualifiers [-fpermissive]<br>     NR.second = *this->I;<br>                 ^~~~~~~~<br>In file included from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/Support/STLExtras.h:18:0,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/StorageUniquerSupport.h:17,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/TypeSupport.h:17,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Types.h:12,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Value.h:16,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/BlockSupport.h:16,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Block.h:16,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Region.h:16,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/RegionGraphTraits.h:18,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/Analysis/Dominance.h:12,<br>                 from /root/LLVM/llvm-project-new/llvm-project/mlir/lib/Analysis/Dominance.cpp:14:<br>/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/STLExtras.h:217:16: note:   in call to ‘FuncReturnTy llvm::mapped_iterator<ItTy, FuncTy, FuncReturnTy>::operator*() [with ItTy = mlir::ValueUseIterator<mlir::BlockOperand>; FuncTy = mlir::Block* (*)(mlir::BlockOperand&); FuncReturnTy = mlir::Block*]’<br>   FuncReturnTy operator*() { return F(*this->I); }<br>                ^~~~~~~~<br>make[2]: *** [tools/mlir/lib/Analysis/CMakeFiles/MLIRAnalysis.dir/Dominance.cpp.o] Error 1<br>make[1]: *** [tools/mlir/lib/Analysis/CMakeFiles/MLIRAnalysis.dir/all] Error 2<br></div></div>