Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.10.0 + master (6dc5a9d8): build fails witl gcc 12.x #242

Open
kloczek opened this issue May 18, 2022 · 1 comment
Open

2.10.0 + master (6dc5a9d8): build fails witl gcc 12.x #242

kloczek opened this issue May 18, 2022 · 1 comment

Comments

@kloczek
Copy link

kloczek commented May 18, 2022

Yeah .. looks like current code is not gcc 12.x ready

[tkloczko@devel-g2v creduce-creduce-2.10.0]$ make -k
make  all-recursive
make[1]: Entering directory '/home/tkloczko/rpmbuild/BUILD/creduce-creduce-2.10.0'
Making all in clang_delta
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/creduce-creduce-2.10.0/clang_delta'
/usr/bin/g++ -DHAVE_CONFIG_H -I. -I..   -I"/usr/include/clang"  -I/usr/include -std=c++14 -fno-exceptions -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fno-rtti -fno-exceptions -g -O3 -fno-strict-aliasing -Wall -Wextra -Wno-long-long -Wno-unused-parameter -Wno-missing-field-initializers -c -o clang_delta-RemoveBaseClass.o `test -f 'RemoveBaseClass.cpp' || echo './'`RemoveBaseClass.cpp
In file included from RemoveBaseClass.cpp:19:
CommonRenameClassRewriteVisitor.h: In instantiation of ‘bool clang_delta_common_visitor::CommonRenameClassRewriteVisitor<T>::VisitUsingDecl(clang::UsingDecl*) [with T = RemoveBaseClassRewriteVisitor]’:
/usr/include/clang/AST/DeclNodes.inc:109:1:   required from ‘bool clang::RecursiveASTVisitor<Derived>::WalkUpFromUsingDecl(clang::UsingDecl*) [with Derived = RemoveBaseClassRewriteVisitor]’
/usr/include/clang/AST/RecursiveASTVisitor.h:1603:1:   required from ‘bool clang::RecursiveASTVisitor<Derived>::TraverseUsingDecl(clang::UsingDecl*) [with Derived = RemoveBaseClassRewriteVisitor]’
/usr/include/clang/AST/DeclNodes.inc:109:1:   required from ‘bool clang::RecursiveASTVisitor<Derived>::TraverseDecl(clang::Decl*) [with Derived = RemoveBaseClassRewriteVisitor]’
RemoveBaseClass.cpp:111:31:   required from here
CommonRenameClassRewriteVisitor.h:101:39: error: conversion from ‘llvm::StringRef’ to non-scalar type ‘std::string’ {aka ‘std::__cxx11::basic_string<char>’} requested
  101 |   std::string IdName = IdInfo->getName();
      |                        ~~~~~~~~~~~~~~~^~
CommonRenameClassRewriteVisitor.h: In instantiation of ‘bool clang_delta_common_visitor::CommonRenameClassRewriteVisitor<T>::VisitDependentTemplateSpecializationTypeLoc(clang::DependentTemplateSpecializationTypeLoc) [with T = RemoveBaseClassRewriteVisitor]’:
/usr/include/clang/AST/TypeNodes.inc:42:1:   required from ‘bool clang::RecursiveASTVisitor<Derived>::WalkUpFromDependentTemplateSpecializationTypeLoc(clang::DependentTemplateSpecializationTypeLoc) [with Derived = RemoveBaseClassRewriteVisitor]’
/usr/include/clang/AST/RecursiveASTVisitor.h:1330:1:   required from ‘bool clang::RecursiveASTVisitor<Derived>::TraverseDependentTemplateSpecializationTypeLoc(clang::DependentTemplateSpecializationTypeLoc) [with Derived = RemoveBaseClassRewriteVisitor]’
/usr/include/clang/AST/TypeNodes.inc:42:1:   required from ‘bool clang::RecursiveASTVisitor<Derived>::TraverseTypeLoc(clang::TypeLoc) [with Derived = RemoveBaseClassRewriteVisitor]’
/usr/include/clang/AST/RecursiveASTVisitor.h:1426:1:   required from ‘bool clang::RecursiveASTVisitor<Derived>::TraverseBlockDecl(clang::BlockDecl*) [with Derived = RemoveBaseClassRewriteVisitor]’
/usr/include/clang/AST/DeclNodes.inc:29:1:   required from ‘bool clang::RecursiveASTVisitor<Derived>::TraverseDecl(clang::Decl*) [with Derived = RemoveBaseClassRewriteVisitor]’
RemoveBaseClass.cpp:111:31:   required from here
CommonRenameClassRewriteVisitor.h:340:39: error: conversion from ‘llvm::StringRef’ to non-scalar type ‘std::string’ {aka ‘std::__cxx11::basic_string<char>’} requested
  340 |   std::string IdName = IdInfo->getName();
      |                        ~~~~~~~~~~~~~~~^~
make[2]: *** [Makefile:1442: clang_delta-RemoveBaseClass.o] Error 1
/usr/bin/g++ -DHAVE_CONFIG_H -I. -I..   -I"/usr/include/clang"  -I/usr/include -std=c++14 -fno-exceptions -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fno-rtti -fno-exceptions -g -O3 -fno-strict-aliasing -Wall -Wextra -Wno-long-long -Wno-unused-parameter -Wno-missing-field-initializers -c -o clang_delta-RemoveNamespace.o `test -f 'RemoveNamespace.cpp' || echo './'`RemoveNamespace.cpp
RemoveNamespace.cpp: In member function ‘bool RemoveNamespaceRewriteVisitor::VisitDependentTemplateSpecializationTypeLoc(clang::DependentTemplateSpecializationTypeLoc)’:
RemoveNamespace.cpp:468:39: error: conversion from ‘llvm::StringRef’ to non-scalar type ‘std::string’ {aka ‘std::__cxx11::basic_string<char>’} requested
  468 |   std::string IdName = IdInfo->getName();
      |                        ~~~~~~~~~~~~~~~^~
RemoveNamespace.cpp: In member function ‘void RemoveNamespace::handleOneUsingShadowDecl(const clang::UsingShadowDecl*, const clang::DeclContext*)’:
RemoveNamespace.cpp:797:28: error: ‘const class clang::UsingShadowDecl’ has no member named ‘getUsingDecl’
  797 |   const UsingDecl *D = UD->getUsingDecl();
      |                            ^~~~~~~~~~~~
make[2]: *** [Makefile:1484: clang_delta-RemoveNamespace.o] Error 1
/usr/bin/g++ -DHAVE_CONFIG_H -I. -I..   -I"/usr/include/clang"  -I/usr/include -std=c++14 -fno-exceptions -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fno-rtti -fno-exceptions -g -O3 -fno-strict-aliasing -Wall -Wextra -Wno-long-long -Wno-unused-parameter -Wno-missing-field-initializers -c -o clang_delta-RemoveNestedFunction.o `test -f 'RemoveNestedFunction.cpp' || echo './'`RemoveNestedFunction.cpp
RemoveNestedFunction.cpp: In member function ‘void RemoveNestedFunction::getVarStrForTemplateSpecialization(std::string&, const clang::TemplateSpecializationType*)’:
RemoveNestedFunction.cpp:193:23: error: no matching function for call to ‘clang::TemplateArgument::print(const clang::PrintingPolicy&, llvm::raw_string_ostream&) const’
  193 |   TST->getArg(0).print(Context->getPrintingPolicy(), Stream);
      |   ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/clang/AST/Expr.h:24,
                 from /usr/include/clang/AST/DeclCXX.h:22,
                 from /usr/include/clang/AST/RecursiveASTVisitor.h:20,
                 from RemoveNestedFunction.cpp:20:
