diff options
-rw-r--r-- | test/Feature/EntryPoint.c | 10 | ||||
-rw-r--r-- | tools/klee/main.cpp | 4 |
2 files changed, 12 insertions, 2 deletions
diff --git a/test/Feature/EntryPoint.c b/test/Feature/EntryPoint.c index 82659733..8a10d36f 100644 --- a/test/Feature/EntryPoint.c +++ b/test/Feature/EntryPoint.c @@ -1,11 +1,17 @@ // RUN: %clang -emit-llvm -g -c %s -o %t.bc // RUN: rm -rf %t.klee-out -// RUN: %klee --output-dir=%t.klee-out --entry-point=other_main %t.bc > %t.log -// RUN: grep "Hello World" %t.log +// RUN: %klee --output-dir=%t.klee-out --entry-point=other_main %t.bc | FileCheck -check-prefix=CHECK-OTHER_MAIN %s + +// RUN: rm -rf %t.klee-out +// RUN: %klee --output-dir=%t.klee-out --entry-point="" %t.bc 2>%t.stderr.log || echo "Exit status must be 0" +// RUN: FileCheck -check-prefix=CHECK-EMPTY --input-file=%t.stderr.log %s #include <stdio.h> int other_main() { printf("Hello World\n"); + // CHECK-OTHER_MAIN: Hello World return 0; } + +// CHECK-EMPTY: KLEE: ERROR: entry-point cannot be empty diff --git a/tools/klee/main.cpp b/tools/klee/main.cpp index dd839de6..3b0731c8 100644 --- a/tools/klee/main.cpp +++ b/tools/klee/main.cpp @@ -1151,6 +1151,10 @@ int main(int argc, char **argv, char **envp) { parseArguments(argc, argv); sys::PrintStackTraceOnErrorSignal(argv[0]); + if (EntryPoint.empty()) { + klee_error("entry-point cannot be empty"); + } + if (Watchdog) { if (MaxTime.empty()) { klee_error("--watchdog used without --max-time"); |