about summary refs log tree commit diff homepage
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2014-09-14 13:16:08 -0700
committerDaniel Dunbar <daniel@zuster.org>2014-09-14 13:22:29 -0700
commit251a32eba660615bc1583fd7e328dde7641499c1 (patch)
treeafa57922d86bf19972df456aa58c85cef748c591
parentcaf503da40a515e2239e925eebc8822cc77e0fae (diff)
downloadklee-251a32eba660615bc1583fd7e328dde7641499c1.tar.gz
[Core] Remove support for "--use-asm-addresses".
 - I suspect no one is using this feature, and I'm not sure it is well conceived
   either. Ripping it out for now in lieu of bothering to maintain it.
-rw-r--r--lib/Core/Executor.cpp31
-rw-r--r--test/Feature/AsmAddresses.c25
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;
-}