From 53a3dd0ec220c59ca1d0aaed6b08e108740ad341 Mon Sep 17 00:00:00 2001
From: Kostyantyn Vorobyov <kostyantyn.vorobyov@cea.fr>
Date: Mon, 15 May 2017 13:58:17 +0200
Subject: [PATCH] Extra assertions in bittree

---
 .../bittree_model/e_acsl_bittree_mmodel.c       | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/src/plugins/e-acsl/share/e-acsl/bittree_model/e_acsl_bittree_mmodel.c b/src/plugins/e-acsl/share/e-acsl/bittree_model/e_acsl_bittree_mmodel.c
index d9b0c65b197..b175532a53d 100644
--- a/src/plugins/e-acsl/share/e-acsl/bittree_model/e_acsl_bittree_mmodel.c
+++ b/src/plugins/e-acsl/share/e-acsl/bittree_model/e_acsl_bittree_mmodel.c
@@ -28,6 +28,23 @@
 
 #include "e_acsl_bittree.h"
 
+/* Assertions in debug mode */
+#define ALLOCATED(_ptr,_size) \
+  ((allocated(_ptr, _size, _ptr) == NULL) ? 0 : 1)
+
+#ifdef E_ACSL_DEBUG
+#define DVALIDATE_RO_ACCESS(_ptr, _size) \
+  vassert(ALLOCATED(_ptr, _size), \
+  "Not allocated [%a, %a + %lu]", (uintptr_t)_ptr, _size)
+#define DVALIDATE_RW_ACCESS(_ptr, _size) { \
+  DVALIDATE_RO_ACCESS(_ptr, _size); \
+  vassert(!readonly(_ptr), "Location %a is read-only", (uintptr_t)_ptr); \
+}
+#else
+#define DVALIDATE_RO_ACCESS(_ptr, _size)
+#define DVALIDATE_RW_ACCESS(_ptr, _size)
+#endif
+
 /**************************/
 /* SUPPORT            {{{ */
 /**************************/
-- 
GitLab