From 771cdf39d9c1e142269e2cafc4365d0d68e05f9a Mon Sep 17 00:00:00 2001 From: Martin Nowack Date: Mon, 10 Aug 2015 08:59:00 +0200 Subject: Refactoring: Moving klee_warning/_error functions to ErrorHandling in Support directory --- include/klee/Internal/Support/ErrorHandling.h | 51 +++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 include/klee/Internal/Support/ErrorHandling.h (limited to 'include') diff --git a/include/klee/Internal/Support/ErrorHandling.h b/include/klee/Internal/Support/ErrorHandling.h new file mode 100644 index 00000000..330985e9 --- /dev/null +++ b/include/klee/Internal/Support/ErrorHandling.h @@ -0,0 +1,51 @@ +//===-- ErrorHandling.h -----------------------------------------*- C++ -*-===// +// +// The KLEE Symbolic Virtual Machine +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef __KLEE_ERROR_HANDLING_H__ +#define __KLEE_ERROR_HANDLING_H__ + +#ifdef __CYGWIN__ +#ifndef WINDOWS +#define WINDOWS +#endif +#endif + +#include + +namespace klee { + +extern FILE *klee_warning_file; +extern FILE *klee_message_file; + +/// Print "KLEE: ERROR" followed by the msg in printf format and a +/// newline on stderr and to warnings.txt, then exit with an error. +void klee_error(const char *msg, ...) + __attribute__((format(printf, 1, 2), noreturn)); + +/// Print "KLEE: " followed by the msg in printf format and a +/// newline on stderr and to messages.txt. +void klee_message(const char *msg, ...) __attribute__((format(printf, 1, 2))); + +/// Print "KLEE: " followed by the msg in printf format and a +/// newline to messages.txt. +void klee_message_to_file(const char *msg, ...) + __attribute__((format(printf, 1, 2))); + +/// Print "KLEE: WARNING" followed by the msg in printf format and a +/// newline on stderr and to warnings.txt. +void klee_warning(const char *msg, ...) __attribute__((format(printf, 1, 2))); + +/// Print "KLEE: WARNING" followed by the msg in printf format and a +/// newline on stderr and to warnings.txt. However, the warning is only +/// printed once for each unique (id, msg) pair (as pointers). +void klee_warning_once(const void *id, const char *msg, ...) + __attribute__((format(printf, 2, 3))); +} + +#endif /* __KLEE_ERROR_HANDLING_H__ */ -- cgit 1.4.1