codebrowser icon indicating copy to clipboard operation
codebrowser copied to clipboard

Can not build codebrowser with the latest version of LLVM (LLVM-13)

Open kanihal opened this issue 2 years ago • 0 comments

I tried building codebrowser with LLVM-13(the latest version). I get the following errors while compiling.

$ cd codebrowser
$ cmake . -DCMAKE_BUILD_TYPE=Release
$ make 

[  8%] Building CXX object generator/CMakeFiles/codebrowser_generator.dir/main.cpp.o
In file included from /home/jagadeesha/Downloads/codebrowser/generator/main.cpp:39:
/home/jagadeesha/Downloads/codebrowser/generator/browserastvisitor.h: In member function ‘bool BrowserASTVisitor::VisitEnumConstantDecl(clang::EnumConstantDecl*)’:
/home/jagadeesha/Downloads/codebrowser/generator/browserastvisitor.h:132:130: error: no matching function for call to ‘llvm::APSInt::toString(int) const’
  132 | otator.registerReference(d, d->getLocation(), Annotator::EnumDecl, Annotator::Declaration, d->getInitVal().toString(10));
      |                                                                                                                       ^

In file included from /usr/lib/llvm-13/include/clang/AST/Type.h:34,
                 from /usr/lib/llvm-13/include/clang/AST/CanonicalType.h:17,
                 from /usr/lib/llvm-13/include/clang/AST/ASTContext.h:19,
                 from /usr/lib/llvm-13/include/clang/Frontend/ASTUnit.h:17,
                 from /usr/lib/llvm-13/include/clang/Frontend/FrontendAction.h:23,
                 from /usr/lib/llvm-13/include/clang/Frontend/FrontendActions.h:12,
                 from /home/jagadeesha/Downloads/codebrowser/generator/main.cpp:24:
/usr/lib/llvm-13/include/llvm/ADT/APSInt.h:82:8: note: candidate: ‘void llvm::APSInt::toString(llvm::SmallVectorImpl<char>&, unsigned int) const’
   82 |   void toString(SmallVectorImpl<char> &Str, unsigned Radix = 10) const {
      |        ^~~~~~~~
/usr/lib/llvm-13/include/llvm/ADT/APSInt.h:82:40: note:   no known conversion for argument 1 from ‘int’ to ‘llvm::SmallVectorImpl<char>&’
   82 |   void toString(SmallVectorImpl<char> &Str, unsigned Radix = 10) const {
      |                 ~~~~~~~~~~~~~~~~~~~~~~~^~~
In file included from /usr/lib/llvm-13/include/clang/AST/Type.h:33,
                 from /usr/lib/llvm-13/include/clang/AST/CanonicalType.h:17,
                 from /usr/lib/llvm-13/include/clang/AST/ASTContext.h:19,
                 from /usr/lib/llvm-13/include/clang/Frontend/ASTUnit.h:17,
                 from /usr/lib/llvm-13/include/clang/Frontend/FrontendAction.h:23,
                 from /usr/lib/llvm-13/include/clang/Frontend/FrontendActions.h:12,
                 from /home/jagadeesha/Downloads/codebrowser/generator/main.cpp:24:
/usr/lib/llvm-13/include/llvm/ADT/APInt.h:1741:8: note: candidate: ‘void llvm::APInt::toString(llvm::SmallVectorImpl<char>&, unsigned int, bool, bool) const’
 1741 |   void toString(SmallVectorImpl<char> &Str, unsigned Radix, bool Signed,
      |        ^~~~~~~~
/usr/lib/llvm-13/include/llvm/ADT/APInt.h:1741:8: note:   candidate expects 4 arguments, 1 provided
/home/jagadeesha/Downloads/codebrowser/generator/main.cpp: In function ‘bool proceedCommand(std::vector<std::__cxx11::basic_string<char> >, llvm::StringRef, llvm::StringRef, clang::FileManager*, DatabaseType)’:
/home/jagadeesha/Downloads/codebrowser/generator/main.cpp:303:15: error: ‘class clang::tooling::ToolInvocation’ has no member named ‘mapVirtualFile’
  303 |           Inv.mapVirtualFile(f->filename, {f->content , f->size } );
      |               ^~~~~~~~~~~~~~
make[2]: *** [generator/CMakeFiles/codebrowser_generator.dir/build.make:82: generator/CMakeFiles/codebrowser_generator.dir/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:138: generator/CMakeFiles/codebrowser_generator.dir/all] Error 2
make: *** [Makefile:149: all] Error 2

The 2 errors are:

codebrowser/generator/browserastvisitor.h:132:130: error: no matching function for call to ‘llvm::APSInt::toString(int) const’

codebrowser/generator/main.cpp:303:15: error: ‘class clang::tooling::ToolInvocation’ has no member named ‘mapVirtualFile’ 303 | Inv.mapVirtualFile(f->filename, {f->content , f->size } );

kanihal avatar Oct 26 '21 05:10 kanihal