/usr/include/clang/AST/TemplateBase.h:391:8: note: candidate: ‘void clang::TemplateArgument::print(const clang::PrintingPolicy&, llvm::raw_ostream&, bool) const’
  391 |   void print(const PrintingPolicy &Policy, raw_ostream &Out,
      |        ^~~~~
/usr/include/clang/AST/TemplateBase.h:391:8: note:   candidate expects 3 arguments, 2 provided
RemoveNestedFunction.cpp:198:14: error: no matching function for call to ‘clang::TemplateArgument::print(const clang::PrintingPolicy&, llvm::raw_string_ostream&) const’
  198 |     Arg.print(Context->getPrintingPolicy(), Stream);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/clang/AST/TemplateBase.h:391:8: note: candidate: ‘void clang::TemplateArgument::print(const clang::PrintingPolicy&, llvm::raw_ostream&, bool) const’
  391 |   void print(const PrintingPolicy &Policy, raw_ostream &Out,
      |        ^~~~~
/usr/include/clang/AST/TemplateBase.h:391:8: note:   candidate expects 3 arguments, 2 provided
RemoveNestedFunction.cpp: In member function ‘void RemoveNestedFunction::getNewTmpVariableStr(clang::ASTContext&, std::string&)’:
RemoveNestedFunction.cpp:465:23: warning: unused variable ‘AT’ [-Wunused-variable]
  465 |   if (const AutoType *AT =
      |                       ^~
make[2]: *** [Makefile:1498: clang_delta-RemoveNestedFunction.o] Error 1
/usr/bin/g++ -DHAVE_CONFIG_H -I. -I..   -I"/usr/include/clang"  -I/usr/include -std=c++14 -fno-exceptions -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fno-rtti -fno-exceptions -g -O3 -fno-strict-aliasing -Wall -Wextra -Wno-long-long -Wno-unused-parameter -Wno-missing-field-initializers -c -o clang_delta-RenameClass.o `test -f 'RenameClass.cpp' || echo './'`RenameClass.cpp
In file included from RenameClass.cpp:20:
CommonRenameClassRewriteVisitor.h: In instantiation of ‘bool clang_delta_common_visitor::CommonRenameClassRewriteVisitor<T>::VisitUsingDecl(clang::UsingDecl*) [with T = RenameClassRewriteVisitor]’:
/usr/include/clang/AST/DeclNodes.inc:109:1:   required from ‘bool clang::RecursiveASTVisitor<Derived>::WalkUpFromUsingDecl(clang::UsingDecl*) [with Derived = RenameClassRewriteVisitor]’
/usr/include/clang/AST/RecursiveASTVisitor.h:1603:1:   required from ‘bool clang::RecursiveASTVisitor<Derived>::TraverseUsingDecl(clang::UsingDecl*) [with Derived = RenameClassRewriteVisitor]’
/usr/include/clang/AST/DeclNodes.inc:109:1:   required from ‘bool clang::RecursiveASTVisitor<Derived>::TraverseDecl(clang::Decl*) [with Derived = RenameClassRewriteVisitor]’
RenameClass.cpp:109:31:   required from here
CommonRenameClassRewriteVisitor.h:101:39: error: conversion from ‘llvm::StringRef’ to non-scalar type ‘std::string’ {aka ‘std::__cxx11::basic_string<char>’} requested
  101 |   std::string IdName = IdInfo->getName();
      |                        ~~~~~~~~~~~~~~~^~
CommonRenameClassRewriteVisitor.h: In instantiation of ‘bool clang_delta_common_visitor::CommonRenameClassRewriteVisitor<T>::VisitDependentTemplateSpecializationTypeLoc(clang::DependentTemplateSpecializationTypeLoc) [with T = RenameClassRewriteVisitor]’:
/usr/include/clang/AST/TypeNodes.inc:42:1:   required from ‘bool clang::RecursiveASTVisitor<Derived>::WalkUpFromDependentTemplateSpecializationTypeLoc(clang::DependentTemplateSpecializationTypeLoc) [with Derived = RenameClassRewriteVisitor]’
/usr/include/clang/AST/RecursiveASTVisitor.h:1330:1:   required from ‘bool clang::RecursiveASTVisitor<Derived>::TraverseDependentTemplateSpecializationTypeLoc(clang::DependentTemplateSpecializationTypeLoc) [with Derived = RenameClassRewriteVisitor]’
/usr/include/clang/AST/TypeNodes.inc:42:1:   required from ‘bool clang::RecursiveASTVisitor<Derived>::TraverseTypeLoc(clang::TypeLoc) [with Derived = RenameClassRewriteVisitor]’
/usr/include/clang/AST/RecursiveASTVisitor.h:1426:1:   required from ‘bool clang::RecursiveASTVisitor<Derived>::TraverseBlockDecl(clang::BlockDecl*) [with Derived = RenameClassRewriteVisitor]’
/usr/include/clang/AST/DeclNodes.inc:29:1:   required from ‘bool clang::RecursiveASTVisitor<Derived>::TraverseDecl(clang::Decl*) [with Derived = RenameClassRewriteVisitor]’
RenameClass.cpp:109:31:   required from here
CommonRenameClassRewriteVisitor.h:340:39: error: conversion from ‘llvm::StringRef’ to non-scalar type ‘std::string’ {aka ‘std::__cxx11::basic_string<char>’} requested
  340 |   std::string IdName = IdInfo->getName();
      |                        ~~~~~~~~~~~~~~~^~
make[2]: *** [Makefile:1638: clang_delta-RenameClass.o] Error 1
/usr/bin/g++ -DHAVE_CONFIG_H -I. -I..   -I"/usr/include/clang"  -I/usr/include -std=c++14 -fno-exceptions -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fno-rtti -fno-exceptions -g -O3 -fno-strict-aliasing -Wall -Wextra -Wno-long-long -Wno-unused-parameter -Wno-missing-field-initializers -c -o clang_delta-ReplaceDerivedClass.o `test -f 'ReplaceDerivedClass.cpp' || echo './'`ReplaceDerivedClass.cpp
In file included from ReplaceDerivedClass.cpp:19:
CommonRenameClassRewriteVisitor.h: In instantiation of ‘bool clang_delta_common_visitor::CommonRenameClassRewriteVisitor<T>::VisitUsingDecl(clang::UsingDecl*) [with T = ReplaceDerivedClassRewriteVisitor]’:
/usr/include/clang/AST/DeclNodes.inc:109:1:   required from ‘bool clang::RecursiveASTVisitor<Derived>::WalkUpFromUsingDecl(clang::UsingDecl*) [with Derived = ReplaceDerivedClassRewriteVisitor]’
/usr/include/clang/AST/RecursiveASTVisitor.h:1603:1:   required from ‘bool clang::RecursiveASTVisitor<Derived>::TraverseUsingDecl(clang::UsingDecl*) [with Derived = ReplaceDerivedClassRewriteVisitor]’
/usr/include/clang/AST/DeclNodes.inc:109:1:   required from ‘bool clang::RecursiveASTVisitor<Derived>::TraverseDecl(clang::Decl*) [with Derived = ReplaceDerivedClassRewriteVisitor]’
ReplaceDerivedClass.cpp:101:31:   required from here
CommonRenameClassRewriteVisitor.h:101:39: error: conversion from ‘llvm::StringRef’ to non-scalar type ‘std::string’ {aka ‘std::__cxx11::basic_string<char>’} requested
  101 |   std::string IdName = IdInfo->getName();
      |                        ~~~~~~~~~~~~~~~^~
CommonRenameClassRewriteVisitor.h: In instantiation of ‘bool clang_delta_common_visitor::CommonRenameClassRewriteVisitor<T>::VisitDependentTemplateSpecializationTypeLoc(clang::DependentTemplateSpecializationTypeLoc) [with T = ReplaceDerivedClassRewriteVisitor]’:
/usr/include/clang/AST/TypeNodes.inc:42:1:   required from ‘bool clang::RecursiveASTVisitor<Derived>::WalkUpFromDependentTemplateSpecializationTypeLoc(clang::DependentTemplateSpecializationTypeLoc) [with Derived = ReplaceDerivedClassRewriteVisitor]’
/usr/include/clang/AST/RecursiveASTVisitor.h:1330:1:   required from ‘bool clang::RecursiveASTVisitor<Derived>::TraverseDependentTemplateSpecializationTypeLoc(clang::DependentTemplateSpecializationTypeLoc) [with Derived = ReplaceDerivedClassRewriteVisitor]’
/usr/include/clang/AST/TypeNodes.inc:42:1:   required from ‘bool clang::RecursiveASTVisitor<Derived>::TraverseTypeLoc(clang::TypeLoc) [with Derived = ReplaceDerivedClassRewriteVisitor]’
/usr/include/clang/AST/RecursiveASTVisitor.h:1426:1:   required from ‘bool clang::RecursiveASTVisitor<Derived>::TraverseBlockDecl(clang::BlockDecl*) [with Derived = ReplaceDerivedClassRewriteVisitor]’
/usr/include/clang/AST/DeclNodes.inc:29:1:   required from ‘bool clang::RecursiveASTVisitor<Derived>::TraverseDecl(clang::Decl*) [with Derived = ReplaceDerivedClassRewriteVisitor]’
ReplaceDerivedClass.cpp:101:31:   required from here
CommonRenameClassRewriteVisitor.h:340:39: error: conversion from ‘llvm::StringRef’ to non-scalar type ‘std::string’ {aka ‘std::__cxx11::basic_string<char>’} requested
  340 |   std::string IdName = IdInfo->getName();
      |                        ~~~~~~~~~~~~~~~^~
make[2]: *** [Makefile:1778: clang_delta-ReplaceDerivedClass.o] Error 1
/usr/bin/g++ -DHAVE_CONFIG_H -I. -I..   -I"/usr/include/clang"  -I/usr/include -std=c++14 -fno-exceptions -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fno-rtti -fno-exceptions -g -O3 -fno-strict-aliasing -Wall -Wextra -Wno-long-long -Wno-unused-parameter -Wno-missing-field-initializers -c -o clang_delta-RewriteUtils.o `test -f 'RewriteUtils.cpp' || echo './'`RewriteUtils.cpp
RewriteUtils.cpp: In member function ‘bool RewriteUtils::removeVarFromDeclStmt(clang::DeclStmt*, const clang::VarDecl*, clang::Decl*, bool, bool*)’:
RewriteUtils.cpp:557:58: error: use of deleted function ‘clang::DeclGroup::DeclGroup(const clang::DeclGroup&)’
  557 |       DeclGroup DGroup = DS->getDeclGroup().getDeclGroup();
      |                                                          ^
In file included from /usr/include/clang/AST/Stmt.h:16,
                 from /usr/include/clang/AST/Expr.h:23,
                 from /usr/include/clang/AST/DeclCXX.h:22,
                 from RewriteUtils.cpp:22:
/usr/include/clang/AST/DeclGroup.h:25:7: note: ‘clang::DeclGroup::DeclGroup(const clang::DeclGroup&)’ is implicitly deleted because the default definition would be ill-formed:
   25 | class DeclGroup final : private llvm::TrailingObjects<DeclGroup, Decl *> {
      |       ^~~~~~~~~
/usr/include/clang/AST/DeclGroup.h:25:7: error: use of deleted function ‘llvm::TrailingObjects<BaseTy, TrailingTys>::TrailingObjects(const llvm::TrailingObjects<BaseTy, TrailingTys>&) [with BaseTy = clang::DeclGroup; TrailingTys = {clang::Decl*}]’
In file included from /usr/include/clang/AST/Type.h:48,
                 from /usr/include/clang/AST/DeclarationName.h:16,
                 from /usr/include/clang/AST/DeclBase.h:18,
                 from /usr/include/clang/AST/Decl.h:19,
                 from RewriteUtils.cpp:21:
/usr/include/llvm/Support/TrailingObjects.h:332:3: note: declared here
  332 |   TrailingObjects(const TrailingObjects &) = delete;
      |   ^~~~~~~~~~~~~~~
RewriteUtils.cpp: In member function ‘std::string RewriteUtils::getStmtIndentString(clang::Stmt*, clang::SourceManager*)’:
RewriteUtils.cpp:740:72: error: cannot convert ‘const clang::SrcMgr::ContentCache’ to ‘const clang::SrcMgr::ContentCache*’ in initialization
  740 |       Content = SrcManager->getSLocEntry(FID).getFile().getContentCache();
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
      |                                                                        |
      |                                                                        const clang::SrcMgr::ContentCache
RewriteUtils.cpp:751:10: error: could not convert ‘indentSpace’ from ‘llvm::StringRef’ to ‘std::string’ {aka ‘std::__cxx11::basic_string<char>’}
  751 |   return indentSpace;
      |          ^~~~~~~~~~~
      |          |
      |          llvm::StringRef
make[2]: *** [Makefile:1862: clang_delta-RewriteUtils.o] Error 1
/usr/bin/g++ -DHAVE_CONFIG_H -I. -I..   -I"/usr/include/clang"  -I/usr/include -std=c++14 -fno-exceptions -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fno-rtti -fno-exceptions -g -O3 -fno-strict-aliasing -Wall -Wextra -Wno-long-long -Wno-unused-parameter -Wno-missing-field-initializers -c -o clang_delta-SimpleInliner.o `test -f 'SimpleInliner.cpp' || echo './'`SimpleInliner.cpp
SimpleInliner.cpp: In member function ‘virtual void SimpleInliner::Initialize(clang::ASTContext&)’:
SimpleInliner.cpp:254:28: error: invalid use of incomplete type ‘const class clang::TargetInfo’
  254 |   if (context.getTargetInfo().getTriple().isOSWindows()) {
      |       ~~~~~~~~~~~~~~~~~~~~~^~
In file included from /usr/include/clang/AST/DeclCXX.h:22,
                 from /usr/include/clang/AST/RecursiveASTVisitor.h:20,
                 from SimpleInliner.cpp:19:
/usr/include/clang/AST/Expr.h:56:9: note: forward declaration of ‘class clang::TargetInfo’
   56 |   class TargetInfo;
      |         ^~~~~~~~~~
SimpleInliner.cpp: In member function ‘clang::FunctionDecl* SimpleInliner::getAliaseeFunctionDecl(clang::FunctionDecl*)’:
SimpleInliner.cpp:538:43: error: no matching function for call to ‘std::map<std::__cxx11::basic_string<char>, clang::FunctionDecl*>::find(llvm::StringRef&)’
  538 |     auto I = MangledNameToFuncDeclMap.find(Aliasee);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
In file included from /usr/include/c++/12/map:61,
                 from /usr/include/clang/Rewrite/Core/Rewriter.h:21,
                 from Transformation.h:19,
                 from SimpleInliner.h:20,
                 from SimpleInliner.cpp:15:
/usr/include/c++/12/bits/stl_map.h:1223:9: note: candidate: ‘template<class _Kt> decltype (((std::map<_Key, _Tp, _Compare, _Alloc>*)this)->std::map<_Key, _Tp, _Compare, _Alloc>::_M_t._M_find_tr(__x)) std::map<_Key, _Tp, _Compare, _Alloc>::find(const _Kt&) [with _Key = std::__cxx11::basic_string<char>; _Tp = clang::FunctionDecl*; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*> >]’
 1223 |         find(const _Kt& __x) -> decltype(_M_t._M_find_tr(__x))
      |         ^~~~
/usr/include/c++/12/bits/stl_map.h:1223:9: note:   template argument deduction/substitution failed:
/usr/include/c++/12/bits/stl_map.h: In substitution of ‘template<class _Kt> decltype (((std::map<std::__cxx11::basic_string<char>, clang::FunctionDecl*>*)this)->std::map<std::__cxx11::basic_string<char>, clang::FunctionDecl*>::_M_t.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*> >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*> > >::_M_find_tr(__x)) std::map<std::__cxx11::basic_string<char>, clang::FunctionDecl*>::find(const _Kt&) [with _Kt = llvm::StringRef]’:
SimpleInliner.cpp:538:43:   required from here
/usr/include/c++/12/bits/stl_map.h:1223:57: error: no matching function for call to ‘std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*> >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*> > >::_M_find_tr(const llvm::StringRef&)’
 1223 |         find(const _Kt& __x) -> decltype(_M_t._M_find_tr(__x))
      |                                          ~~~~~~~~~~~~~~~^~~~~
In file included from /usr/include/c++/12/set:60,
                 from /usr/include/llvm/ADT/SmallSet.h:26,
                 from SimpleInliner.h:18:
/usr/include/c++/12/bits/stl_tree.h:1294:9: note: candidate: ‘template<class _Kt, class _Req> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_find_tr(const _Kt&) [with _Req = _Kt; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*>; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*> >; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*> >]’
 1294 |         _M_find_tr(const _Kt& __k)
      |         ^~~~~~~~~~
/usr/include/c++/12/bits/stl_tree.h:1294:9: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/12/string:48,
                 from SimpleInliner.h:14:
/usr/include/c++/12/bits/stl_function.h: In substitution of ‘template<class _Func, class _SfinaeType> using __has_is_transparent_t = typename std::__has_is_transparent<_Func, _SfinaeType>::type [with _Func = std::less<std::__cxx11::basic_string<char> >; _SfinaeType = llvm::StringRef]’:
/usr/include/c++/12/bits/stl_tree.h:1292:9:   required by substitution of ‘template<class _Kt> decltype (((std::map<std::__cxx11::basic_string<char>, clang::FunctionDecl*>*)this)->std::map<std::__cxx11::basic_string<char>, clang::FunctionDecl*>::_M_t.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*> >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*> > >::_M_find_tr(__x)) std::map<std::__cxx11::basic_string<char>, clang::FunctionDecl*>::find(const _Kt&) [with _Kt = llvm::StringRef]’
SimpleInliner.cpp:538:43:   required from here
/usr/include/c++/12/bits/stl_function.h:1430:11: error: no type named ‘type’ in ‘struct std::__has_is_transparent<std::less<std::__cxx11::basic_string<char> >, llvm::StringRef, void>’
 1430 |     using __has_is_transparent_t
      |           ^~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/12/bits/stl_map.h: In substitution of ‘template<class _Kt> decltype (((std::map<std::__cxx11::basic_string<char>, clang::FunctionDecl*>*)this)->std::map<std::__cxx11::basic_string<char>, clang::FunctionDecl*>::_M_t.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*> >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*> > >::_M_find_tr(__x)) std::map<std::__cxx11::basic_string<char>, clang::FunctionDecl*>::find(const _Kt&) [with _Kt = llvm::StringRef]’:
SimpleInliner.cpp:538:43:   required from here
/usr/include/c++/12/bits/stl_tree.h:1303:9: note: candidate: ‘template<class _Kt, class _Req> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_find_tr(const _Kt&) const [with _Req = _Kt; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*>; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*> >; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*> >]’
 1303 |         _M_find_tr(const _Kt& __k) const
      |         ^~~~~~~~~~
/usr/include/c++/12/bits/stl_tree.h:1303:9: note:   template argument deduction/substitution failed:
/usr/include/c++/12/bits/stl_map.h:1248:9: note: candidate: ‘template<class _Kt> decltype (((const std::map<_Key, _Tp, _Compare, _Alloc>*)this)->std::map<_Key, _Tp, _Compare, _Alloc>::_M_t._M_find_tr(__x)) std::map<_Key, _Tp, _Compare, _Alloc>::find(const _Kt&) const [with _Key = std::__cxx11::basic_string<char>; _Tp = clang::FunctionDecl*; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*> >]’
 1248 |         find(const _Kt& __x) const -> decltype(_M_t._M_find_tr(__x))
      |         ^~~~
/usr/include/c++/12/bits/stl_map.h:1248:9: note:   template argument deduction/substitution failed:
/usr/include/c++/12/bits/stl_map.h: In substitution of ‘template<class _Kt> decltype (((const std::map<std::__cxx11::basic_string<char>, clang::FunctionDecl*>*)this)->std::map<std::__cxx11::basic_string<char>, clang::FunctionDecl*>::_M_t.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*> >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*> > >::_M_find_tr(__x)) std::map<std::__cxx11::basic_string<char>, clang::FunctionDecl*>::find(const _Kt&) const [with _Kt = llvm::StringRef]’:
SimpleInliner.cpp:538:43:   required from here
/usr/include/c++/12/bits/stl_map.h:1248:63: error: no matching function for call to ‘std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*> >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*> > >::_M_find_tr(const llvm::StringRef&) const’
 1248 |         find(const _Kt& __x) const -> decltype(_M_t._M_find_tr(__x))
      |                                                ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/12/bits/stl_tree.h:1294:9: note: candidate: ‘template<class _Kt, class _Req> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_find_tr(const _Kt&) [with _Req = _Kt; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*>; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*> >; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*> >]’
 1294 |         _M_find_tr(const _Kt& __k)
      |         ^~~~~~~~~~
/usr/include/c++/12/bits/stl_tree.h:1294:9: note:   template argument deduction/substitution failed:
/usr/include/c++/12/bits/stl_tree.h:1303:9: note: candidate: ‘template<class _Kt, class _Req> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_find_tr(const _Kt&) const [with _Req = _Kt; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*>; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*> >; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*> >]’
 1303 |         _M_find_tr(const _Kt& __k) const
      |         ^~~~~~~~~~
/usr/include/c++/12/bits/stl_tree.h:1303:9: note:   template argument deduction/substitution failed:
/usr/include/c++/12/bits/stl_map.h:1217:7: note: candidate: ‘std::map<_Key, _Tp, _Compare, _Alloc>::iterator std::map<_Key, _Tp, _Compare, _Alloc>::find(const key_type&) [with _Key = std::__cxx11::basic_string<char>; _Tp = clang::FunctionDecl*; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*> >; iterator = std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*> >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*> > >::iterator; key_type = std::__cxx11::basic_string<char>]’
 1217 |       find(const key_type& __x)
      |       ^~~~
/usr/include/c++/12/bits/stl_map.h:1217:28: note:   no known conversion for argument 1 from ‘llvm::StringRef’ to ‘const std::map<std::__cxx11::basic_string<char>, clang::FunctionDecl*>::key_type&’ {aka ‘const std::__cxx11::basic_string<char>&’}
 1217 |       find(const key_type& __x)
      |            ~~~~~~~~~~~~~~~~^~~
/usr/include/c++/12/bits/stl_map.h:1242:7: note: candidate: ‘std::map<_Key, _Tp, _Compare, _Alloc>::const_iterator std::map<_Key, _Tp, _Compare, _Alloc>::find(const key_type&) const [with _Key = std::__cxx11::basic_string<char>; _Tp = clang::FunctionDecl*; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*> >; const_iterator = std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*> >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, clang::FunctionDecl*> > >::const_iterator; key_type = std::__cxx11::basic_string<char>]’
 1242 |       find(const key_type& __x) const
      |       ^~~~
/usr/include/c++/12/bits/stl_map.h:1242:28: note:   no known conversion for argument 1 from ‘llvm::StringRef’ to ‘const std::map<std::__cxx11::basic_string<char>, clang::FunctionDecl*>::key_type&’ {aka ‘const std::__cxx11::basic_string<char>&’}
 1242 |       find(const key_type& __x) const
      |            ~~~~~~~~~~~~~~~~^~~
make[2]: *** [Makefile:1876: clang_delta-SimpleInliner.o] Error 1
/usr/bin/g++ -DHAVE_CONFIG_H -I. -I..   -I"/usr/include/clang"  -I/usr/include -std=c++14 -fno-exceptions -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fno-rtti -fno-exceptions -g -O3 -fno-strict-aliasing -Wall -Wextra -Wno-long-long -Wno-unused-parameter -Wno-missing-field-initializers -c -o clang_delta-TemplateNonTypeArgToInt.o `test -f 'TemplateNonTypeArgToInt.cpp' || echo './'`TemplateNonTypeArgToInt.cpp
TemplateNonTypeArgToInt.cpp: In member function ‘void TemplateNonTypeArgToInt::handleOneTemplateArgumentLoc(const clang::TemplateArgumentLoc&)’:
TemplateNonTypeArgToInt.cpp:170:32: error: no matching function for call to ‘llvm::APSInt::toString(int)’
  170 |       IntString = IVal.toString(10);
      |                   ~~~~~~~~~~~~~^~~~
In file included from /usr/include/llvm/ADT/APFixedPoint.h:19,
                 from /usr/include/clang/AST/APValue.h:17,
                 from /usr/include/clang/AST/Decl.h:16,
                 from /usr/include/clang/AST/Attr.h:18,
                 from /usr/include/clang/AST/RecursiveASTVisitor.h:16,
                 from TemplateNonTypeArgToInt.cpp:17:
/usr/include/llvm/ADT/APSInt.h:83:8: note: candidate: ‘void llvm::APSInt::toString(llvm::SmallVectorImpl<char>&, unsigned int) const’
   83 |   void toString(SmallVectorImpl<char> &Str, unsigned Radix = 10) const {
      |        ^~~~~~~~
/usr/include/llvm/ADT/APSInt.h:83:40: note:   no known conversion for argument 1 from ‘int’ to ‘llvm::SmallVectorImpl<char>&’
   83 |   void toString(SmallVectorImpl<char> &Str, unsigned Radix = 10) const {
      |                 ~~~~~~~~~~~~~~~~~~~~~~~^~~
In file included from /usr/include/llvm/ADT/APSInt.h:18:
/usr/include/llvm/ADT/APInt.h:1580:8: note: candidate: ‘void llvm::APInt::toString(llvm::SmallVectorImpl<char>&, unsigned int, bool, bool) const’
 1580 |   void toString(SmallVectorImpl<char> &Str, unsigned Radix, bool Signed,
      |        ^~~~~~~~
/usr/include/llvm/ADT/APInt.h:1580:8: note:   candidate expects 4 arguments, 1 provided
make[2]: *** [Makefile:2016: clang_delta-TemplateNonTypeArgToInt.o] Error 1
/usr/bin/g++ -DHAVE_CONFIG_H -I. -I..   -I"/usr/include/clang"  -I/usr/include -std=c++14 -fno-exceptions -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fno-rtti -fno-exceptions -g -O3 -fno-strict-aliasing -Wall -Wextra -Wno-long-long -Wno-unused-parameter -Wno-missing-field-initializers -c -o clang_delta-Transformation.o `test -f 'Transformation.cpp' || echo './'`Transformation.cpp
Transformation.cpp: In member function ‘void Transformation::outputOriginalSource(llvm::raw_ostream&)’:
Transformation.cpp:109:51: error: ‘class clang::SourceManager’ has no member named ‘getBuffer’; did you mean ‘getBufferData’?
  109 |   const llvm::MemoryBuffer *MainBuf = SrcManager->getBuffer(MainFileID);
      |                                                   ^~~~~~~~~
      |                                                   getBufferData
Transformation.cpp: In member function ‘unsigned int Transformation::getConstArraySize(const clang::ConstantArrayType*)’:
Transformation.cpp:362:39: error: no matching function for call to ‘std::__cxx11::basic_stringstream<char>::basic_stringstream(llvm::StringRef)’
  362 |   std::stringstream TmpSS(IntStr.str());
      |                                       ^
In file included from Transformation.cpp:17:
/usr/include/c++/12/sstream:1059:7: note: candidate: ‘std::__cxx11::basic_stringstream<_CharT, _Traits, _Alloc>::basic_stringstream(std::__cxx11::basic_stringstream<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’
 1059 |       basic_stringstream(basic_stringstream&& __rhs)
      |       ^~~~~~~~~~~~~~~~~~
/usr/include/c++/12/sstream:1059:47: note:   no known conversion for argument 1 from ‘llvm::StringRef’ to ‘std::__cxx11::basic_stringstream<char>&&’
 1059 |       basic_stringstream(basic_stringstream&& __rhs)
      |                          ~~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/12/sstream:1042:7: note: candidate: ‘std::__cxx11::basic_stringstream<_CharT, _Traits, _Alloc>::basic_stringstream(const __string_type&, std::ios_base::openmode) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; __string_type = std::__cxx11::basic_string<char>; std::ios_base::openmode = std::ios_base::openmode]’
 1042 |       basic_stringstream(const __string_type& __str,
      |       ^~~~~~~~~~~~~~~~~~
/usr/include/c++/12/sstream:1042:47: note:   no known conversion for argument 1 from ‘llvm::StringRef’ to ‘const std::__cxx11::basic_stringstream<char>::__string_type&’ {aka ‘const std::__cxx11::basic_string<char>&’}
 1042 |       basic_stringstream(const __string_type& __str,
      |                          ~~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/12/sstream:1026:7: note: candidate: ‘std::__cxx11::basic_stringstream<_CharT, _Traits, _Alloc>::basic_stringstream(std::ios_base::openmode) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::ios_base::openmode = std::ios_base::openmode]’
 1026 |       basic_stringstream(ios_base::openmode __m)
      |       ^~~~~~~~~~~~~~~~~~
/usr/include/c++/12/sstream:1026:45: note:   no known conversion for argument 1 from ‘llvm::StringRef’ to ‘std::ios_base::openmode’
 1026 |       basic_stringstream(ios_base::openmode __m)
      |                          ~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/12/sstream:1011:7: note: candidate: ‘std::__cxx11::basic_stringstream<_CharT, _Traits, _Alloc>::basic_stringstream() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’
 1011 |       basic_stringstream()
      |       ^~~~~~~~~~~~~~~~~~
/usr/include/c++/12/sstream:1011:7: note:   candidate expects 0 arguments, 1 provided
Transformation.cpp: In member function ‘const clang::Expr* Transformation::getBaseExprAndIdxs(const clang::Expr*, IndexVector&)’:
Transformation.cpp:400:43: error: no matching function for call to ‘llvm::APSInt::toString(int)’
  400 |         std::string IntStr = IVal.toString(10);
      |                              ~~~~~~~~~~~~~^~~~
In file included from /usr/include/llvm/ADT/APFixedPoint.h:19,
                 from /usr/include/clang/AST/APValue.h:17,
                 from /usr/include/clang/AST/Decl.h:16,
                 from /usr/include/clang/AST/Attr.h:18,
                 from /usr/include/clang/AST/RecursiveASTVisitor.h:16,
                 from Transformation.cpp:19:
/usr/include/llvm/ADT/APSInt.h:83:8: note: candidate: ‘void llvm::APSInt::toString(llvm::SmallVectorImpl<char>&, unsigned int) const’
   83 |   void toString(SmallVectorImpl<char> &Str, unsigned Radix = 10) const {
      |        ^~~~~~~~
/usr/include/llvm/ADT/APSInt.h:83:40: note:   no known conversion for argument 1 from ‘int’ to ‘llvm::SmallVectorImpl<char>&’
   83 |   void toString(SmallVectorImpl<char> &Str, unsigned Radix = 10) const {
      |                 ~~~~~~~~~~~~~~~~~~~~~~~^~~
In file included from /usr/include/llvm/ADT/APSInt.h:18:
/usr/include/llvm/ADT/APInt.h:1580:8: note: candidate: ‘void llvm::APInt::toString(llvm::SmallVectorImpl<char>&, unsigned int, bool, bool) const’
 1580 |   void toString(SmallVectorImpl<char> &Str, unsigned Radix, bool Signed,
      |        ^~~~~~~~
/usr/include/llvm/ADT/APInt.h:1580:8: note:   candidate expects 4 arguments, 1 provided
make[2]: *** [Makefile:2030: clang_delta-Transformation.o] Error 1
/usr/bin/g++ -DHAVE_CONFIG_H -I. -I..   -I"/usr/include/clang"  -I/usr/include -std=c++14 -fno-exceptions -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fno-rtti -fno-exceptions -g -O3 -fno-strict-aliasing -Wall -Wextra -Wno-long-long -Wno-unused-parameter -Wno-missing-field-initializers -c -o clang_delta-TransformationManager.o `test -f 'TransformationManager.cpp' || echo './'`TransformationManager.cpp
TransformationManager.cpp: In member function ‘bool TransformationManager::initializeCompilerInstance(std::string&)’:
TransformationManager.cpp:104:38: error: ‘C’ is not a member of ‘clang::InputKind’
  104 |   if (IK.getLanguage() == InputKind::C) {
      |                                      ^
TransformationManager.cpp:105:73: error: ‘C’ is not a member of ‘clang::InputKind’
  105 |     Invocation.setLangDefaults(ClangInstance->getLangOpts(), InputKind::C, T, PPOpts);
      |                                                                         ^
TransformationManager.cpp:107:43: error: ‘CXX’ is not a member of ‘clang::InputKind’
  107 |   else if (IK.getLanguage() == InputKind::CXX) {
      |                                           ^~~
TransformationManager.cpp:111:73: error: ‘CXX’ is not a member of ‘clang::InputKind’
  111 |     Invocation.setLangDefaults(ClangInstance->getLangOpts(), InputKind::CXX, T, PPOpts);
      |                                                                         ^~~
TransformationManager.cpp:113:42: error: ‘OpenCL’ is not a member of ‘clang::InputKind’
  113 |   else if(IK.getLanguage() == InputKind::OpenCL) {
      |                                          ^~~~~~
TransformationManager.cpp:125:69: error: no match for ‘operator!=’ (operand types are ‘llvm::ErrorOr<const clang::DirectoryEntry*>’ and ‘long int’)
  125 |        ClangInstance->getFileManager().getDirectory(CLCPath, false) != NULL) {
      |                                                                     ^
TransformationManager.cpp:125:69: note: candidate: ‘operator!=(int, long int)’ (built-in)
TransformationManager.cpp:125:69: note:   no known conversion for argument 1 from ‘llvm::ErrorOr<const clang::DirectoryEntry*>’ to ‘int’
In file included from /usr/include/llvm/Support/raw_ostream.h:18,
                 from TransformationManager.h:18,
                 from TransformationManager.cpp:15:
/usr/include/llvm/ADT/Optional.h:341:16: note: candidate: ‘template<class T, class U> constexpr bool llvm::operator!=(const Optional<T>&, const Optional<U>&)’
  341 | constexpr bool operator!=(const Optional<T> &X, const Optional<U> &Y) {
      |                ^~~~~~~~
/usr/include/llvm/ADT/Optional.h:341:16: note:   template argument deduction/substitution failed:
In file included from /usr/include/strings.h:23,
                 from /usr/include/string.h:462,
                 from /usr/include/c++/12/cstring:42,
                 from /usr/include/llvm/ADT/SmallVector.h:23,
                 from /usr/include/llvm/Support/raw_ostream.h:16:
TransformationManager.cpp:125:72: note:   ‘llvm::ErrorOr<const clang::DirectoryEntry*>’ is not derived from ‘const llvm::Optional<T>’
  125 |        ClangInstance->getFileManager().getDirectory(CLCPath, false) != NULL) {
      |                                                                        ^~~~
/usr/include/llvm/ADT/Optional.h:378:16: note: candidate: ‘template<class T> constexpr bool llvm::operator!=(const Optional<T>&, NoneType)’
  378 | constexpr bool operator!=(const Optional<T> &X, NoneType) {
      |                ^~~~~~~~
/usr/include/llvm/ADT/Optional.h:378:16: note:   template argument deduction/substitution failed:
TransformationManager.cpp:125:72: note:   ‘llvm::ErrorOr<const clang::DirectoryEntry*>’ is not derived from ‘const llvm::Optional<T>’
  125 |        ClangInstance->getFileManager().getDirectory(CLCPath, false) != NULL) {
      |                                                                        ^~~~
/usr/include/llvm/ADT/Optional.h:383:16: note: candidate: ‘template<class T> constexpr bool llvm::operator!=(NoneType, const Optional<T>&)’
  383 | constexpr bool operator!=(NoneType, const Optional<T> &X) {
      |                ^~~~~~~~
/usr/include/llvm/ADT/Optional.h:383:16: note:   template argument deduction/substitution failed:
TransformationManager.cpp:125:72: note:   mismatched types ‘const llvm::Optional<T>’ and ‘long int’
  125 |        ClangInstance->getFileManager().getDirectory(CLCPath, false) != NULL) {
      |                                                                        ^~~~
/usr/include/llvm/ADT/Optional.h:434:16: note: candidate: ‘template<class T> constexpr bool llvm::operator!=(const Optional<T>&, const T&)’
  434 | constexpr bool operator!=(const Optional<T> &X, const T &Y) {
      |                ^~~~~~~~
/usr/include/llvm/ADT/Optional.h:434:16: note:   template argument deduction/substitution failed:
TransformationManager.cpp:125:72: note:   ‘llvm::ErrorOr<const clang::DirectoryEntry*>’ is not derived from ‘const llvm::Optional<T>’
  125 |        ClangInstance->getFileManager().getDirectory(CLCPath, false) != NULL) {
      |                                                                        ^~~~
/usr/include/llvm/ADT/Optional.h:439:16: note: candidate: ‘template<class T> constexpr bool llvm::operator!=(const T&, const Optional<T>&)’
  439 | constexpr bool operator!=(const T &X, const Optional<T> &Y) {
      |                ^~~~~~~~
/usr/include/llvm/ADT/Optional.h:439:16: note:   template argument deduction/substitution failed:
TransformationManager.cpp:125:72: note:   mismatched types ‘const llvm::Optional<T>’ and ‘long int’
  125 |        ClangInstance->getFileManager().getDirectory(CLCPath, false) != NULL) {
      |                                                                        ^~~~
In file included from /usr/include/clang/Basic/DiagnosticIDs.h:18,
                 from /usr/include/clang/Basic/Diagnostic.h:17,
                 from TransformationManager.cpp:19:
/usr/include/llvm/ADT/IntrusiveRefCntPtr.h:237:13: note: candidate: ‘template<class T, class U> bool llvm::operator!=(const IntrusiveRefCntPtr<T>&, const IntrusiveRefCntPtr<U>&)’
  237 | inline bool operator!=(const IntrusiveRefCntPtr<T> &A,
      |             ^~~~~~~~
/usr/include/llvm/ADT/IntrusiveRefCntPtr.h:237:13: note:   template argument deduction/substitution failed:
TransformationManager.cpp:125:72: note:   ‘llvm::ErrorOr<const clang::DirectoryEntry*>’ is not derived from ‘const llvm::IntrusiveRefCntPtr<T>’
  125 |        ClangInstance->getFileManager().getDirectory(CLCPath, false) != NULL) {
      |                                                                        ^~~~
/usr/include/llvm/ADT/IntrusiveRefCntPtr.h:248:13: note: candidate: ‘template<class T, class U> bool llvm::operator!=(const IntrusiveRefCntPtr<T>&, U*)’
  248 | inline bool operator!=(const IntrusiveRefCntPtr<T> &A, U *B) {
      |             ^~~~~~~~
/usr/include/llvm/ADT/IntrusiveRefCntPtr.h:248:13: note:   template argument deduction/substitution failed:
TransformationManager.cpp:125:72: note:   ‘llvm::ErrorOr<const clang::DirectoryEntry*>’ is not derived from ‘const llvm::IntrusiveRefCntPtr<T>’
  125 |        ClangInstance->getFileManager().getDirectory(CLCPath, false) != NULL) {
      |                                                                        ^~~~
/usr/include/llvm/ADT/IntrusiveRefCntPtr.h:258:13: note: candidate: ‘template<class T, class U> bool llvm::operator!=(T*, const IntrusiveRefCntPtr<U>&)’
  258 | inline bool operator!=(T *A, const IntrusiveRefCntPtr<U> &B) {
      |             ^~~~~~~~
/usr/include/llvm/ADT/IntrusiveRefCntPtr.h:258:13: note:   template argument deduction/substitution failed:
TransformationManager.cpp:125:72: note:   mismatched types ‘T*’ and ‘llvm::ErrorOr<const clang::DirectoryEntry*>’
  125 |        ClangInstance->getFileManager().getDirectory(CLCPath, false) != NULL) {
      |                                                                        ^~~~
/usr/include/llvm/ADT/IntrusiveRefCntPtr.h:273:6: note: candidate: ‘template<class T> bool llvm::operator!=(std::nullptr_t, const IntrusiveRefCntPtr<T>&)’
  273 | bool operator!=(std::nullptr_t A, const IntrusiveRefCntPtr<T> &B) {
      |      ^~~~~~~~
/usr/include/llvm/ADT/IntrusiveRefCntPtr.h:273:6: note:   template argument deduction/substitution failed:
TransformationManager.cpp:125:72: note:   mismatched types ‘const llvm::IntrusiveRefCntPtr<T>’ and ‘long int’
  125 |        ClangInstance->getFileManager().getDirectory(CLCPath, false) != NULL) {
      |                                                                        ^~~~
/usr/include/llvm/ADT/IntrusiveRefCntPtr.h:278:6: note: candidate: ‘template<class T> bool llvm::operator!=(const IntrusiveRefCntPtr<T>&, std::nullptr_t)’
  278 | bool operator!=(const IntrusiveRefCntPtr<T> &A, std::nullptr_t B) {
      |      ^~~~~~~~
/usr/include/llvm/ADT/IntrusiveRefCntPtr.h:278:6: note:   template argument deduction/substitution failed:
TransformationManager.cpp:125:72: note:   ‘llvm::ErrorOr<const clang::DirectoryEntry*>’ is not derived from ‘const llvm::IntrusiveRefCntPtr<T>’
  125 |        ClangInstance->getFileManager().getDirectory(CLCPath, false) != NULL) {
      |                                                                        ^~~~
In file included from /usr/include/clang/Basic/Diagnostic.h:21:
/usr/include/llvm/ADT/ArrayRef.h:557:15: note: candidate: ‘template<class T> bool llvm::operator!=(ArrayRef<T>, ArrayRef<T>)’
  557 |   inline bool operator!=(ArrayRef<T> LHS, ArrayRef<T> RHS) {
      |               ^~~~~~~~
/usr/include/llvm/ADT/ArrayRef.h:557:15: note:   template argument deduction/substitution failed:
TransformationManager.cpp:125:72: note:   ‘llvm::ErrorOr<const clang::DirectoryEntry*>’ is not derived from ‘llvm::ArrayRef<T>’
  125 |        ClangInstance->getFileManager().getDirectory(CLCPath, false) != NULL) {
      |                                                                        ^~~~
/usr/include/llvm/ADT/ArrayRef.h:562:15: note: candidate: ‘template<class T> bool llvm::operator!=(SmallVectorImpl<T>&, ArrayRef<T>)’
  562 |   inline bool operator!=(SmallVectorImpl<T> &LHS, ArrayRef<T> RHS) {
      |               ^~~~~~~~
/usr/include/llvm/ADT/ArrayRef.h:562:15: note:   template argument deduction/substitution failed:
TransformationManager.cpp:125:72: note:   ‘llvm::ErrorOr<const clang::DirectoryEntry*>’ is not derived from ‘llvm::SmallVectorImpl<T>’
  125 |        ClangInstance->getFileManager().getDirectory(CLCPath, false) != NULL) {
      |                                                                        ^~~~
In file included from /usr/include/clang/Basic/Diagnostic.h:22:
/usr/include/llvm/ADT/DenseMap.h:706:6: note: candidate: ‘template<class DerivedT, class KeyT, class ValueT, class KeyInfoT, class BucketT> bool llvm::operator!=(const DenseMapBase<DerivedT, KeyT, ValueT, KeyInfoT, BucketT>&, const DenseMapBase<DerivedT, KeyT, ValueT, KeyInfoT, BucketT>&)’
  706 | bool operator!=(
      |      ^~~~~~~~
/usr/include/llvm/ADT/DenseMap.h:706:6: note:   template argument deduction/substitution failed:
TransformationManager.cpp:125:72: note:   ‘llvm::ErrorOr<const clang::DirectoryEntry*>’ is not derived from ‘const llvm::DenseMapBase<DerivedT, KeyT, ValueT, KeyInfoT, BucketT>’
  125 |        ClangInstance->getFileManager().getDirectory(CLCPath, false) != NULL) {
      |                                                                        ^~~~
In file included from /usr/include/llvm/ADT/SmallSet.h:18,
                 from /usr/include/clang/Basic/TargetInfo.h:29,
                 from TransformationManager.cpp:20:
/usr/include/llvm/ADT/SmallPtrSet.h:440:6: note: candidate: ‘template<class PtrType> bool llvm::operator!=(const SmallPtrSetImpl<PtrType>&, const SmallPtrSetImpl<PtrType>&)’
  440 | bool operator!=(const SmallPtrSetImpl<PtrType> &LHS,
      |      ^~~~~~~~
/usr/include/llvm/ADT/SmallPtrSet.h:440:6: note:   template argument deduction/substitution failed:
TransformationManager.cpp:125:72: note:   ‘llvm::ErrorOr<const clang::DirectoryEntry*>’ is not derived from ‘const llvm::SmallPtrSetImpl<PtrType>’
  125 |        ClangInstance->getFileManager().getDirectory(CLCPath, false) != NULL) {
      |                                                                        ^~~~
/usr/include/llvm/ADT/SmallSet.h:281:6: note: candidate: ‘template<class T, unsigned int LN, unsigned int RN, class C> bool llvm::operator!=(const SmallSet<T, LN, C>&, const SmallSet<T, RN, C>&)’
  281 | bool operator!=(const SmallSet<T, LN, C> &LHS, const SmallSet<T, RN, C> &RHS) {
      |      ^~~~~~~~
/usr/include/llvm/ADT/SmallSet.h:281:6: note:   template argument deduction/substitution failed:
TransformationManager.cpp:125:72: note:   ‘llvm::ErrorOr<const clang::DirectoryEntry*>’ is not derived from ‘const llvm::SmallSet<T, LN, C>’
  125 |        ClangInstance->getFileManager().getDirectory(CLCPath, false) != NULL) {
      |                                                                        ^~~~
In file included from /usr/include/clang/Basic/FileEntry.h:21,
                 from /usr/include/clang/Basic/Module.h:19,
                 from /usr/include/clang/Lex/Preprocessor.h:22,
                 from TransformationManager.cpp:21:
/usr/include/llvm/ADT/PointerUnion.h:199:6: note: candidate: ‘template<class ... PTs> bool llvm::operator!=(PointerUnion<PTs ...>, PointerUnion<PTs ...>)’
  199 | bool operator!=(PointerUnion<PTs...> lhs, PointerUnion<PTs...> rhs) {
      |      ^~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h:199:6: note:   template argument deduction/substitution failed:
TransformationManager.cpp:125:72: note:   ‘llvm::ErrorOr<const clang::DirectoryEntry*>’ is not derived from ‘llvm::PointerUnion<PTs ...>’
  125 |        ClangInstance->getFileManager().getDirectory(CLCPath, false) != NULL) {
      |                                                                        ^~~~
In file included from /usr/include/clang/Basic/Diagnostic.h:19:
/usr/include/clang/Basic/SourceLocation.h:190:13: note: candidate: ‘bool clang::operator!=(const SourceLocation&, const SourceLocation&)’
  190 | inline bool operator!=(const SourceLocation &LHS, const SourceLocation &RHS) {
      |             ^~~~~~~~
/usr/include/clang/Basic/SourceLocation.h:190:46: note:   no known conversion for argument 1 from ‘llvm::ErrorOr<const clang::DirectoryEntry*>’ to ‘const clang::SourceLocation&’
  190 | inline bool operator!=(const SourceLocation &LHS, const SourceLocation &RHS) {
      |                        ~~~~~~~~~~~~~~~~~~~~~~^~~
In file included from /usr/include/llvm/Support/raw_ostream.h:17:
/usr/include/llvm/ADT/StringRef.h:942:15: note: candidate: ‘bool llvm::operator!=(StringRef, StringRef)’
  942 |   inline bool operator!=(StringRef LHS, StringRef RHS) { return !(LHS == RHS); }
      |               ^~~~~~~~
/usr/include/llvm/ADT/StringRef.h:942:36: note:   no known conversion for argument 1 from ‘llvm::ErrorOr<const clang::DirectoryEntry*>’ to ‘llvm::StringRef’
  942 |   inline bool operator!=(StringRef LHS, StringRef RHS) { return !(LHS == RHS); }
      |                          ~~~~~~~~~~^~~
In file included from /usr/include/llvm/ADT/APFloat.h:18,
                 from /usr/include/clang/Basic/TargetInfo.h:24:
/usr/include/llvm/ADT/APInt.h:1988:13: note: candidate: ‘bool llvm::operator!=(uint64_t, const APInt&)’
 1988 | inline bool operator!=(uint64_t V1, const APInt &V2) { return V2 != V1; }
      |             ^~~~~~~~
/usr/include/llvm/ADT/APInt.h:1988:33: note:   no known conversion for argument 1 from ‘llvm::ErrorOr<const clang::DirectoryEntry*>’ to ‘uint64_t’ {aka ‘long unsigned int’}
 1988 | inline bool operator!=(uint64_t V1, const APInt &V2) { return V2 != V1; }
      |                        ~~~~~~~~~^~
In file included from /usr/include/llvm/ADT/StringExtras.h:17,
                 from /usr/include/llvm/Support/Error.h:18,
                 from /usr/include/clang/Basic/TargetInfo.h:35:
/usr/include/llvm/ADT/APSInt.h:336:13: note: candidate: ‘bool llvm::operator!=(int64_t, const APSInt&)’
  336 | inline bool operator!=(int64_t V1, const APSInt &V2) { return V2 != V1; }
      |             ^~~~~~~~
/usr/include/llvm/ADT/APSInt.h:336:32: note:   no known conversion for argument 1 from ‘llvm::ErrorOr<const clang::DirectoryEntry*>’ to ‘int64_t’ {aka ‘long int’}
  336 | inline bool operator!=(int64_t V1, const APSInt &V2) { return V2 != V1; }
      |                        ~~~~~~~~^~
In file included from /usr/include/llvm/Support/Allocator.h:22,
                 from /usr/include/clang/Basic/IdentifierTable.h:24,
                 from /usr/include/clang/Lex/Preprocessor.h:19:
/usr/include/llvm/Support/Alignment.h:252:13: note: candidate: ‘bool llvm::operator!=(Align, uint64_t)’
  252 | inline bool operator!=(Align Lhs, uint64_t Rhs) {
      |             ^~~~~~~~
/usr/include/llvm/Support/Alignment.h:252:30: note:   no known conversion for argument 1 from ‘llvm::ErrorOr<const clang::DirectoryEntry*>’ to ‘llvm::Align’
  252 | inline bool operator!=(Align Lhs, uint64_t Rhs) {
      |                        ~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:277:13: note: candidate: ‘bool llvm::operator!=(MaybeAlign, uint64_t)’
  277 | inline bool operator!=(MaybeAlign Lhs, uint64_t Rhs) {
      |             ^~~~~~~~
/usr/include/llvm/Support/Alignment.h:277:35: note:   no known conversion for argument 1 from ‘llvm::ErrorOr<const clang::DirectoryEntry*>’ to ‘llvm::MaybeAlign’
  277 | inline bool operator!=(MaybeAlign Lhs, uint64_t Rhs) {
      |                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:285:13: note: candidate: ‘bool llvm::operator!=(Align, Align)’
  285 | inline bool operator!=(Align Lhs, Align Rhs) {
      |             ^~~~~~~~
/usr/include/llvm/Support/Alignment.h:285:30: note:   no known conversion for argument 1 from ‘llvm::ErrorOr<const clang::DirectoryEntry*>’ to ‘llvm::Align’
  285 | inline bool operator!=(Align Lhs, Align Rhs) {
      |                        ~~~~~~^~~
TransformationManager.cpp:135:40: error: cannot convert ‘const char**’ to ‘llvm::ArrayRef<const char*>’
  135 |                                        &Args[0], &Args[0] + Args.size(),
In file included from /usr/include/clang/Frontend/CompilerInstance.h:15,
                 from TransformationManager.cpp:22:
/usr/include/clang/Frontend/CompilerInvocation.h:208:53: note:   initializing argument 2 of ‘static bool clang::CompilerInvocation::CreateFromArgs(clang::CompilerInvocation&, llvm::ArrayRef<const char*>, clang::DiagnosticsEngine&, const char*)’
  208 |                              ArrayRef<const char *> CommandLineArgs,
      |                              ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
TransformationManager.cpp:138:43: error: ‘OpenCL’ is not a member of ‘clang::InputKind’
  138 |                                InputKind::OpenCL, T, PPOpts);
      |                                           ^~~~~~
TransformationManager.cpp:187:20: error: invalid use of incomplete type ‘class clang::Builtin::Context’
  187 |   PP.getBuiltinInfo().initializeBuiltins(PP.getIdentifierTable(),
      |   ~~~~~~~~~~~~~~~~~^~
/usr/include/clang/Lex/Preprocessor.h:86:7: note: forward declaration of ‘class clang::Builtin::Context’
   86 | class Context;
      |       ^~~~~~~
make[2]: *** [Makefile:2044: clang_delta-TransformationManager.o] Error 1
make[2]: Target 'all' not remade because of errors.
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/creduce-creduce-2.10.0/clang_delta'
Making all in clex
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/creduce-creduce-2.10.0/clex'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/creduce-creduce-2.10.0/clex'
Making all in creduce
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/creduce-creduce-2.10.0/creduce'
for pm in creduce_regexes.pm creduce_utils.pm pass_balanced.pm pass_blank.pm pass_clang.pm pass_clang_binsrch.pm pass_clex.pm pass_comments.pm pass_ifs.pm pass_include_includes.pm pass_includes.pm pass_indent.pm pass_ints.pm pass_line_markers.pm pass_lines.pm pass_peep.pm pass_special.pm pass_ternary.pm pass_unifdef.pm; do \
  test -e "$pm" || ln -s "./$pm" "$pm"; \
done
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/creduce-creduce-2.10.0/creduce'
Making all in delta
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/creduce-creduce-2.10.0/delta'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/creduce-creduce-2.10.0/delta'
Making all in scripts
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/creduce-creduce-2.10.0/scripts'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/creduce-creduce-2.10.0/scripts'
Making all in tests
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/creduce-creduce-2.10.0/tests'
for f in run_tests test0.bat test0.sh test1.sh test2.sh test3.sh test4.sh test5.sh test6.sh test7.sh file1.c file2.c file3.c; do \
  test -e "$f" || ln -s "./$f" "$f"; \
done
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/creduce-creduce-2.10.0/tests'
Making all in unifdef
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/creduce-creduce-2.10.0/unifdef'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/creduce-creduce-2.10.0/unifdef'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/creduce-creduce-2.10.0'
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/creduce-creduce-2.10.0'
make[1]: *** [Makefile:448: all-recursive] Error 1
make[1]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/creduce-creduce-2.10.0'
make: *** [Makefile:380: all] Error 2
@marxin
Copy link
Contributor

marxin commented Jun 17, 2022

You'll need marxin/cvise@301d788 and likely other commits I have in C-Vise.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants