up to 2.2+20211017 & llvm13
OBS-URL: https://build.opensuse.org/package/show/devel:tools:statica/klee?expand=0&rev=107
This commit is contained in:
parent
e0fb142e28
commit
3f21f921a8
43
0001-Support-FileHandling.cpp-rewrite-to-C-14.patch
Normal file
43
0001-Support-FileHandling.cpp-rewrite-to-C-14.patch
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
From: Lukas Zaoral <lzaoral@redhat.com>
|
||||||
|
Date: Tue, 24 Aug 2021 13:59:21 +0200
|
||||||
|
Subject: Support/FileHandling.cpp: rewrite to C++14
|
||||||
|
Patch-mainline: no
|
||||||
|
References: llvm 13
|
||||||
|
|
||||||
|
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
|
||||||
|
---
|
||||||
|
lib/Support/FileHandling.cpp | 10 +++++-----
|
||||||
|
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/lib/Support/FileHandling.cpp b/lib/Support/FileHandling.cpp
|
||||||
|
index bc65a641ce20..9809b87d0051 100644
|
||||||
|
--- a/lib/Support/FileHandling.cpp
|
||||||
|
+++ b/lib/Support/FileHandling.cpp
|
||||||
|
@@ -22,10 +22,10 @@ namespace klee {
|
||||||
|
|
||||||
|
std::unique_ptr<llvm::raw_fd_ostream>
|
||||||
|
klee_open_output_file(const std::string &path, std::string &error) {
|
||||||
|
- error = "";
|
||||||
|
- std::unique_ptr<llvm::raw_fd_ostream> f;
|
||||||
|
+ error.clear();
|
||||||
|
std::error_code ec;
|
||||||
|
- f = std::unique_ptr<llvm::raw_fd_ostream>(new llvm::raw_fd_ostream(path.c_str(), ec, llvm::sys::fs::F_None)); // FIXME C++14
|
||||||
|
+ auto f = std::make_unique<llvm::raw_fd_ostream>(path.c_str(), ec,
|
||||||
|
+ llvm::sys::fs::F_None);
|
||||||
|
if (ec)
|
||||||
|
error = ec.message();
|
||||||
|
if (!error.empty()) {
|
||||||
|
@@ -37,8 +37,8 @@ klee_open_output_file(const std::string &path, std::string &error) {
|
||||||
|
#ifdef HAVE_ZLIB_H
|
||||||
|
std::unique_ptr<llvm::raw_ostream>
|
||||||
|
klee_open_compressed_output_file(const std::string &path, std::string &error) {
|
||||||
|
- error = "";
|
||||||
|
- std::unique_ptr<llvm::raw_ostream> f(new compressed_fd_ostream(path, error));
|
||||||
|
+ error.clear();
|
||||||
|
+ auto f = std::make_unique<compressed_fd_ostream>(path, error);
|
||||||
|
if (!error.empty()) {
|
||||||
|
f.reset(nullptr);
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.33.1
|
||||||
|
|
38
0002-llvm13-llvm-fs-F_None-has-been-removed.patch
Normal file
38
0002-llvm13-llvm-fs-F_None-has-been-removed.patch
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
From: Lukas Zaoral <lzaoral@redhat.com>
|
||||||
|
Date: Tue, 24 Aug 2021 13:59:28 +0200
|
||||||
|
Subject: llvm13: llvm::fs::F_None has been removed
|
||||||
|
Patch-mainline: no
|
||||||
|
References: llvm 13
|
||||||
|
|
||||||
|
... and should be replaced with llvm::fs::OF_None since LLVM 7.
|
||||||
|
|
||||||
|
See: https://reviews.llvm.org/D101506
|
||||||
|
https://github.com/llvm/llvm-project/commit/1f67a3cba9b09636c56e2109d8a35ae96dc15782
|
||||||
|
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
|
||||||
|
---
|
||||||
|
lib/Support/FileHandling.cpp | 7 +++++++
|
||||||
|
1 file changed, 7 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/lib/Support/FileHandling.cpp b/lib/Support/FileHandling.cpp
|
||||||
|
index 9809b87d0051..462055210df7 100644
|
||||||
|
--- a/lib/Support/FileHandling.cpp
|
||||||
|
+++ b/lib/Support/FileHandling.cpp
|
||||||
|
@@ -24,8 +24,15 @@ std::unique_ptr<llvm::raw_fd_ostream>
|
||||||
|
klee_open_output_file(const std::string &path, std::string &error) {
|
||||||
|
error.clear();
|
||||||
|
std::error_code ec;
|
||||||
|
+
|
||||||
|
+#if LLVM_VERSION_CODE >= LLVM_VERSION(7, 0)
|
||||||
|
+ auto f = std::make_unique<llvm::raw_fd_ostream>(path.c_str(), ec,
|
||||||
|
+ llvm::sys::fs::OF_None);
|
||||||
|
+#else
|
||||||
|
auto f = std::make_unique<llvm::raw_fd_ostream>(path.c_str(), ec,
|
||||||
|
llvm::sys::fs::F_None);
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
if (ec)
|
||||||
|
error = ec.message();
|
||||||
|
if (!error.empty()) {
|
||||||
|
--
|
||||||
|
2.33.1
|
||||||
|
|
@ -0,0 +1,51 @@
|
|||||||
|
From: Lukas Zaoral <lzaoral@redhat.com>
|
||||||
|
Date: Tue, 24 Aug 2021 13:59:29 +0200
|
||||||
|
Subject: llvm13: llvm::cl::GeneralCategory is no longer a global
|
||||||
|
Patch-mainline: no
|
||||||
|
References: llvm 13
|
||||||
|
|
||||||
|
Therefore, llvm::cl::getGeneralCategory() should be used instead.
|
||||||
|
|
||||||
|
See: https://reviews.llvm.org/D105959
|
||||||
|
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
|
||||||
|
---
|
||||||
|
tools/kleaver/main.cpp | 5 ++++-
|
||||||
|
tools/klee/main.cpp | 4 ++++
|
||||||
|
2 files changed, 8 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/tools/kleaver/main.cpp b/tools/kleaver/main.cpp
|
||||||
|
index 9a79474c77e6..0a4cfbffa945 100644
|
||||||
|
--- a/tools/kleaver/main.cpp
|
||||||
|
+++ b/tools/kleaver/main.cpp
|
||||||
|
@@ -387,8 +387,11 @@ static bool printInputAsSMTLIBv2(const char *Filename,
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char **argv) {
|
||||||
|
-
|
||||||
|
+#if LLVM_VERSION_CODE >= LLVM_VERSION(13, 0)
|
||||||
|
+ KCommandLine::HideOptions(llvm::cl::getGeneralCategory());
|
||||||
|
+#else
|
||||||
|
KCommandLine::HideOptions(llvm::cl::GeneralCategory);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
bool success = true;
|
||||||
|
|
||||||
|
diff --git a/tools/klee/main.cpp b/tools/klee/main.cpp
|
||||||
|
index f340e7438af2..506493152073 100644
|
||||||
|
--- a/tools/klee/main.cpp
|
||||||
|
+++ b/tools/klee/main.cpp
|
||||||
|
@@ -1157,7 +1157,11 @@ linkWithUclibc(StringRef libDir, std::string opt_suffix,
|
||||||
|
int main(int argc, char **argv, char **envp) {
|
||||||
|
atexit(llvm_shutdown); // Call llvm_shutdown() on exit.
|
||||||
|
|
||||||
|
+#if LLVM_VERSION_CODE >= LLVM_VERSION(13, 0)
|
||||||
|
+ KCommandLine::HideOptions(llvm::cl::getGeneralCategory());
|
||||||
|
+#else
|
||||||
|
KCommandLine::HideOptions(llvm::cl::GeneralCategory);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
llvm::InitializeNativeTarget();
|
||||||
|
|
||||||
|
--
|
||||||
|
2.33.1
|
||||||
|
|
@ -0,0 +1,78 @@
|
|||||||
|
From: Lukas Zaoral <lzaoral@redhat.com>
|
||||||
|
Date: Tue, 24 Aug 2021 13:59:31 +0200
|
||||||
|
Subject: llvm13: CreateLoad API with implicit types has been deprecated
|
||||||
|
Patch-mainline: no
|
||||||
|
References: llvm 13
|
||||||
|
|
||||||
|
See: https://github.com/llvm/llvm-project/commit/6312c53870897435b38881795460ad9f34bf9819
|
||||||
|
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
|
||||||
|
---
|
||||||
|
lib/Core/ExternalDispatcher.cpp | 6 ++++--
|
||||||
|
lib/Module/IntrinsicCleaner.cpp | 13 +++++++++----
|
||||||
|
2 files changed, 13 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/lib/Core/ExternalDispatcher.cpp b/lib/Core/ExternalDispatcher.cpp
|
||||||
|
index baa5327aad3d..b1bfff47c9e6 100644
|
||||||
|
--- a/lib/Core/ExternalDispatcher.cpp
|
||||||
|
+++ b/lib/Core/ExternalDispatcher.cpp
|
||||||
|
@@ -287,7 +287,8 @@ Function *ExternalDispatcherImpl::createDispatcher(Function *target,
|
||||||
|
ConstantInt::get(Type::getInt64Ty(ctx), (uintptr_t)(void *)&gTheArgsP),
|
||||||
|
PointerType::getUnqual(PointerType::getUnqual(Type::getInt64Ty(ctx))),
|
||||||
|
"argsp");
|
||||||
|
- auto argI64s = Builder.CreateLoad(argI64sp, "args");
|
||||||
|
+ auto argI64s = Builder.CreateLoad(
|
||||||
|
+ argI64sp->getType()->getPointerElementType(), argI64sp, "args");
|
||||||
|
|
||||||
|
// Get the target function type.
|
||||||
|
FunctionType *FTy = cast<FunctionType>(
|
||||||
|
@@ -306,7 +307,8 @@ Function *ExternalDispatcherImpl::createDispatcher(Function *target,
|
||||||
|
ConstantInt::get(Type::getInt32Ty(ctx), idx));
|
||||||
|
|
||||||
|
auto argp = Builder.CreateBitCast(argI64p, PointerType::getUnqual(argTy));
|
||||||
|
- args[i] = Builder.CreateLoad(argp);
|
||||||
|
+ args[i] =
|
||||||
|
+ Builder.CreateLoad(argp->getType()->getPointerElementType(), argp);
|
||||||
|
|
||||||
|
unsigned argSize = argTy->getPrimitiveSizeInBits();
|
||||||
|
idx += ((!!argSize ? argSize : 64) + 63) / 64;
|
||||||
|
diff --git a/lib/Module/IntrinsicCleaner.cpp b/lib/Module/IntrinsicCleaner.cpp
|
||||||
|
index b3b356d2959d..5e720e45684a 100644
|
||||||
|
--- a/lib/Module/IntrinsicCleaner.cpp
|
||||||
|
+++ b/lib/Module/IntrinsicCleaner.cpp
|
||||||
|
@@ -96,24 +96,29 @@ bool IntrinsicCleanerPass::runOnBasicBlock(BasicBlock &b, Module &M) {
|
||||||
|
Builder.CreatePointerCast(dst, i8pp, "vacopy.cast.dst");
|
||||||
|
auto castedSrc =
|
||||||
|
Builder.CreatePointerCast(src, i8pp, "vacopy.cast.src");
|
||||||
|
- auto load = Builder.CreateLoad(castedSrc, "vacopy.read");
|
||||||
|
+ auto load =
|
||||||
|
+ Builder.CreateLoad(castedSrc->getType()->getPointerElementType(),
|
||||||
|
+ castedSrc, "vacopy.read");
|
||||||
|
Builder.CreateStore(load, castedDst, false /* isVolatile */);
|
||||||
|
} else {
|
||||||
|
assert(WordSize == 8 && "Invalid word size!");
|
||||||
|
Type *i64p = PointerType::getUnqual(Type::getInt64Ty(ctx));
|
||||||
|
auto pDst = Builder.CreatePointerCast(dst, i64p, "vacopy.cast.dst");
|
||||||
|
auto pSrc = Builder.CreatePointerCast(src, i64p, "vacopy.cast.src");
|
||||||
|
- auto val = Builder.CreateLoad(pSrc, std::string());
|
||||||
|
+
|
||||||
|
+ auto pType = pSrc->getType()->getPointerElementType();
|
||||||
|
+
|
||||||
|
+ auto val = Builder.CreateLoad(pType, pSrc);
|
||||||
|
Builder.CreateStore(val, pDst, ii);
|
||||||
|
|
||||||
|
auto off = ConstantInt::get(Type::getInt64Ty(ctx), 1);
|
||||||
|
pDst = Builder.CreateGEP(nullptr, pDst, off, std::string());
|
||||||
|
pSrc = Builder.CreateGEP(nullptr, pSrc, off, std::string());
|
||||||
|
- val = Builder.CreateLoad(pSrc, std::string());
|
||||||
|
+ val = Builder.CreateLoad(pType, pSrc);
|
||||||
|
Builder.CreateStore(val, pDst);
|
||||||
|
pDst = Builder.CreateGEP(nullptr, pDst, off, std::string());
|
||||||
|
pSrc = Builder.CreateGEP(nullptr, pSrc, off, std::string());
|
||||||
|
- val = Builder.CreateLoad(pSrc, std::string());
|
||||||
|
+ val = Builder.CreateLoad(pType, pSrc);
|
||||||
|
Builder.CreateStore(val, pDst);
|
||||||
|
}
|
||||||
|
ii->eraseFromParent();
|
||||||
|
--
|
||||||
|
2.33.1
|
||||||
|
|
62
0005-llvm13-CreateGEP-no-longer-accepts-nullptr.patch
Normal file
62
0005-llvm13-CreateGEP-no-longer-accepts-nullptr.patch
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
From: Lukas Zaoral <lzaoral@redhat.com>
|
||||||
|
Date: Tue, 24 Aug 2021 13:59:32 +0200
|
||||||
|
Subject: llvm13: CreateGEP no longer accepts nullptr
|
||||||
|
Patch-mainline: no
|
||||||
|
References: llvm 13
|
||||||
|
|
||||||
|
See: https://reviews.llvm.org/D105653
|
||||||
|
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
|
||||||
|
---
|
||||||
|
lib/Core/ExternalDispatcher.cpp | 2 +-
|
||||||
|
lib/Module/IntrinsicCleaner.cpp | 17 +++++++++--------
|
||||||
|
2 files changed, 10 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/lib/Core/ExternalDispatcher.cpp b/lib/Core/ExternalDispatcher.cpp
|
||||||
|
index b1bfff47c9e6..e43a8a8368ef 100644
|
||||||
|
--- a/lib/Core/ExternalDispatcher.cpp
|
||||||
|
+++ b/lib/Core/ExternalDispatcher.cpp
|
||||||
|
@@ -303,7 +303,7 @@ Function *ExternalDispatcherImpl::createDispatcher(Function *target,
|
||||||
|
auto argTy =
|
||||||
|
(i < FTy->getNumParams() ? FTy->getParamType(i) : (*ai)->getType());
|
||||||
|
auto argI64p =
|
||||||
|
- Builder.CreateGEP(nullptr, argI64s,
|
||||||
|
+ Builder.CreateGEP(argI64s->getType()->getPointerElementType(), argI64s,
|
||||||
|
ConstantInt::get(Type::getInt32Ty(ctx), idx));
|
||||||
|
|
||||||
|
auto argp = Builder.CreateBitCast(argI64p, PointerType::getUnqual(argTy));
|
||||||
|
diff --git a/lib/Module/IntrinsicCleaner.cpp b/lib/Module/IntrinsicCleaner.cpp
|
||||||
|
index 5e720e45684a..f4b867e55316 100644
|
||||||
|
--- a/lib/Module/IntrinsicCleaner.cpp
|
||||||
|
+++ b/lib/Module/IntrinsicCleaner.cpp
|
||||||
|
@@ -106,19 +106,20 @@ bool IntrinsicCleanerPass::runOnBasicBlock(BasicBlock &b, Module &M) {
|
||||||
|
auto pDst = Builder.CreatePointerCast(dst, i64p, "vacopy.cast.dst");
|
||||||
|
auto pSrc = Builder.CreatePointerCast(src, i64p, "vacopy.cast.src");
|
||||||
|
|
||||||
|
- auto pType = pSrc->getType()->getPointerElementType();
|
||||||
|
+ auto pSrcType = pSrc->getType()->getPointerElementType();
|
||||||
|
+ auto pDstType = pDst->getType()->getPointerElementType();
|
||||||
|
|
||||||
|
- auto val = Builder.CreateLoad(pType, pSrc);
|
||||||
|
+ auto val = Builder.CreateLoad(pSrcType, pSrc);
|
||||||
|
Builder.CreateStore(val, pDst, ii);
|
||||||
|
|
||||||
|
auto off = ConstantInt::get(Type::getInt64Ty(ctx), 1);
|
||||||
|
- pDst = Builder.CreateGEP(nullptr, pDst, off, std::string());
|
||||||
|
- pSrc = Builder.CreateGEP(nullptr, pSrc, off, std::string());
|
||||||
|
- val = Builder.CreateLoad(pType, pSrc);
|
||||||
|
+ pDst = Builder.CreateGEP(pDstType, pDst, off);
|
||||||
|
+ pSrc = Builder.CreateGEP(pSrcType, pSrc, off);
|
||||||
|
+ val = Builder.CreateLoad(pSrcType, pSrc);
|
||||||
|
Builder.CreateStore(val, pDst);
|
||||||
|
- pDst = Builder.CreateGEP(nullptr, pDst, off, std::string());
|
||||||
|
- pSrc = Builder.CreateGEP(nullptr, pSrc, off, std::string());
|
||||||
|
- val = Builder.CreateLoad(pType, pSrc);
|
||||||
|
+ pDst = Builder.CreateGEP(pDstType, pDst, off);
|
||||||
|
+ pSrc = Builder.CreateGEP(pSrcType, pSrc, off);
|
||||||
|
+ val = Builder.CreateLoad(pSrcType, pSrc);
|
||||||
|
Builder.CreateStore(val, pDst);
|
||||||
|
}
|
||||||
|
ii->eraseFromParent();
|
||||||
|
--
|
||||||
|
2.33.1
|
||||||
|
|
@ -0,0 +1,41 @@
|
|||||||
|
From: Lukas Zaoral <lzaoral@redhat.com>
|
||||||
|
Date: Tue, 24 Aug 2021 13:59:33 +0200
|
||||||
|
Subject: llvm13: llvm::APInt::toString has been moved to StringExtras.h
|
||||||
|
Patch-mainline: no
|
||||||
|
References: llvm 13
|
||||||
|
|
||||||
|
See: https://reviews.llvm.org/D103888
|
||||||
|
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
|
||||||
|
---
|
||||||
|
lib/Expr/Expr.cpp | 7 +++++++
|
||||||
|
1 file changed, 7 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/lib/Expr/Expr.cpp b/lib/Expr/Expr.cpp
|
||||||
|
index db05e8423d67..2b9eab0dbc37 100644
|
||||||
|
--- a/lib/Expr/Expr.cpp
|
||||||
|
+++ b/lib/Expr/Expr.cpp
|
||||||
|
@@ -17,6 +17,9 @@
|
||||||
|
#include "klee/Support/IntEvaluation.h"
|
||||||
|
|
||||||
|
#include "llvm/ADT/Hashing.h"
|
||||||
|
+#if LLVM_VERSION_CODE >= LLVM_VERSION(13, 0)
|
||||||
|
+#include "llvm/ADT/StringExtras.h"
|
||||||
|
+#endif
|
||||||
|
#include "llvm/Support/CommandLine.h"
|
||||||
|
#include "llvm/Support/raw_ostream.h"
|
||||||
|
|
||||||
|
@@ -366,7 +369,11 @@ void ConstantExpr::toMemory(void *address) {
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConstantExpr::toString(std::string &Res, unsigned radix) const {
|
||||||
|
+#if LLVM_VERSION_CODE >= LLVM_VERSION(13, 0)
|
||||||
|
+ Res = llvm::toString(value, radix, false);
|
||||||
|
+#else
|
||||||
|
Res = value.toString(radix, false);
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
ref<ConstantExpr> ConstantExpr::Concat(const ref<ConstantExpr> &RHS) {
|
||||||
|
--
|
||||||
|
2.33.1
|
||||||
|
|
27
0007-llvm13-Add-LLVM-13-to-lit.cfg.patch
Normal file
27
0007-llvm13-Add-LLVM-13-to-lit.cfg.patch
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
From: Lukas Zaoral <lzaoral@redhat.com>
|
||||||
|
Date: Wed, 13 Oct 2021 13:02:46 +0200
|
||||||
|
Subject: llvm13: Add LLVM 13 to lit.cfg
|
||||||
|
Patch-mainline: no
|
||||||
|
References: llvm 13
|
||||||
|
|
||||||
|
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
|
||||||
|
---
|
||||||
|
test/lit.cfg | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/test/lit.cfg b/test/lit.cfg
|
||||||
|
index bf20c15e60f2..60bcb781bbd5 100644
|
||||||
|
--- a/test/lit.cfg
|
||||||
|
+++ b/test/lit.cfg
|
||||||
|
@@ -158,7 +158,7 @@ config.substitutions.append(
|
||||||
|
# Add feature for the LLVM version in use, so it can be tested in REQUIRES and
|
||||||
|
# XFAIL checks. We also add "not-XXX" variants, for the same reason.
|
||||||
|
known_llvm_versions = { "3.8", "3.9", "4.0", "5.0", "6.0", "7.0", "7.1", "8.0",
|
||||||
|
- "9.0", "10.0", "11.0", "11.1", "12.0" }
|
||||||
|
+ "9.0", "10.0", "11.0", "11.1", "12.0", "13.0" }
|
||||||
|
current_llvm_version_tuple = (int(config.llvm_version_major), int(config.llvm_version_minor))
|
||||||
|
current_llvm_version = "%s.%s" % current_llvm_version_tuple
|
||||||
|
|
||||||
|
--
|
||||||
|
2.33.1
|
||||||
|
|
@ -0,0 +1,51 @@
|
|||||||
|
From: Lukas Zaoral <lzaoral@redhat.com>
|
||||||
|
Date: Sat, 16 Oct 2021 17:26:01 +0200
|
||||||
|
Subject: llvm13: Add LLVM 13 to Travis CI and GitHub Actions
|
||||||
|
Patch-mainline: no
|
||||||
|
References: llvm 13
|
||||||
|
|
||||||
|
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
|
||||||
|
---
|
||||||
|
.github/workflows/build.yaml | 4 ++++
|
||||||
|
.travis.yml | 3 +++
|
||||||
|
2 files changed, 7 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
|
||||||
|
index 9aaa99c71e95..c542781532d4 100644
|
||||||
|
--- a/.github/workflows/build.yaml
|
||||||
|
+++ b/.github/workflows/build.yaml
|
||||||
|
@@ -36,6 +36,7 @@ jobs:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
name: [
|
||||||
|
+ "LLVM 13",
|
||||||
|
"LLVM 12",
|
||||||
|
"LLVM 11",
|
||||||
|
"LLVM 10",
|
||||||
|
@@ -59,6 +60,9 @@ jobs:
|
||||||
|
"No TCMalloc, optimised runtime",
|
||||||
|
]
|
||||||
|
include:
|
||||||
|
+ - name: "LLVM 13"
|
||||||
|
+ env:
|
||||||
|
+ LLVM_VERSION: 13
|
||||||
|
- name: "LLVM 12"
|
||||||
|
env:
|
||||||
|
LLVM_VERSION: 12
|
||||||
|
diff --git a/.travis.yml b/.travis.yml
|
||||||
|
index 8c7598aad7cb..111ba1a0a3ba 100644
|
||||||
|
--- a/.travis.yml
|
||||||
|
+++ b/.travis.yml
|
||||||
|
@@ -53,6 +53,9 @@ env:
|
||||||
|
jobs:
|
||||||
|
include:
|
||||||
|
# Check supported LLVM versions
|
||||||
|
+ - name: "LLVM 13"
|
||||||
|
+ env: LLVM_VERSION=13.0
|
||||||
|
+
|
||||||
|
- name: "LLVM 12"
|
||||||
|
env: LLVM_VERSION=12.0
|
||||||
|
|
||||||
|
--
|
||||||
|
2.33.1
|
||||||
|
|
@ -22,6 +22,7 @@
|
|||||||
#include "llvm/Support/WithColor.h"
|
#include "llvm/Support/WithColor.h"
|
||||||
#include "llvm/Support/raw_ostream.h"
|
#include "llvm/Support/raw_ostream.h"
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
#include <map>
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
static cl::extrahelp FileCheckOptsEnv(
|
static cl::extrahelp FileCheckOptsEnv(
|
||||||
@ -78,7 +79,7 @@ static cl::opt<bool> AllowEmptyInput(
|
|||||||
"checks that some error message does not occur, for example."));
|
"checks that some error message does not occur, for example."));
|
||||||
|
|
||||||
static cl::opt<bool> AllowUnusedPrefixes(
|
static cl::opt<bool> AllowUnusedPrefixes(
|
||||||
"allow-unused-prefixes", cl::init(true),
|
"allow-unused-prefixes", cl::init(false), cl::ZeroOrMore,
|
||||||
cl::desc("Allow prefixes to be specified but not appear in the test."));
|
cl::desc("Allow prefixes to be specified but not appear in the test."));
|
||||||
|
|
||||||
static cl::opt<bool> MatchFullLines(
|
static cl::opt<bool> MatchFullLines(
|
||||||
@ -212,11 +213,20 @@ static MarkerStyle GetMarker(FileCheckDiag::MatchType MatchTy) {
|
|||||||
case FileCheckDiag::MatchFoundButDiscarded:
|
case FileCheckDiag::MatchFoundButDiscarded:
|
||||||
return MarkerStyle('!', raw_ostream::CYAN,
|
return MarkerStyle('!', raw_ostream::CYAN,
|
||||||
"discard: overlaps earlier match");
|
"discard: overlaps earlier match");
|
||||||
|
case FileCheckDiag::MatchFoundErrorNote:
|
||||||
|
// Note should always be overridden within the FileCheckDiag.
|
||||||
|
return MarkerStyle('!', raw_ostream::RED,
|
||||||
|
"error: unknown error after match",
|
||||||
|
/*FiltersAsError=*/true);
|
||||||
case FileCheckDiag::MatchNoneAndExcluded:
|
case FileCheckDiag::MatchNoneAndExcluded:
|
||||||
return MarkerStyle('X', raw_ostream::GREEN);
|
return MarkerStyle('X', raw_ostream::GREEN);
|
||||||
case FileCheckDiag::MatchNoneButExpected:
|
case FileCheckDiag::MatchNoneButExpected:
|
||||||
return MarkerStyle('X', raw_ostream::RED, "error: no match found",
|
return MarkerStyle('X', raw_ostream::RED, "error: no match found",
|
||||||
/*FiltersAsError=*/true);
|
/*FiltersAsError=*/true);
|
||||||
|
case FileCheckDiag::MatchNoneForInvalidPattern:
|
||||||
|
return MarkerStyle('X', raw_ostream::RED,
|
||||||
|
"error: match failed for invalid pattern",
|
||||||
|
/*FiltersAsError=*/true);
|
||||||
case FileCheckDiag::MatchFuzzy:
|
case FileCheckDiag::MatchFuzzy:
|
||||||
return MarkerStyle('?', raw_ostream::MAGENTA, "possible intended match",
|
return MarkerStyle('?', raw_ostream::MAGENTA, "possible intended match",
|
||||||
/*FiltersAsError=*/true);
|
/*FiltersAsError=*/true);
|
||||||
@ -248,7 +258,10 @@ static void DumpInputAnnotationHelp(raw_ostream &OS) {
|
|||||||
// Labels for input lines.
|
// Labels for input lines.
|
||||||
OS << " - ";
|
OS << " - ";
|
||||||
WithColor(OS, raw_ostream::SAVEDCOLOR, true) << "L:";
|
WithColor(OS, raw_ostream::SAVEDCOLOR, true) << "L:";
|
||||||
OS << " labels line number L of the input file\n";
|
OS << " labels line number L of the input file\n"
|
||||||
|
<< " An extra space is added after each input line to represent"
|
||||||
|
<< " the\n"
|
||||||
|
<< " newline character\n";
|
||||||
|
|
||||||
// Labels for annotation lines.
|
// Labels for annotation lines.
|
||||||
OS << " - ";
|
OS << " - ";
|
||||||
@ -366,16 +379,25 @@ BuildInputAnnotations(const SourceMgr &SM, unsigned CheckFileBufferID,
|
|||||||
const std::vector<FileCheckDiag> &Diags,
|
const std::vector<FileCheckDiag> &Diags,
|
||||||
std::vector<InputAnnotation> &Annotations,
|
std::vector<InputAnnotation> &Annotations,
|
||||||
unsigned &LabelWidth) {
|
unsigned &LabelWidth) {
|
||||||
// How many diagnostics have we seen so far?
|
struct CompareSMLoc {
|
||||||
unsigned DiagCount = 0;
|
bool operator()(const SMLoc &LHS, const SMLoc &RHS) const {
|
||||||
// How many diagnostics has the current check seen so far?
|
return LHS.getPointer() < RHS.getPointer();
|
||||||
unsigned CheckDiagCount = 0;
|
}
|
||||||
|
};
|
||||||
|
// How many diagnostics does each pattern have?
|
||||||
|
std::map<SMLoc, unsigned, CompareSMLoc> DiagCountPerPattern;
|
||||||
|
for (auto Diag : Diags)
|
||||||
|
++DiagCountPerPattern[Diag.CheckLoc];
|
||||||
|
// How many diagnostics have we seen so far per pattern?
|
||||||
|
std::map<SMLoc, unsigned, CompareSMLoc> DiagIndexPerPattern;
|
||||||
|
// How many total diagnostics have we seen so far?
|
||||||
|
unsigned DiagIndex = 0;
|
||||||
// What's the widest label?
|
// What's the widest label?
|
||||||
LabelWidth = 0;
|
LabelWidth = 0;
|
||||||
for (auto DiagItr = Diags.begin(), DiagEnd = Diags.end(); DiagItr != DiagEnd;
|
for (auto DiagItr = Diags.begin(), DiagEnd = Diags.end(); DiagItr != DiagEnd;
|
||||||
++DiagItr) {
|
++DiagItr) {
|
||||||
InputAnnotation A;
|
InputAnnotation A;
|
||||||
A.DiagIndex = DiagCount++;
|
A.DiagIndex = DiagIndex++;
|
||||||
|
|
||||||
// Build label, which uniquely identifies this check result.
|
// Build label, which uniquely identifies this check result.
|
||||||
unsigned CheckBufferID = SM.FindBufferContainingLoc(DiagItr->CheckLoc);
|
unsigned CheckBufferID = SM.FindBufferContainingLoc(DiagItr->CheckLoc);
|
||||||
@ -391,17 +413,8 @@ BuildInputAnnotations(const SourceMgr &SM, unsigned CheckFileBufferID,
|
|||||||
else
|
else
|
||||||
llvm_unreachable("expected diagnostic's check location to be either in "
|
llvm_unreachable("expected diagnostic's check location to be either in "
|
||||||
"the check file or for an implicit pattern");
|
"the check file or for an implicit pattern");
|
||||||
unsigned CheckDiagIndex = UINT_MAX;
|
if (DiagCountPerPattern[DiagItr->CheckLoc] > 1)
|
||||||
auto DiagNext = std::next(DiagItr);
|
Label << "'" << DiagIndexPerPattern[DiagItr->CheckLoc]++;
|
||||||
if (DiagNext != DiagEnd && DiagItr->CheckTy == DiagNext->CheckTy &&
|
|
||||||
DiagItr->CheckLoc == DiagNext->CheckLoc)
|
|
||||||
CheckDiagIndex = CheckDiagCount++;
|
|
||||||
else if (CheckDiagCount) {
|
|
||||||
CheckDiagIndex = CheckDiagCount;
|
|
||||||
CheckDiagCount = 0;
|
|
||||||
}
|
|
||||||
if (CheckDiagIndex != UINT_MAX)
|
|
||||||
Label << "'" << CheckDiagIndex;
|
|
||||||
Label.flush();
|
Label.flush();
|
||||||
LabelWidth = std::max((std::string::size_type)LabelWidth, A.Label.size());
|
LabelWidth = std::max((std::string::size_type)LabelWidth, A.Label.size());
|
||||||
|
|
||||||
@ -418,6 +431,11 @@ BuildInputAnnotations(const SourceMgr &SM, unsigned CheckFileBufferID,
|
|||||||
DiagItr->InputStartCol == DiagItr->InputEndCol)
|
DiagItr->InputStartCol == DiagItr->InputEndCol)
|
||||||
A.Marker.Lead = ' ';
|
A.Marker.Lead = ' ';
|
||||||
}
|
}
|
||||||
|
if (DiagItr->MatchTy == FileCheckDiag::MatchFoundErrorNote) {
|
||||||
|
assert(!DiagItr->Note.empty() &&
|
||||||
|
"expected custom note for MatchFoundErrorNote");
|
||||||
|
A.Marker.Note = "error: " + A.Marker.Note;
|
||||||
|
}
|
||||||
A.FoundAndExpectedMatch =
|
A.FoundAndExpectedMatch =
|
||||||
DiagItr->MatchTy == FileCheckDiag::MatchFoundAndExpected;
|
DiagItr->MatchTy == FileCheckDiag::MatchFoundAndExpected;
|
||||||
|
|
||||||
@ -662,15 +680,16 @@ static void DumpAnnotatedInput(raw_ostream &OS, const FileCheckRequest &Req,
|
|||||||
COS.resetColor();
|
COS.resetColor();
|
||||||
else if (WasInMatch && !InMatch)
|
else if (WasInMatch && !InMatch)
|
||||||
COS.changeColor(raw_ostream::CYAN, true, true);
|
COS.changeColor(raw_ostream::CYAN, true, true);
|
||||||
if (*InputFilePtr == '\n')
|
if (*InputFilePtr == '\n') {
|
||||||
Newline = true;
|
Newline = true;
|
||||||
else
|
COS << ' ';
|
||||||
|
} else
|
||||||
COS << *InputFilePtr;
|
COS << *InputFilePtr;
|
||||||
++InputFilePtr;
|
++InputFilePtr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*LineOS << '\n';
|
*LineOS << '\n';
|
||||||
unsigned InputLineWidth = InputFilePtr - InputFileLine - Newline;
|
unsigned InputLineWidth = InputFilePtr - InputFileLine;
|
||||||
|
|
||||||
// Print any annotations.
|
// Print any annotations.
|
||||||
while (AnnotationItr != AnnotationEnd &&
|
while (AnnotationItr != AnnotationEnd &&
|
||||||
@ -745,14 +764,11 @@ int main(int argc, char **argv) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
FileCheckRequest Req;
|
FileCheckRequest Req;
|
||||||
for (StringRef Prefix : CheckPrefixes)
|
append_range(Req.CheckPrefixes, CheckPrefixes);
|
||||||
Req.CheckPrefixes.push_back(Prefix);
|
|
||||||
|
|
||||||
for (StringRef Prefix : CommentPrefixes)
|
append_range(Req.CommentPrefixes, CommentPrefixes);
|
||||||
Req.CommentPrefixes.push_back(Prefix);
|
|
||||||
|
|
||||||
for (StringRef CheckNot : ImplicitCheckNot)
|
append_range(Req.ImplicitCheckNot, ImplicitCheckNot);
|
||||||
Req.ImplicitCheckNot.push_back(CheckNot);
|
|
||||||
|
|
||||||
bool GlobalDefineError = false;
|
bool GlobalDefineError = false;
|
||||||
for (StringRef G : GlobalDefines) {
|
for (StringRef G : GlobalDefines) {
|
||||||
@ -806,7 +822,7 @@ int main(int argc, char **argv) {
|
|||||||
|
|
||||||
// Read the expected strings from the check file.
|
// Read the expected strings from the check file.
|
||||||
ErrorOr<std::unique_ptr<MemoryBuffer>> CheckFileOrErr =
|
ErrorOr<std::unique_ptr<MemoryBuffer>> CheckFileOrErr =
|
||||||
MemoryBuffer::getFileOrSTDIN(CheckFilename);
|
MemoryBuffer::getFileOrSTDIN(CheckFilename, /*IsText=*/true);
|
||||||
if (std::error_code EC = CheckFileOrErr.getError()) {
|
if (std::error_code EC = CheckFileOrErr.getError()) {
|
||||||
errs() << "Could not open check file '" << CheckFilename
|
errs() << "Could not open check file '" << CheckFilename
|
||||||
<< "': " << EC.message() << '\n';
|
<< "': " << EC.message() << '\n';
|
||||||
@ -828,7 +844,7 @@ int main(int argc, char **argv) {
|
|||||||
|
|
||||||
// Open the file to check and add it to SourceMgr.
|
// Open the file to check and add it to SourceMgr.
|
||||||
ErrorOr<std::unique_ptr<MemoryBuffer>> InputFileOrErr =
|
ErrorOr<std::unique_ptr<MemoryBuffer>> InputFileOrErr =
|
||||||
MemoryBuffer::getFileOrSTDIN(InputFilename);
|
MemoryBuffer::getFileOrSTDIN(InputFilename, /*IsText=*/true);
|
||||||
if (InputFilename == "-")
|
if (InputFilename == "-")
|
||||||
InputFilename = "<stdin>"; // Overwrite for improved diagnostic messages
|
InputFilename = "<stdin>"; // Overwrite for improved diagnostic messages
|
||||||
if (std::error_code EC = InputFileOrErr.getError()) {
|
if (std::error_code EC = InputFileOrErr.getError()) {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<servicedata>
|
<servicedata>
|
||||||
<service name="tar_scm">
|
<service name="tar_scm">
|
||||||
<param name="url">git://github.com/klee/klee.git</param>
|
<param name="url">git://github.com/klee/klee.git</param>
|
||||||
<param name="changesrevision">57d81af893ed60abb6b1772532ce73ac5e489d4b</param></service></servicedata>
|
<param name="changesrevision">5ee3a54001fe4291a0a5c3ce3beb33f856836cbb</param></service></servicedata>
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:d75d749119a0a277a3b7567c32cea55c7f2eed183ab5d1a8ae08d823882f8bab
|
|
||||||
size 19338253
|
|
3
klee-2.2+20211017.obscpio
Normal file
3
klee-2.2+20211017.obscpio
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:f11ffbef1a0ee24886b60f2c57a63fdab1fdf4accc89a95166749c3d09e099df
|
||||||
|
size 19338765
|
18
klee.changes
18
klee.changes
@ -1,3 +1,21 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Oct 19 07:47:49 UTC 2021 - jslaby@suse.cz
|
||||||
|
|
||||||
|
- Update to version 2.2+20211017:
|
||||||
|
* test/Runtime/POSIX/Futimesat: futimesat(2) requires _GNU_SOURCE on glibc platforms
|
||||||
|
* test/Runtime/POSIX/Futimesat: Compile with -std=c99
|
||||||
|
* test/Feature/FunctionAlias.c: Add missing CHECK-UNKNOWN prefix
|
||||||
|
- add llvm 13 support
|
||||||
|
* 0001-Support-FileHandling.cpp-rewrite-to-C-14.patch
|
||||||
|
* 0002-llvm13-llvm-fs-F_None-has-been-removed.patch
|
||||||
|
* 0003-llvm13-llvm-cl-GeneralCategory-is-no-longer-a-global.patch
|
||||||
|
* 0004-llvm13-CreateLoad-API-with-implicit-types-has-been-d.patch
|
||||||
|
* 0005-llvm13-CreateGEP-no-longer-accepts-nullptr.patch
|
||||||
|
* 0006-llvm13-llvm-APInt-toString-has-been-moved-to-StringE.patch
|
||||||
|
* 0007-llvm13-Add-LLVM-13-to-lit.cfg.patch
|
||||||
|
* 0008-llvm13-Add-LLVM-13-to-Travis-CI-and-GitHub-Actions.patch
|
||||||
|
- switch to llvm 13
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Oct 04 10:57:30 UTC 2021 - jslaby@suse.cz
|
Mon Oct 04 10:57:30 UTC 2021 - jslaby@suse.cz
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
name: klee
|
name: klee
|
||||||
version: 2.2+20210915
|
version: 2.2+20211017
|
||||||
mtime: 1631722460
|
mtime: 1634506376
|
||||||
commit: 57d81af893ed60abb6b1772532ce73ac5e489d4b
|
commit: 5ee3a54001fe4291a0a5c3ce3beb33f856836cbb
|
||||||
|
|
||||||
|
13
klee.spec
13
klee.spec
@ -16,7 +16,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
%define llvm_version_major 12
|
%define llvm_version_major 13
|
||||||
%define llvm_version %{llvm_version_major}
|
%define llvm_version %{llvm_version_major}
|
||||||
|
|
||||||
%ifarch x86_64
|
%ifarch x86_64
|
||||||
@ -31,7 +31,7 @@ Name: klee
|
|||||||
Summary: LLVM Execution Engine
|
Summary: LLVM Execution Engine
|
||||||
License: NCSA
|
License: NCSA
|
||||||
Group: Development/Languages/Other
|
Group: Development/Languages/Other
|
||||||
Version: 2.2+20210915
|
Version: 2.2+20211017
|
||||||
Release: 0
|
Release: 0
|
||||||
URL: http://klee.github.io/
|
URL: http://klee.github.io/
|
||||||
Source0: %{name}-%{version}.tar.xz
|
Source0: %{name}-%{version}.tar.xz
|
||||||
@ -39,6 +39,15 @@ Source1: %{name}-rpmlintrc
|
|||||||
Source2: https://raw.githubusercontent.com/llvm/llvm-project/llvmorg-%{llvm_version_major}.0.0/llvm/utils/not/not.cpp
|
Source2: https://raw.githubusercontent.com/llvm/llvm-project/llvmorg-%{llvm_version_major}.0.0/llvm/utils/not/not.cpp
|
||||||
Source3: https://raw.githubusercontent.com/llvm/llvm-project/llvmorg-%{llvm_version_major}.0.0/llvm/utils/FileCheck/FileCheck.cpp
|
Source3: https://raw.githubusercontent.com/llvm/llvm-project/llvmorg-%{llvm_version_major}.0.0/llvm/utils/FileCheck/FileCheck.cpp
|
||||||
Patch0: 0001-test-disable-until-it-is-fixed.patch
|
Patch0: 0001-test-disable-until-it-is-fixed.patch
|
||||||
|
Patch1: 0001-Support-FileHandling.cpp-rewrite-to-C-14.patch
|
||||||
|
Patch2: 0002-llvm13-llvm-fs-F_None-has-been-removed.patch
|
||||||
|
Patch3: 0003-llvm13-llvm-cl-GeneralCategory-is-no-longer-a-global.patch
|
||||||
|
Patch4: 0004-llvm13-CreateLoad-API-with-implicit-types-has-been-d.patch
|
||||||
|
Patch5: 0005-llvm13-CreateGEP-no-longer-accepts-nullptr.patch
|
||||||
|
Patch6: 0006-llvm13-llvm-APInt-toString-has-been-moved-to-StringE.patch
|
||||||
|
Patch7: 0007-llvm13-Add-LLVM-13-to-lit.cfg.patch
|
||||||
|
Patch8: 0008-llvm13-Add-LLVM-13-to-Travis-CI-and-GitHub-Actions.patch
|
||||||
|
|
||||||
BuildRequires: clang%{llvm_version}
|
BuildRequires: clang%{llvm_version}
|
||||||
BuildRequires: cmake
|
BuildRequires: cmake
|
||||||
BuildRequires: gperftools-devel
|
BuildRequires: gperftools-devel
|
||||||
|
Loading…
x
Reference in New Issue
Block a user