CBMC: /home/runner/work/cbmc/cbmc/src/util/validate.h Source File

Go to the documentation of this file.

1

2

3

4

5

6

7

8

9#ifndef CPROVER_UTIL_VALIDATE_H

10#define CPROVER_UTIL_VALIDATE_H

11

12#include <type_traits>

13

16

22#define DATA_CHECK(vm, condition, message) \

23 do \

24 { \

25 switch(vm) \

26 { \

27 case validation_modet::INVARIANT: \

28 DATA_INVARIANT(condition, message); \

29 break; \

30 case validation_modet::EXCEPTION: \

31 if(!(condition)) \

32 throw incorrect_goto_program_exceptiont(message); \

33 break; \

34 } \

35 } while(0)

36

37#define DATA_CHECK_WITH_DIAGNOSTICS(vm, condition, message, ...) \

38 do \

39 { \

40 switch(vm) \

41 { \

42 case validation_modet::INVARIANT: \

43 DATA_INVARIANT_WITH_DIAGNOSTICS(condition, message, __VA_ARGS__); \

44 break; \

45 case validation_modet::EXCEPTION: \

46 if(!(condition)) \

47 throw incorrect_goto_program_exceptiont(message, __VA_ARGS__); \

48 break; \

49 } \

50 } while(0)

51

52#endif