Skip to content

Commit af39a8b

Browse files
Single-path goto checker for Java requires preprocessing
JBMC requires further setup of symex_bmct.
1 parent 5cc675e commit af39a8b

File tree

2 files changed

+75
-0
lines changed

2 files changed

+75
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/*******************************************************************\
2+
3+
Module: Goto Checker using Single Path Symbolic Execution for Java
4+
5+
Author: Daniel Kroening, Peter Schrammel
6+
7+
\*******************************************************************/
8+
9+
/// \file
10+
/// Goto Checker using Single Path Symbolic Execution for Java
11+
12+
#ifndef CPROVER_JAVA_BYTECODE_JAVA_SINGLE_PATH_SYMEX_CHECKER_H
13+
#define CPROVER_JAVA_BYTECODE_JAVA_SINGLE_PATH_SYMEX_CHECKER_H
14+
15+
#include <goto-checker/single_path_symex_checker.h>
16+
17+
#include "java_bmc_util.h"
18+
19+
class java_single_path_symex_checkert : public single_path_symex_checkert
20+
{
21+
public:
22+
java_single_path_symex_checkert(
23+
const optionst &options,
24+
ui_message_handlert &ui_message_handler,
25+
abstract_goto_modelt &goto_model)
26+
: single_path_symex_checkert(options, ui_message_handler, goto_model)
27+
{
28+
}
29+
30+
void setup_symex(symex_bmct &symex) override
31+
{
32+
single_path_symex_checkert::setup_symex(symex);
33+
java_setup_symex(options, goto_model, symex);
34+
}
35+
};
36+
37+
#endif // CPROVER_JAVA_BYTECODE_JAVA_SINGLE_PATH_SYMEX_CHECKER_H
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/*******************************************************************\
2+
3+
Module: Goto Checker using Single Path Symbolic Execution for Java
4+
5+
Author: Daniel Kroening, Peter Schrammel
6+
7+
\*******************************************************************/
8+
9+
/// \file
10+
/// Goto Checker using Single Path Symbolic Execution for Java
11+
12+
#ifndef CPROVER_JAVA_BYTECODE_JAVA_SINGLE_PATH_SYMEX_ONLY_CHECKER_H
13+
#define CPROVER_JAVA_BYTECODE_JAVA_SINGLE_PATH_SYMEX_ONLY_CHECKER_H
14+
15+
#include <goto-checker/single_path_symex_only_checker.h>
16+
17+
#include "java_bmc_util.h"
18+
19+
class java_single_path_symex_only_checkert
20+
: public single_path_symex_only_checkert
21+
{
22+
public:
23+
java_single_path_symex_only_checkert(
24+
const optionst &options,
25+
ui_message_handlert &ui_message_handler,
26+
abstract_goto_modelt &goto_model)
27+
: single_path_symex_only_checkert(options, ui_message_handler, goto_model)
28+
{
29+
}
30+
31+
void setup_symex(symex_bmct &symex) override
32+
{
33+
single_path_symex_only_checkert::setup_symex(symex);
34+
java_setup_symex(options, goto_model, symex);
35+
}
36+
};
37+
38+
#endif // CPROVER_JAVA_BYTECODE_JAVA_SINGLE_PATH_SYMEX_ONLY_CHECKER_H

0 commit comments

Comments
 (0)