17 exprt val(
"at_identifier");
32 const std::string &class_name,
33 const std::string &function_name)
const
72 const std::string &base_class,
73 const std::string &method,
74 const std::string &this_variable,
75 const std::vector<std::shared_ptr<jimple_expr>> ¶meters,
77 const std::string &class_name,
78 const std::string &function_name);
106 const std::string &class_name,
107 const std::string &function_name)
const override;
137 const std::string &class_name,
138 const std::string &function_name)
const override;
161 return "Jimple BinOP";
166 const std::string &class_name,
167 const std::string &function_name)
const override;
170 std::shared_ptr<jimple_expr>
lhs;
171 std::shared_ptr<jimple_expr>
rhs;
185 return "Jimple Cast";
190 const std::string &class_name,
191 const std::string &function_name)
const override;
194 std::shared_ptr<jimple_expr>
from;
195 std::shared_ptr<jimple_type>
to;
210 return "Jimple Lengthof";
215 const std::string &class_name,
216 const std::string &function_name)
const override;
218 std::shared_ptr<jimple_expr>
from;
235 return "Jimple New array";
240 const std::string &class_name,
241 const std::string &function_name)
const override;
243 std::shared_ptr<jimple_type>
type;
244 std::shared_ptr<jimple_expr>
size;
259 return "Jimple Invoke";
264 const std::string &class_name,
265 const std::string &function_name)
const override;
279 return base_class ==
"org.sosy_lab.sv_benchmarks.Verifier";
304 return "Jimple Virtual Invoke";
309 const std::string &class_name,
310 const std::string &function_name)
const override;
378 std::shared_ptr<jimple_expr>
index,
379 std::shared_ptr<jimple_expr>
base)
386 return "Jimple Deref";
391 const std::string &class_name,
392 const std::string &function_name)
const override;
395 std::shared_ptr<jimple_expr>
base;
411 return "Jimple Nondet";
415 assert(
"This class shouldn't be used from Jimple directly");
422 const std::string &class_name,
423 const std::string &function_name)
const override;
440 return "Jimple Static Member";
446 const std::string &class_name,
447 const std::string &function_name)
const override;
451 std::shared_ptr<jimple_type>
type;
468 return "Jimple Virtual Member";
473 const std::string &class_name,
474 const std::string &function_name)
const override;
479 std::shared_ptr<jimple_type>
type;
Base interface for Jimple AST.
Definition jimple_ast.h:19
A binary operation.
Definition jimple_expr.h:156
std::shared_ptr< jimple_expr > lhs
Definition jimple_expr.h:170
virtual expr2tc to_expr2t(contextt &ctx, const std::string &class_name, const std::string &function_name) const override
The IREP2 form of this expression.
Definition jimple_expr.cpp:238
std::string binop
Definition jimple_expr.h:169
virtual std::string to_string() const override
Converts the object into a string.
Definition jimple_expr.h:159
std::shared_ptr< jimple_expr > rhs
Definition jimple_expr.h:171
virtual void from_json(const json &j) override
Initializes the current instance by parsing a JSON.
Definition jimple_expr.cpp:163
A cast operation.
Definition jimple_expr.h:180
virtual std::string to_string() const override
Converts the object into a string.
Definition jimple_expr.h:183
std::string var_name
Definition jimple_expr.h:193
std::shared_ptr< jimple_type > to
Definition jimple_expr.h:195
virtual void from_json(const json &j) override
Initializes the current instance by parsing a JSON.
Definition jimple_expr.cpp:273
std::shared_ptr< jimple_expr > from
Definition jimple_expr.h:194
virtual expr2tc to_expr2t(contextt &ctx, const std::string &class_name, const std::string &function_name) const override
The IREP2 form of this expression.
Definition jimple_expr.cpp:281
std::string value
Definition jimple_expr.h:109
jimple_constant()=default
virtual void from_json(const json &j) override
Initializes the current instance by parsing a JSON.
Definition jimple_expr.cpp:11
jimple_constant(const std::string &value)
Definition jimple_expr.h:91
virtual std::string to_string() const override
Converts the object into a string.
Definition jimple_expr.h:95
virtual void setValue(const std::string &v)
Definition jimple_expr.h:100
virtual expr2tc to_expr2t(contextt &ctx, const std::string &class_name, const std::string &function_name) const override
The IREP2 form of this expression.
Definition jimple_expr.cpp:20
std::shared_ptr< jimple_expr > base
Definition jimple_expr.h:395
virtual expr2tc to_expr2t(contextt &ctx, const std::string &class_name, const std::string &function_name) const override
The IREP2 form of this expression.
Definition jimple_expr.cpp:517
virtual std::string to_string() const override
Converts the object into a string.
Definition jimple_expr.h:384
virtual void from_json(const json &j) override
Initializes the current instance by parsing a JSON.
Definition jimple_expr.cpp:511
jimple_deref(std::shared_ptr< jimple_expr > index, std::shared_ptr< jimple_expr > base)
Definition jimple_expr.h:377
std::shared_ptr< jimple_expr > index
Definition jimple_expr.h:394
The result of a function call.
Definition jimple_expr.h:254
virtual expr2tc to_expr2t(contextt &ctx, const std::string &class_name, const std::string &function_name) const override
The IREP2 form of this expression.
Definition jimple_expr.cpp:411
bool is_intrinsic_method
Definition jimple_expr.h:282
virtual std::string to_string() const override
Converts the object into a string.
Definition jimple_expr.h:257
std::string get_hash_name() const
Definition jimple_expr.h:286
expr2tc lhs
Definition jimple_expr.h:269
std::string base_class
Definition jimple_expr.h:267
virtual void from_json(const json &j) override
Initializes the current instance by parsing a JSON.
Definition jimple_expr.cpp:330
std::vector< std::shared_ptr< jimple_expr > > parameters
Definition jimple_expr.h:270
bool is_nondet_call() const
Definition jimple_expr.h:277
std::string method
Definition jimple_expr.h:268
void set_lhs(const expr2tc &expr)
Definition jimple_expr.h:272
Base interface to hold jimple expressions.
Definition jimple_expr.h:12
virtual expr2tc to_expr2t(contextt &ctx, const std::string &class_name, const std::string &function_name) const
The IREP2 form of this expression.
Definition jimple_expr.h:30
static expr2tc lower_invoke2t(contextt &ctx, const std::string &base_class, const std::string &method, const std::string &this_variable, const std::vector< std::shared_ptr< jimple_expr > > ¶meters, const expr2tc &lhs, const std::string &class_name, const std::string &function_name)
Lower an invoke to the block both invoke forms produce.
Definition jimple_expr.cpp:366
virtual exprt to_exprt(contextt &, const std::string &, const std::string &) const
Definition jimple_expr.h:15
static std::shared_ptr< jimple_expr > get_expression(const json &j)
Recursively explores and initializes a jimple_expression.
Definition jimple_expr.cpp:42
Get the number of elements of an array (not bits/bytes).
Definition jimple_expr.h:205
virtual std::string to_string() const override
Converts the object into a string.
Definition jimple_expr.h:208
virtual void from_json(const json &j) override
Initializes the current instance by parsing a JSON.
Definition jimple_expr.cpp:292
virtual expr2tc to_expr2t(contextt &ctx, const std::string &class_name, const std::string &function_name) const override
The IREP2 form of this expression.
Definition jimple_expr.cpp:297
std::shared_ptr< jimple_expr > from
Definition jimple_expr.h:218
Allocates a type.
Definition jimple_expr.h:355
virtual std::string to_string() const override
Converts the object into a string.
Definition jimple_expr.h:358
virtual void from_json(const json &j) override
Initializes the current instance by parsing a JSON.
Definition jimple_expr.cpp:322
Allocates a new array (dynamic).
Definition jimple_expr.h:230
std::shared_ptr< jimple_expr > size
Definition jimple_expr.h:244
virtual std::string to_string() const override
Converts the object into a string.
Definition jimple_expr.h:233
virtual void from_json(const json &j) override
Initializes the current instance by parsing a JSON.
Definition jimple_expr.cpp:314
virtual expr2tc to_expr2t(contextt &ctx, const std::string &class_name, const std::string &function_name) const override
The IREP2 form of this expression.
Definition jimple_expr.cpp:472
std::shared_ptr< jimple_type > type
Definition jimple_expr.h:243
virtual expr2tc to_expr2t(contextt &ctx, const std::string &class_name, const std::string &function_name) const override
The IREP2 form of this expression.
Definition jimple_expr.cpp:534
virtual std::string to_string() const override
Converts the object into a string.
Definition jimple_expr.h:409
const std::string mode
Definition jimple_expr.h:419
virtual void from_json(const json &) override
Initializes the current instance by parsing a JSON.
Definition jimple_expr.h:413
jimple_nondet(std::string mode)
Definition jimple_expr.h:406
A static member of object/class.
Definition jimple_expr.h:436
std::shared_ptr< jimple_type > type
Definition jimple_expr.h:451
virtual void from_json(const json &j) override
Initializes the current instance by parsing a JSON.
Definition jimple_expr.cpp:542
virtual expr2tc to_expr2t(contextt &ctx, const std::string &class_name, const std::string &function_name) const override
The IREP2 form of this expression.
Definition jimple_expr.cpp:567
std::string field
Definition jimple_expr.h:450
std::string from
Definition jimple_expr.h:449
virtual std::string to_string() const override
Converts the object into a string.
Definition jimple_expr.h:438
const std::string & getVarName() const
Definition jimple_expr.h:140
virtual std::string to_string() const override
Converts the object into a string.
Definition jimple_expr.h:131
virtual void from_json(const json &j) override
Initializes the current instance by parsing a JSON.
Definition jimple_expr.cpp:28
std::string var_name
Definition jimple_expr.h:146
virtual expr2tc to_expr2t(contextt &ctx, const std::string &class_name, const std::string &function_name) const override
The IREP2 form of this expression.
Definition jimple_expr.cpp:33
jimple_symbol(std::string name)
Definition jimple_expr.h:127
The result of a function call.
Definition jimple_expr.h:299
std::string base_class
Definition jimple_expr.h:312
virtual void from_json(const json &j) override
Initializes the current instance by parsing a JSON.
Definition jimple_expr.cpp:434
std::string variable
Definition jimple_expr.h:315
std::string method
Definition jimple_expr.h:313
bool is_nondet_call() const
Definition jimple_expr.h:323
virtual std::string to_string() const override
Converts the object into a string.
Definition jimple_expr.h:302
std::vector< std::shared_ptr< jimple_expr > > parameters
Definition jimple_expr.h:316
std::string get_hash_name() const
Definition jimple_expr.h:330
expr2tc lhs
Definition jimple_expr.h:314
void set_lhs(const expr2tc &expr)
Definition jimple_expr.h:318
virtual expr2tc to_expr2t(contextt &ctx, const std::string &class_name, const std::string &function_name) const override
The IREP2 form of this expression.
Definition jimple_expr.cpp:447
A virtual member of object.
Definition jimple_expr.h:464
virtual void from_json(const json &j) override
Initializes the current instance by parsing a JSON.
Definition jimple_expr.cpp:585
virtual std::string to_string() const override
Converts the object into a string.
Definition jimple_expr.h:466
std::string variable
Definition jimple_expr.h:476
std::string from
Definition jimple_expr.h:477
virtual expr2tc to_expr2t(contextt &ctx, const std::string &class_name, const std::string &function_name) const override
The IREP2 form of this expression.
Definition jimple_expr.cpp:551
std::shared_ptr< jimple_type > type
Definition jimple_expr.h:479
std::string field
Definition jimple_expr.h:478
irep_container< expr2t > expr2tc
Definition irep2.h:431
nlohmann::json json
Definition json.cpp:12
void migrate_expr(const exprt &expr, expr2tc &new_expr_ref)
Definition migrate.cpp:1512
void abort(void)
Definition stdlib.c:77