[LLVMdev] Trouble with rewriting MaximumSpanningTree as template.

Sebastian Redl sebastian.redl at getdesigned.at
Thu Sep 3 04:43:28 PDT 2009


Andreas Neustifter wrote:
> $> .../lib/Transforms/Instrumentation/MaximumSpanningTree.cpp:38: error:
> 'stable_sort' is not a member of 'std'
>
> which I find kind of curious since std::stable_sort didn't make a
> problem in the specific implementation.
>   
I don't see anything that definitely pulls <algorithm> in, so it may be
a case of one implementation happening to do it, and the other not.
> This problem aside I get the error
>
> $> llvm[2]: Linking Debug executable opt
> $>
> .../llvm-svn-debug-obj/Debug/lib/libLLVMInstrumentation.a(OptimalEdgeProfiling.o):
> In function `(anonymous
> namespace)::OptimalEdgeProfiler::runOnModule(llvm::Module&)':
> $>
> .../llvm/llvm-svn/lib/Transforms/Instrumentation/OptimalEdgeProfiling.cpp:135:
> undefined reference to `llvm::MaximumSpanningTree<llvm::BasicBlock
> const*>::MaximumSpanningTree(std::vector<std::pair<std::pair<llvm::BasicBlock
> const*, llvm::BasicBlock const*>, double>,
> std::allocator<std::pair<std::pair<llvm::BasicBlock const*,
> llvm::BasicBlock const*>, double> > >&)'
> $> collect2: ld returned 1 exit status
>
> when linking this stuff together.
>   
You can't define templates in .cpp files; they must be available for
instantiation in each source file.

Sebastian



More information about the llvm-dev mailing list