<div dir="ltr"><div><div><div><div>Hello Sergey,<br><br></div><div>thanks for the suggestion.<br></div><div><br></div>The name of the pass is not what triggers the assertion.<br></div>The test case I attached to the email is a stripped-down version of a much more complicated pass <br>
(with a proper name) that originally caused the problem.<br><br></div>Also, to be sure, I just tried to change the name of the pass to something more significant.<br></div><div>It did not work.<br></div><div><br></div>Cheers,<br>
Alberto<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Aug 10, 2014 at 1:14 PM, Sergey Dmitrouk <span dir="ltr"><<a href="mailto:sdmitrouk@accesssoftek.com" target="_blank">sdmitrouk@accesssoftek.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Alberto,<br>
<br>
See [0], first argument of RegisterPass' constructor is argument name.<br>
Try changing it to something more unique than "test", I guess it might<br>
cause your issue.<br>
<br>
Regards,<br>
Sergey<br>
<br>
[0]: <a href="http://www.llvm.org/docs/doxygen/html/structllvm_1_1RegisterPass.html" target="_blank">http://www.llvm.org/docs/doxygen/html/structllvm_1_1RegisterPass.html</a><br>
<div class="HOEnZb"><div class="h5"><br>
On Sat, Aug 09, 2014 at 08:48:00AM -0700, Alberto Magni wrote:<br>
>    Hi all,<br>
><br>
>    I am trying to create an out-of-tree LLVM project.<br>
><br>
>    I have written a Test project following the guide in [1] that triggers the<br>
>    problem.<br>
><br>
>    Pass body is in [2].<br>
>    The CMakeLists.txt file for the "root" directory is in [3]<br>
>    The CMakeLists.txt file for the "pass" directory is in [4]<br>
><br>
>    When I run opt --load=libTest.so<br>
>    I trigger the following assertion:<br>
><br>
>    opt: CommandLine.cpp:134: void<br>
>    llvm::cl::OptionCategory::registerCategory(): Assertion<br>
>    `std::count_if(RegisteredOptionCategories->begin(),<br>
>    RegisteredOptionCategories->end(), [this](const OptionCategory *Category)<br>
>    { return getName() == Category->getName(); }) == 0 && "Duplicate option<br>
>    categories"' failed.<br>
><br>
>    Note that my pass does not even define any command line option.<br>
><br>
>    I am using LLVM 3.5 git fa840e7dfb9115a3ac9891d898e7fe2543c65948<br>
>    gcc 4.8.1<br>
>    cmake 2.8.11<br>
><br>
>    Am I doing anything wrong in the project setup ?<br>
>    Any help is appreciated.<br>
><br>
>    Cheers,<br>
>    Alberto<br>
><br>
>    [1] <a href="http://llvm.org/docs/CMake.html#embedding-llvm-in-your-project" target="_blank">http://llvm.org/docs/CMake.html#embedding-llvm-in-your-project</a><br>
>    [2] <a href="https://gist.github.com/HariSeldon/9a310312a4e1a0039483#file-test-cpp" target="_blank">https://gist.github.com/HariSeldon/9a310312a4e1a0039483#file-test-cpp</a><br>
>    [3]<br>
>    <a href="https://gist.github.com/HariSeldon/d979d38cf8ee52d9d134#file-cmakelists-txt" target="_blank">https://gist.github.com/HariSeldon/d979d38cf8ee52d9d134#file-cmakelists-txt</a><br>
>    [4]<br>
>    <a href="https://gist.github.com/HariSeldon/5f60a6bf6b28617593f2#file-cmakelists-txt" target="_blank">https://gist.github.com/HariSeldon/5f60a6bf6b28617593f2#file-cmakelists-txt</a><br>
<br>
</div></div></blockquote></div><br></div>