diff options
| author | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2020-04-03 14:47:55 +0200 |
|---|---|---|
| committer | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2020-04-03 15:07:36 +0200 |
| commit | 3644ef26b43014dccf3937769d644202a78c218b (patch) | |
| tree | f83bb9bf25bbe346f2b0a834e4a5da7d9e535dca /miasm/expression/expression.py | |
| parent | e47d3f973bae44a504b8f8dc9df3b32ea6298178 (diff) | |
| download | focaccia-miasm-3644ef26b43014dccf3937769d644202a78c218b.tar.gz focaccia-miasm-3644ef26b43014dccf3937769d644202a78c218b.zip | |
Fix int(expr)
Diffstat (limited to 'miasm/expression/expression.py')
| -rw-r--r-- | miasm/expression/expression.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/miasm/expression/expression.py b/miasm/expression/expression.py index d6813cec..18fcb77a 100644 --- a/miasm/expression/expression.py +++ b/miasm/expression/expression.py @@ -166,6 +166,23 @@ def is_mem_segm(expr): """Returns True if is ExprMem and ptr is_op_segm""" return expr.is_mem() and is_op_segm(expr.ptr) +def canonize_to_exprloc(locdb, expr): + """ + If expr is ExprInt, return ExprLoc with corresponding loc_key + Else, return expr + + @expr: Expr instance + """ + if expr.is_int(): + loc_key = locdb.get_or_create_offset_location(int(expr)) + ret = ExprLoc(loc_key, expr.size) + return ret + return expr + +def is_function_call(expr): + """Returns true if the considered Expr is a function call + """ + return expr.is_op() and expr.op.startswith('call') @total_ordering class LocKey(object): |