Alberto Magni
2014-Aug-09 15:48 UTC
[LLVMdev] "Duplicate option categories" assertion triggered loading an LLVM-project
Hi all, I am trying to create an out-of-tree LLVM project. I have written a Test project following the guide in [1] that triggers the problem. Pass body is in [2]. The CMakeLists.txt file for the "root" directory is in [3] The CMakeLists.txt file for the "pass" directory is in [4] When I run opt --load=libTest.so I trigger the following assertion: opt: CommandLine.cpp:134: void llvm::cl::OptionCategory::registerCategory(): Assertion `std::count_if(RegisteredOptionCategories->begin(), RegisteredOptionCategories->end(), [this](const OptionCategory *Category) { return getName() == Category->getName(); }) == 0 && "Duplicate option categories"' failed. Note that my pass does not even define any command line option. I am using LLVM 3.5 git fa840e7dfb9115a3ac9891d898e7fe2543c65948 gcc 4.8.1 cmake 2.8.11 Am I doing anything wrong in the project setup ? Any help is appreciated. Cheers, Alberto [1] http://llvm.org/docs/CMake.html#embedding-llvm-in-your-project [2] https://gist.github.com/HariSeldon/9a310312a4e1a0039483#file-test-cpp [3] https://gist.github.com/HariSeldon/d979d38cf8ee52d9d134#file-cmakelists-txt [4] https://gist.github.com/HariSeldon/5f60a6bf6b28617593f2#file-cmakelists-txt -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140809/f5632610/attachment.html>
Sergey Dmitrouk
2014-Aug-10 12:14 UTC
[LLVMdev] "Duplicate option categories" assertion triggered loading an LLVM-project
Hi Alberto, See [0], first argument of RegisterPass' constructor is argument name. Try changing it to something more unique than "test", I guess it might cause your issue. Regards, Sergey [0]: http://www.llvm.org/docs/doxygen/html/structllvm_1_1RegisterPass.html On Sat, Aug 09, 2014 at 08:48:00AM -0700, Alberto Magni wrote:> Hi all, > > I am trying to create an out-of-tree LLVM project. > > I have written a Test project following the guide in [1] that triggers the > problem. > > Pass body is in [2]. > The CMakeLists.txt file for the "root" directory is in [3] > The CMakeLists.txt file for the "pass" directory is in [4] > > When I run opt --load=libTest.so > I trigger the following assertion: > > opt: CommandLine.cpp:134: void > llvm::cl::OptionCategory::registerCategory(): Assertion > `std::count_if(RegisteredOptionCategories->begin(), > RegisteredOptionCategories->end(), [this](const OptionCategory *Category) > { return getName() == Category->getName(); }) == 0 && "Duplicate option > categories"' failed. > > Note that my pass does not even define any command line option. > > I am using LLVM 3.5 git fa840e7dfb9115a3ac9891d898e7fe2543c65948 > gcc 4.8.1 > cmake 2.8.11 > > Am I doing anything wrong in the project setup ? > Any help is appreciated. > > Cheers, > Alberto > > [1] http://llvm.org/docs/CMake.html#embedding-llvm-in-your-project > [2] https://gist.github.com/HariSeldon/9a310312a4e1a0039483#file-test-cpp > [3] > https://gist.github.com/HariSeldon/d979d38cf8ee52d9d134#file-cmakelists-txt > [4] > https://gist.github.com/HariSeldon/5f60a6bf6b28617593f2#file-cmakelists-txt
Alberto Magni
2014-Aug-10 12:42 UTC
[LLVMdev] "Duplicate option categories" assertion triggered loading an LLVM-project
Hello Sergey, thanks for the suggestion. The name of the pass is not what triggers the assertion. The test case I attached to the email is a stripped-down version of a much more complicated pass (with a proper name) that originally caused the problem. Also, to be sure, I just tried to change the name of the pass to something more significant. It did not work. Cheers, Alberto On Sun, Aug 10, 2014 at 1:14 PM, Sergey Dmitrouk <sdmitrouk at accesssoftek.com> wrote:> Hi Alberto, > > See [0], first argument of RegisterPass' constructor is argument name. > Try changing it to something more unique than "test", I guess it might > cause your issue. > > Regards, > Sergey > > [0]: http://www.llvm.org/docs/doxygen/html/structllvm_1_1RegisterPass.html > > On Sat, Aug 09, 2014 at 08:48:00AM -0700, Alberto Magni wrote: > > Hi all, > > > > I am trying to create an out-of-tree LLVM project. > > > > I have written a Test project following the guide in [1] that > triggers the > > problem. > > > > Pass body is in [2]. > > The CMakeLists.txt file for the "root" directory is in [3] > > The CMakeLists.txt file for the "pass" directory is in [4] > > > > When I run opt --load=libTest.so > > I trigger the following assertion: > > > > opt: CommandLine.cpp:134: void > > llvm::cl::OptionCategory::registerCategory(): Assertion > > `std::count_if(RegisteredOptionCategories->begin(), > > RegisteredOptionCategories->end(), [this](const OptionCategory > *Category) > > { return getName() == Category->getName(); }) == 0 && "Duplicate > option > > categories"' failed. > > > > Note that my pass does not even define any command line option. > > > > I am using LLVM 3.5 git fa840e7dfb9115a3ac9891d898e7fe2543c65948 > > gcc 4.8.1 > > cmake 2.8.11 > > > > Am I doing anything wrong in the project setup ? > > Any help is appreciated. > > > > Cheers, > > Alberto > > > > [1] http://llvm.org/docs/CMake.html#embedding-llvm-in-your-project > > [2] > https://gist.github.com/HariSeldon/9a310312a4e1a0039483#file-test-cpp > > [3] > > > https://gist.github.com/HariSeldon/d979d38cf8ee52d9d134#file-cmakelists-txt > > [4] > > > https://gist.github.com/HariSeldon/5f60a6bf6b28617593f2#file-cmakelists-txt > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140810/4d8693ea/attachment.html>
Apparently Analagous Threads
- [LLVMdev] "Duplicate option categories" assertion triggered loading an LLVM-project
- CommandLineParser problems with llvm trunk?
- custom LLVM Pass with options fails to load
- custom LLVM Pass with options fails to load
- [LLVMdev] Analysis of polly-detect overhead in oggenc