diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Core/StatsTracker.cpp | 10 | ||||
-rw-r--r-- | lib/Module/KModule.cpp | 6 |
2 files changed, 15 insertions, 1 deletions
diff --git a/lib/Core/StatsTracker.cpp b/lib/Core/StatsTracker.cpp index 8161a52c..fde2eae8 100644 --- a/lib/Core/StatsTracker.cpp +++ b/lib/Core/StatsTracker.cpp @@ -55,6 +55,7 @@ #include <iostream> #include <fstream> +#include <unistd.h> using namespace klee; using namespace llvm; @@ -182,12 +183,13 @@ StatsTracker::StatsTracker(Executor &_executor, std::string _objectFilename, updateMinDistToUncovered(_updateMinDistToUncovered) { KModule *km = executor.kmodule; - sys::Path module(objectFilename); #if LLVM_VERSION_CODE < LLVM_VERSION(3, 1) if (!sys::Path(objectFilename).isAbsolute()) { #else if (!sys::path::is_absolute(objectFilename)) { #endif + +#if LLVM_VERSION_CODE < LLVM_VERSION(3,4) sys::Path current = sys::Path::GetCurrentDirectory(); current.appendComponent(objectFilename); #if LLVM_VERSION_CODE < LLVM_VERSION(3, 1) @@ -196,6 +198,12 @@ StatsTracker::StatsTracker(Executor &_executor, std::string _objectFilename, if (sys::fs::exists(current.c_str())) #endif objectFilename = current.c_str(); +#else + SmallString<128> current(objectFilename); + if(sys::fs::make_absolute(current) && sys::fs::exists(current.str())) + objectFilename = current.c_str(); +#endif + } if (OutputIStats) diff --git a/lib/Module/KModule.cpp b/lib/Module/KModule.cpp index 2ecb14b8..5f03728b 100644 --- a/lib/Module/KModule.cpp +++ b/lib/Module/KModule.cpp @@ -375,6 +375,11 @@ void KModule::prepare(const Interpreter::ModuleOptions &opts, // FIXME: Find a way that we can test programs without requiring // this to be linked in, it makes low level debugging much more // annoying. +#if LLVM_VERSION_CODE >= LLVM_VERSION(3,4) + SmallString<128> LibPath(opts.LibraryDir); + llvm::sys::path::append(LibPath, "kleeRuntimeIntrinsic.bc"); + module = linkWithLibrary(module, LibPath.str()); +#else llvm::sys::Path path(opts.LibraryDir); #if LLVM_VERSION_CODE >= LLVM_VERSION(3, 3) path.appendComponent("kleeRuntimeIntrinsic.bc"); @@ -382,6 +387,7 @@ void KModule::prepare(const Interpreter::ModuleOptions &opts, path.appendComponent("libkleeRuntimeIntrinsic.bca"); #endif module = linkWithLibrary(module, path.c_str()); +#endif // Add internal functions which are not used to check if instructions // have been already visited |