diff options
-rw-r--r-- | lib/Core/Executor.cpp | 31 | ||||
-rw-r--r-- | test/Feature/AsmAddresses.c | 25 |
2 files changed, 2 insertions, 54 deletions
diff --git a/lib/Core/Executor.cpp b/lib/Core/Executor.cpp index d2978642..545218f9 100644 --- a/lib/Core/Executor.cpp +++ b/lib/Core/Executor.cpp @@ -139,10 +139,6 @@ namespace { cl::init(false)); cl::opt<bool> - UseAsmAddresses("use-asm-addresses", - cl::init(false)); - - cl::opt<bool> RandomizeFork("randomize-fork", cl::init(false), cl::desc("Randomly swap the true and false states on a fork (default=off)")); @@ -580,32 +576,9 @@ void Executor::initializeGlobals(ExecutionState &state) { } else { LLVM_TYPE_Q Type *ty = i->getType()->getElementType(); uint64_t size = kmodule->targetData->getTypeStoreSize(ty); - MemoryObject *mo = 0; - -#if LLVM_VERSION_CODE < LLVM_VERSION(3, 3) - if (UseAsmAddresses && i->getName()[0]=='\01') { -#else - if (UseAsmAddresses && !i->getName().empty()) { -#endif - char *end; -#if LLVM_VERSION_CODE < LLVM_VERSION(3, 3) - uint64_t address = ::strtoll(i->getName().str().c_str()+1, &end, 0); -#else - uint64_t address = ::strtoll(i->getName().str().c_str(), &end, 0); -#endif - - if (end && *end == '\0') { - klee_message("NOTE: allocated global at asm specified address: %#08llx" - " (%llu bytes)", - (long long) address, (unsigned long long) size); - mo = memory->allocateFixed(address, size, &*i); - mo->isUserSpecified = true; // XXX hack; - } - } - + MemoryObject *mo = memory->allocate(size, false, true, &*i); if (!mo) - mo = memory->allocate(size, false, true, &*i); - assert(mo && "out of memory"); + llvm::report_fatal_error("out of memory"); ObjectState *os = bindObjectInState(state, mo, false); globalObjects.insert(std::make_pair(i, mo)); globalAddresses.insert(std::make_pair(i, mo->getBaseExpr())); diff --git a/test/Feature/AsmAddresses.c b/test/Feature/AsmAddresses.c deleted file mode 100644 index cfe566af..00000000 --- a/test/Feature/AsmAddresses.c +++ /dev/null @@ -1,25 +0,0 @@ -// RUN: %llvmgcc -emit-llvm -g -c -o %t.bc %s -// RUN: rm -rf %t.klee-out -// RUN: %klee --output-dir=%t.klee-out --exit-on-error --use-asm-addresses %t.bc - -// RUN: %llvmgcc -emit-llvm -DOVERLAP -g -c -o %t.bc %s -// RUN: rm -rf %t.klee-out -// RUN: not %klee --output-dir=%t.klee-out --exit-on-error --use-asm-addresses %t.bc - -#include <assert.h> - - -volatile unsigned char x0 __asm ("0x0021"); -volatile unsigned char whee __asm ("0x0WHEE"); - -#ifdef OVERLAP -volatile unsigned int y0 __asm ("0x0030"); -volatile unsigned int y1 __asm ("0x0032"); -#endif - -int main() { - assert(&x0 == (void*) 0x0021); - assert(&whee != (void*) 0x0); - - return 0; -} |