csmith-project / creduce

C-Reduce, a C and C++ program reducer
Other
1.46k stars 128 forks source link

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

Open kloczek opened 2 years ago

kloczek commented 2 years ago

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 commented 2 years ago

You'll need https://github.com/marxin/cvise/commit/301d78862074f02cea44b652d66982dfe20e650e and likely other commits I have in C-Vise.