From 545f53aa457f2e07f05edbe4eed9483effaa77e0 Mon Sep 17 00:00:00 2001
From: Kostyantyn Vorobyov <kostyantyn.vorobyov@cea.fr>
Date: Thu, 18 Feb 2016 09:58:39 +0100
Subject: [PATCH] [RTL] Adding #ifdef statements in ADT-based memory models to
 protect against multiple inclusions

---
 .../e-acsl/share/e-acsl/adt_models/e_acsl_bittree.h        | 6 ++++--
 .../e-acsl/share/e-acsl/adt_models/e_acsl_bittree_mmodel.c | 7 +++++--
 src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_list.h   | 5 ++++-
 .../e-acsl/share/e-acsl/adt_models/e_acsl_list_mmodel.c    | 7 +++++--
 .../share/e-acsl/adt_models/e_acsl_splaytree_mmodel.c      | 7 +++++--
 src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_tree.h   | 4 ++++
 .../e-acsl/share/e-acsl/adt_models/e_acsl_tree_mmodel.c    | 7 +++++--
 7 files changed, 32 insertions(+), 11 deletions(-)

diff --git a/src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_bittree.h b/src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_bittree.h
index 964a7c069e7..f91d0123bd1 100644
--- a/src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_bittree.h
+++ b/src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_bittree.h
@@ -20,8 +20,9 @@
 /*                                                                        */
 /**************************************************************************/
 
-#include <unistd.h>
-#include <stdlib.h>
+#ifndef E_ACSL_BITTREE
+#define E_ACSL_BITTREE
+
 #include <stdbool.h>
 
 #include "e_acsl_syscall.h"
@@ -457,3 +458,4 @@ static void __debug_struct () {
   __debug_rec(__root, 0);
   printf("-----------------\n");
 }
+#endif
diff --git a/src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_bittree_mmodel.c b/src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_bittree_mmodel.c
index 1bed39de331..9494d8c5efd 100644
--- a/src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_bittree_mmodel.c
+++ b/src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_bittree_mmodel.c
@@ -20,5 +20,8 @@
 /*                                                                        */
 /**************************************************************************/
 
-#include "e_acsl_adt_mmodel.h"
-#include "e_acsl_bittree.h"
+#ifndef E_ACSL_BITTREE_MMODEL
+#define E_ACSL_BITTREE_MMODEL
+#  include "e_acsl_adt_mmodel.h"
+#  include "e_acsl_bittree.h"
+#endif
diff --git a/src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_list.h b/src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_list.h
index b740b4c991c..04e2e34f7cb 100644
--- a/src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_list.h
+++ b/src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_list.h
@@ -20,6 +20,9 @@
 /*                                                                        */
 /**************************************************************************/
 
+#ifndef E_ACSL_LIST
+#define E_ACSL_LIST
+
 #include "e_acsl_syscall.h"
 #include "e_acsl_printf.h"
 #include "e_acsl_assert.h"
@@ -130,4 +133,4 @@ static void __debug_struct() {
   }
   printf("\t\t\t-----------------\n");
 }
-
+#endif
diff --git a/src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_list_mmodel.c b/src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_list_mmodel.c
index 5d44e1e2de2..ad02715f4f2 100644
--- a/src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_list_mmodel.c
+++ b/src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_list_mmodel.c
@@ -20,5 +20,8 @@
 /*                                                                        */
 /**************************************************************************/
 
-#include "e_acsl_adt_mmodel.h"
-#include "e_acsl_list.h"
+#ifndef E_ACSL_LIST_MMODEL
+#define E_ACSL_LIST_MMODEL
+#  include "e_acsl_adt_mmodel.h"
+#  include "e_acsl_list.h"
+#endif
diff --git a/src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_splaytree_mmodel.c b/src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_splaytree_mmodel.c
index 459f42e0d05..7e4d530f1f1 100644
--- a/src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_splaytree_mmodel.c
+++ b/src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_splaytree_mmodel.c
@@ -20,5 +20,8 @@
 /*                                                                        */
 /**************************************************************************/
 
-#include "e_acsl_adt_mmodel.h"
-#include "e_acsl_splaytree.h"
+#ifndef E_ACSL_SPLAYTREE_MMODEL
+#define E_ACSL_SPLAYTREE_MMODEL
+#  include "e_acsl_adt_mmodel.h"
+#  include "e_acsl_splaytree.h"
+#endif
diff --git a/src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_tree.h b/src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_tree.h
index 678c620d165..d10bf1bef72 100644
--- a/src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_tree.h
+++ b/src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_tree.h
@@ -20,6 +20,9 @@
 /*                                                                        */
 /**************************************************************************/
 
+#ifndef E_ACSL_BINTREE
+#define E_ACSL_BINTREE
+
 #include "e_acsl_syscall.h"
 #include "e_acsl_printf.h"
 #include "e_acsl_assert.h"
@@ -151,3 +154,4 @@ static void __debug_struct() {
   __debug_rec(__root);
   printf("\t\t\t-----------------\n");
 }
+#endif
diff --git a/src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_tree_mmodel.c b/src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_tree_mmodel.c
index 9bc75e05201..2b7226d30eb 100644
--- a/src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_tree_mmodel.c
+++ b/src/plugins/e-acsl/share/e-acsl/adt_models/e_acsl_tree_mmodel.c
@@ -20,5 +20,8 @@
 /*                                                                        */
 /**************************************************************************/
 
-#include "e_acsl_adt_mmodel.h"
-#include "e_acsl_tree.h"
+#ifndef E_ACSL_BINTREE_MMODEL
+#define E_ACSL_BINTREE_MMODEL
+#  include "e_acsl_adt_mmodel.h"
+#  include "e_acsl_tree.h"
+#endif
-- 
GitLab