Accepting request 798002 from home:aaronpuchert:branches:devel:tools:statica

Update klee, switch to LLVM 10, disable assertions.

OBS-URL: https://build.opensuse.org/request/show/798002
OBS-URL: https://build.opensuse.org/package/show/devel:tools:statica/klee?expand=0&rev=80
This commit is contained in:
Martin Pluskal 2020-04-27 05:34:10 +00:00 committed by Git OBS Bridge
parent 4477202c6c
commit 1bd14479db
6 changed files with 112 additions and 31 deletions

View File

@ -24,6 +24,10 @@
#include <cmath>
using namespace llvm;
static cl::extrahelp FileCheckOptsEnv(
"\nOptions are parsed from the environment variable FILECHECK_OPTS and\n"
"from the command line.\n");
static cl::opt<std::string>
CheckFilename(cl::Positional, cl::desc("<check-file>"), cl::Optional);
@ -44,6 +48,10 @@ static cl::opt<bool> NoCanonicalizeWhiteSpace(
"strict-whitespace",
cl::desc("Do not treat all horizontal whitespace as equivalent"));
static cl::opt<bool> IgnoreCase(
"ignore-case",
cl::desc("Use case-insensitive matching"));
static cl::list<std::string> ImplicitCheckNot(
"implicit-check-not",
cl::desc("Add an implicit negative check with this pattern to every\n"
@ -93,30 +101,35 @@ static cl::opt<bool> VerboseVerbose(
static const char * DumpInputEnv = "FILECHECK_DUMP_INPUT_ON_FAILURE";
static cl::opt<bool> DumpInputOnFailure(
"dump-input-on-failure", cl::init(std::getenv(DumpInputEnv)),
"dump-input-on-failure",
cl::init(std::getenv(DumpInputEnv) && *std::getenv(DumpInputEnv)),
cl::desc("Dump original input to stderr before failing.\n"
"The value can be also controlled using\n"
"FILECHECK_DUMP_INPUT_ON_FAILURE environment variable.\n"
"This option is deprecated in favor of -dump-input=fail.\n"));
// The order of DumpInputValue members affects their precedence, as documented
// for -dump-input below.
enum DumpInputValue {
DumpInputDefault,
DumpInputHelp,
DumpInputNever,
DumpInputFail,
DumpInputAlways
DumpInputAlways,
DumpInputHelp
};
static cl::opt<DumpInputValue> DumpInput(
"dump-input", cl::init(DumpInputDefault),
static cl::list<DumpInputValue> DumpInputs(
"dump-input",
cl::desc("Dump input to stderr, adding annotations representing\n"
" currently enabled diagnostics\n"),
"currently enabled diagnostics. When there are multiple\n"
"occurrences of this option, the <value> that appears earliest\n"
"in the list below has precedence.\n"),
cl::value_desc("mode"),
cl::values(clEnumValN(DumpInputHelp, "help",
"Explain dump format and quit"),
clEnumValN(DumpInputNever, "never", "Never dump input"),
clEnumValN(DumpInputAlways, "always", "Always dump input"),
clEnumValN(DumpInputFail, "fail", "Dump input on failure"),
clEnumValN(DumpInputAlways, "always", "Always dump input")));
clEnumValN(DumpInputNever, "never", "Never dump input")));
typedef cl::list<std::string>::const_iterator prefix_iterator;
@ -312,8 +325,7 @@ static void BuildInputAnnotations(const std::vector<FileCheckDiag> &Diags,
Label.flush();
LabelWidth = std::max((std::string::size_type)LabelWidth, A.Label.size());
MarkerStyle Marker = GetMarker(DiagItr->MatchTy);
A.Marker = Marker;
A.Marker = GetMarker(DiagItr->MatchTy);
A.FoundAndExpectedMatch =
DiagItr->MatchTy == FileCheckDiag::MatchFoundAndExpected;
@ -332,28 +344,25 @@ static void BuildInputAnnotations(const std::vector<FileCheckDiag> &Diags,
assert(DiagItr->InputStartLine < DiagItr->InputEndLine &&
"expected input range not to be inverted");
A.InputEndCol = UINT_MAX;
A.Marker.Note = "";
Annotations.push_back(A);
for (unsigned L = DiagItr->InputStartLine + 1, E = DiagItr->InputEndLine;
L <= E; ++L) {
// If a range ends before the first column on a line, then it has no
// characters on that line, so there's nothing to render.
if (DiagItr->InputEndCol == 1 && L == E) {
Annotations.back().Marker.Note = Marker.Note;
if (DiagItr->InputEndCol == 1 && L == E)
break;
}
InputAnnotation B;
B.CheckLine = A.CheckLine;
B.CheckDiagIndex = A.CheckDiagIndex;
B.Label = A.Label;
B.InputLine = L;
B.Marker = Marker;
B.Marker = A.Marker;
B.Marker.Lead = '~';
B.Marker.Note = "";
B.InputStartCol = 1;
if (L != E) {
if (L != E)
B.InputEndCol = UINT_MAX;
B.Marker.Note = "";
} else
else
B.InputEndCol = DiagItr->InputEndCol;
B.FoundAndExpectedMatch = A.FoundAndExpectedMatch;
Annotations.push_back(B);
@ -511,6 +520,10 @@ int main(int argc, char **argv) {
InitLLVM X(argc, argv);
cl::ParseCommandLineOptions(argc, argv, /*Overview*/ "", /*Errs*/ nullptr,
"FILECHECK_OPTS");
DumpInputValue DumpInput =
DumpInputs.empty()
? DumpInputDefault
: *std::max_element(DumpInputs.begin(), DumpInputs.end());
if (DumpInput == DumpInputHelp) {
DumpInputAnnotationHelp(outs());
return 0;
@ -554,6 +567,7 @@ int main(int argc, char **argv) {
Req.VerboseVerbose = VerboseVerbose;
Req.NoCanonicalizeWhiteSpace = NoCanonicalizeWhiteSpace;
Req.MatchFullLines = MatchFullLines;
Req.IgnoreCase = IgnoreCase;
if (VerboseVerbose)
Req.Verbose = true;
@ -596,8 +610,7 @@ int main(int argc, char **argv) {
CheckFileText, CheckFile.getBufferIdentifier()),
SMLoc());
std::vector<FileCheckString> CheckStrings;
if (FC.ReadCheckFile(SM, CheckFileText, PrefixRE, CheckStrings))
if (FC.readCheckFile(SM, CheckFileText, PrefixRE))
return 2;
// Open the file to check and add it to SourceMgr.
@ -627,7 +640,7 @@ int main(int argc, char **argv) {
DumpInput = DumpInputOnFailure ? DumpInputFail : DumpInputNever;
std::vector<FileCheckDiag> Diags;
int ExitCode = FC.CheckInput(SM, InputFileText, CheckStrings,
int ExitCode = FC.checkInput(SM, InputFileText,
DumpInput == DumpInputNever ? nullptr : &Diags)
? EXIT_SUCCESS
: 1;

View File

@ -1,4 +1,4 @@
<servicedata>
<service name="tar_scm">
<param name="url">git://github.com/klee/klee.git</param>
<param name="changesrevision">d9888fcefc216b16404a39ac7b82a8fd8d5f343f</param></service></servicedata>
<param name="changesrevision">e6d3f654df90dc6211d6c4993b937ef44b945f36</param></service></servicedata>

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f6b3ac84a0070c3cdb335c79e1103fc0fe89fddcc47d5d88788cc119301210dd
size 646824

3
klee-2.1+20200420.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1391db6895033dee074a7fb8640ae2443c424a5a0913546748f8e8d52653b8f3
size 649528

View File

@ -1,3 +1,71 @@
-------------------------------------------------------------------
Sat Apr 25 22:10:44 UTC 2020 - aaronpuchert@alice-dsl.net
- Update to version 2.1+20200420:
* Consistently define variable using notation VAR=value; fixed comment placement
* Named jobs in Travis CI for better visualization of results
* [posix-runtime] Improve model to handle full-path symbolic files
* [posix-runtime] Add test for full path consistency for symbolic files
* readStringAtAddress: support pointer into objects
* test: add a new test for readStringAtAddress
* readStringAtAddress: use stringstream to obtain the string
* stats: rename QueriesConstructs to QueryConstructs
* Statistic: slightly modernise class definition
* stats: remove queryConstructTime (unused)
* Add unit test for Z3Solver::getConstraintLog
* Run "pkg update -f" before installing dependencies on FreeBSD
* Don't search for CryptoMiniSAT when configuring STP
* Fixed some messages, particularly Klee -> KLEE
* Ensure that temp_builder is used when adding constant array value assertion constraints
* StatsTracker: remove NumObjects, fix assignment of and always write ArrayHashTime
* [posix-runtime] Simple GET/SET_LK model
* Additional test for dealing with vector instructions
* Added another `ScalarizerLegacyPass` run to remove vectorized code introduced during the optimization step
* Fixed compiler warning when printing variable of type off_t
* stat64 is deprecated on macOS; use stat instead
* Use -snap VMs on Cirrus for FreeBSD
* Updating KLEE's version post-release
* Release notes for 2.1
* Set version to 2.1
* fix lit.cfg: numerical comparison of LLVM version numbers
* travis: add LLVM 10.0
* test/lit.cfg: add LLVM 10.0
* stats: enforce table creation
* [klee-stats] Grafana: Limit number of entries to query for column names
* [klee-stats] Use the last row inserted instead of the row with highest Instructions
* [klee-stats] Refactor preparing and printing the table
* [klee-stats] Check for existence of stats file for Grafana as well
* [klee-stats] Do not crash if tabulate is not installed but requested
* [klee-stats] Refactor writing table into own function
* [klee-stats] Refactor CSV printout in own function
* [klee-stats] Check if stats file exist before trying to open it
* Add leading zeros to genbout
* fix p-llvm.inc: invocation for monorepo directory layout
* find_llvm.cmake: enable parsing for git version
* Use FreeBSD 11.3-STABLE instead of EoLed 11.2.
* Workaround `pkg` breakage on FreeBSD CI.
* Use `ref<>` for MemoryObject handling
* Use `ref<>` for UpdateNode
* Clean-up header files
* Add move assignment operator and move construct for `ref` class.
* Add `ReferenceCounter` struct utilized by ref<>
* Fix ptr reference invalidation if last reference gets freed before new reference assigned.
* Use call-by-reference for hash-function invocation
* Replace old TR1 implementations of unordered_map/set with std::* versions
* Use a newer Ubuntu 18.04 from the year 2020 to build KLEE Dockerimage
* Use a newer Ubuntu 18.04 from the year 2020 to build KLEE
* Update Docker image template for KLEE.
* Use system's boost when building metasmt and user newer boolector version
* Do not wait if SANITIZER_BUILD is empty
* Add llvm as build dependency of clang in case no system packages are available
* Add patch support for libcxx
* Use git repository to build LLVM
* Update ubuntu build dependencies for KLEE
* update
- Switch to LLVM 10.
- Disable assertions.
- Take "FileCheck" and "not" from official git repository.
-------------------------------------------------------------------
Fri Jan 24 07:34:10 UTC 2020 - jslaby@suse.com

View File

@ -16,11 +16,10 @@
#
%define llvm_version_major 9
%define llvm_version_minor 0
%define llvm_version_major 10
%define llvm_version %{llvm_version_major}
%define version_unconverted 2.0+20200119
%define version_unconverted 2.1+20200420
%ifarch %{ix86} x86_64
%define with_uclibc 1
@ -32,13 +31,13 @@ Name: klee
Summary: LLVM Execution Engine
License: NCSA
Group: Development/Languages/Other
Version: 2.0+20200119
Version: 2.1+20200420
Release: 0
URL: http://klee.github.io/
Source0: %{name}-%{version}.tar.xz
Source1: %{name}-rpmlintrc
Source2: https://raw.githubusercontent.com/llvm-mirror/llvm/release_%{llvm_version_major}%{llvm_version_minor}/utils/not/not.cpp
Source3: https://raw.githubusercontent.com/llvm-mirror/llvm/release_%{llvm_version_major}%{llvm_version_minor}/utils/FileCheck/FileCheck.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
BuildRequires: clang%{llvm_version}
BuildRequires: cmake
@ -94,6 +93,7 @@ sed -i '1s@/usr/bin/env python3*@/usr/bin/python3@' \
-DCMAKE_CXX_COMPILER=clang++ \
-DCMAKE_AR=%{_bindir}/llvm-ar \
-DCMAKE_RANLIB=%{_bindir}/llvm-ranlib \
-DENABLE_KLEE_ASSERTS=OFF \
-DENABLE_DOXYGEN=OFF \
-DENABLE_SOLVER_STP=ON \
-DENABLE_TCMALLOC=ON \