00001 //===-- SeedInfo.h ----------------------------------------------*- C++ -*-===// 00002 // 00003 // The KLEE Symbolic Virtual Machine 00004 // 00005 // This file is distributed under the University of Illinois Open Source 00006 // License. See LICENSE.TXT for details. 00007 // 00008 //===----------------------------------------------------------------------===// 00009 00010 #ifndef KLEE_SEEDINFO_H 00011 #define KLEE_SEEDINFO_H 00012 00013 #include "klee/util/Assignment.h" 00014 00015 extern "C" { 00016 struct KTest; 00017 struct KTestObject; 00018 } 00019 00020 namespace klee { 00021 class ExecutionState; 00022 class TimingSolver; 00023 00024 class SeedInfo { 00025 public: 00026 Assignment assignment; 00027 KTest *input; 00028 unsigned inputPosition; 00029 std::set<struct KTestObject*> used; 00030 00031 public: 00032 explicit 00033 SeedInfo(KTest *_input) : assignment(true), 00034 input(_input), 00035 inputPosition(0) {} 00036 00037 KTestObject *getNextInput(const MemoryObject *mo, 00038 bool byName); 00039 00042 void patchSeed(const ExecutionState &state, 00043 ref<Expr> condition, 00044 TimingSolver *solver); 00045 }; 00046 } 00047 00048 #endif
1.5.8