File tree Expand file tree Collapse file tree 1 file changed +26
-0
lines changed Expand file tree Collapse file tree 1 file changed +26
-0
lines changed Original file line number Diff line number Diff line change 13
13
// / \file util/std_expr.h
14
14
// / API to expression classes
15
15
16
+ #include " c_types.h"
16
17
#include " expr_cast.h"
17
18
#include " invariant.h"
18
19
#include " mathematical_types.h"
@@ -4750,4 +4751,29 @@ inline void validate_expr(const popcount_exprt &value)
4750
4751
validate_operands (value, 1 , " popcount must have one operand" );
4751
4752
}
4752
4753
4754
+ class pointer_offset_exprt : public unary_exprt
4755
+ {
4756
+ explicit pointer_offset_exprt (exprt pointer)
4757
+ : unary_exprt(ID_pointer_offset, pointer, signed_size_type())
4758
+ {
4759
+ PRECONDITION (pointer.id () == ID_pointer);
4760
+ }
4761
+ };
4762
+
4763
+ inline pointer_offset_exprt &to_pointer_offset_expr (exprt &expr)
4764
+ {
4765
+ PRECONDITION (expr.id () == ID_pointer_offset);
4766
+ PRECONDITION (expr.operands ().size () == 1 );
4767
+ PRECONDITION (expr.op0 ().id () == ID_pointer);
4768
+ return static_cast <pointer_offset_exprt &>(expr);
4769
+ }
4770
+
4771
+ inline const pointer_offset_exprt &to_pointer_offset_expr (const exprt &expr)
4772
+ {
4773
+ PRECONDITION (expr.id () == ID_pointer_offset);
4774
+ PRECONDITION (expr.operands ().size () == 1 );
4775
+ PRECONDITION (expr.op0 ().id () == ID_pointer);
4776
+ return static_cast <const pointer_offset_exprt &>(expr);
4777
+ }
4778
+
4753
4779
#endif // CPROVER_UTIL_STD_EXPR_H
You can’t perform that action at this time.
0 commit comments