8
8
9
9
#include < catch.hpp>
10
10
11
+ #include < java_bytecode/java_types.h>
11
12
#include < util/arith_tools.h>
12
13
#include < util/c_types.h>
14
+ #include < util/config.h>
13
15
#include < util/namespace.h>
14
16
#include < util/pointer_predicates.h>
15
17
#include < util/simplify_expr.h>
18
20
19
21
TEST_CASE (" Simplify pointer_offset(address of array index)" )
20
22
{
23
+ config.set_arch (" none" );
24
+
21
25
symbol_tablet symbol_table;
22
26
namespacet ns (symbol_table);
23
27
@@ -38,6 +42,8 @@ TEST_CASE("Simplify pointer_offset(address of array index)")
38
42
39
43
TEST_CASE (" Simplify const pointer offset" )
40
44
{
45
+ config.set_arch (" none" );
46
+
41
47
symbol_tablet symbol_table;
42
48
namespacet ns (symbol_table);
43
49
@@ -54,3 +60,23 @@ TEST_CASE("Simplify const pointer offset")
54
60
REQUIRE (!to_integer (simp, offset_value));
55
61
REQUIRE (offset_value==1234 );
56
62
}
63
+
64
+ TEST_CASE (" Simplify Java boolean -> int -> boolean casts" )
65
+ {
66
+ config.set_arch (" none" );
67
+
68
+ const exprt simplified=simplify_expr (
69
+ typecast_exprt (
70
+ typecast_exprt (
71
+ symbol_exprt (
72
+ " foo" ,
73
+ java_boolean_type ()),
74
+ java_int_type ()),
75
+ java_boolean_type ()),
76
+ namespacet (symbol_tablet ()));
77
+
78
+ REQUIRE (simplified.id ()==ID_symbol);
79
+ REQUIRE (simplified.type ()==java_boolean_type ());
80
+ const auto &symbol=to_symbol_expr (simplified);
81
+ REQUIRE (symbol.get_identifier ()==" foo" );
82
+ }
0 commit comments