From 793f9af618eff4ef0c0ddd8ebeab39b93e13d322 Mon Sep 17 00:00:00 2001
From: Erwan Jahier <erwan.jahier@univ-grenoble-alpes.fr>
Date: Wed, 23 Mar 2022 13:43:19 +0100
Subject: [PATCH] test: compare the results of lv6 -2c + gcc vs clang on the
 test suite

---
 lib/soc2c.ml                    |  30 +---
 test/lus2lic.sum                | 246 +++++++++++++++++++++++++++++---
 test/site.exp                   |  27 ++--
 utils/compare_exec_and_2c       |  18 ++-
 utils/compare_gcc_and_clang     |  80 +++++++++++
 utils/test_lus2lic_no_node      |  15 +-
 utils/test_lus2lic_no_node_rdbg |  15 +-
 7 files changed, 359 insertions(+), 72 deletions(-)
 create mode 100755 utils/compare_gcc_and_clang

diff --git a/lib/soc2c.ml b/lib/soc2c.ml
index 50cd9403..5ac17ecc 100644
--- a/lib/soc2c.ml
+++ b/lib/soc2c.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 21/03/2022 (at 15:28) by Erwan Jahier> *)
+(* Time-stamp: <modified the 23/03/2022 (at 09:42) by Erwan Jahier> *)
 
 
 (* let put (os: out_channel) (fmt:('a, unit, string, unit) format4) : 'a = *)
@@ -763,27 +763,6 @@ _real _get_real("^(
    } while(s != 1);
    return r;
 }
-char* _get_string("^(
-             if SocUtils.is_memory_less soc then "" else
-               ctx^"_type* ctx,"
-           ) ^"char* n){
-   char b[512];
-   char* r;
-   int s = 1;
-   do {
-      if(ISATTY) {
-         if(s != 1) printf(\"\\a\");
-         //printf(\"%s (real) ? \", n);
-      }
-      if(scanf(\"%s\", b)==EOF) exit(0);
-      if(*b == '#') {
-         _read_pragma("^
-           (if SocUtils.is_memory_less soc then "" else "ctx,")^"b);
-      }
-   } while(s != 1);
-   r =  b;
-   return r;
-}
 /* Standard Output procedures **************/
 void _put_bottom(char* n){
    if(ISATTY) printf(\"%s = \", n);
@@ -1192,9 +1171,9 @@ struct dro_desc_t DRO_DESC_NAME = {
     let ocsh = open_out (Filename.concat dir (node ^".sh")) in
     let main_file, ogensim_main_file, gcc =
       if Lv6MainArgs.global_opt.Lv6MainArgs.gen_wcet then 
-        base^"_main.c",base^"_loop.c","$gcc --specs=linux.specs -g" 
+        base^"_main.c",base^"_loop.c","gcc --specs=linux.specs -g" 
       else 
-        loopfile, "I am a dead string...", "gcc"
+        loopfile, "I am a dead string...", "$C_COMPILER"
     in
     let ogensim_exe = node^"4ogensim.exec" in
     let cfiles_acc = if needs_cfile then ext_cfile::cfiles_acc else cfiles_acc in
@@ -1204,7 +1183,8 @@ struct dro_desc_t DRO_DESC_NAME = {
         Printf.sprintf "%s -shared -o %s.dro \\\n\t%s %s" gcc node cfiles cflags,
         "dead string"
       ) else
-        Printf.sprintf "%s -o %s \\\n\t%s %s %s"
+        Printf.sprintf "if [ -z ${C_COMPILER} ]; then C_COMPILER=gcc; fi
+%s -o %s \\\n\t%s %s %s"
                        gcc execfile cfiles cflags main_file,
         Printf.sprintf "%s -o %s \\\n\t%s %s %s"
                        gcc ogensim_exe cfiles cflags ogensim_main_file
diff --git a/test/lus2lic.sum b/test/lus2lic.sum
index dc01000e..7d16e5ca 100644
--- a/test/lus2lic.sum
+++ b/test/lus2lic.sum
@@ -1,5 +1,5 @@
 ==> lus2lic0.sum <==
-Test run by jahier on Tue Mar 22 23:24:14 
+Test run by jahier on Wed Mar 23 12:10:42 
 Native configuration is x86_64-pc-linux-gnu
 
 		=== lus2lic0 tests ===
@@ -66,7 +66,7 @@ XFAIL: Test bad programs (assert): test_lus2lic_no_node should_fail/assert/lecte
 XFAIL: Test bad programs (assert): test_lus2lic_no_node should_fail/assert/s.lus
 
 ==> lus2lic1.sum <==
-Test run by jahier on Tue Mar 22 23:24:14 
+Test run by jahier on Wed Mar 23 12:10:42 
 Native configuration is x86_64-pc-linux-gnu
 
 		=== lus2lic1 tests ===
@@ -80,220 +80,272 @@ PASS: ./lus2lic  {-2c COUNTER.lus -n COUNTER}
 PASS: sh COUNTER.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c COUNTER.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en COUNTER.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang COUNTER.lus {}
 PASS: ./lus2lic  {-2c CURRENT.lus -n CURRENT}
 PASS: sh CURRENT.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c CURRENT.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en CURRENT.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang CURRENT.lus {}
 PASS: ./lus2lic  {-2c Condact.lus -n Condact}
 PASS: ./lus2lic  {-2c EDGE.lus -n EDGE}
 PASS: sh EDGE.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c EDGE.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en EDGE.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang EDGE.lus {}
 PASS: ./lus2lic  {-2c ELMU.lus -n ELMU}
 PASS: sh ELMU.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c ELMU.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en ELMU.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang ELMU.lus {}
 PASS: ./lus2lic  {-2c FALLING_EDGE.lus -n FALLING_EDGE}
 PASS: sh FALLING_EDGE.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c FALLING_EDGE.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en FALLING_EDGE.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang FALLING_EDGE.lus {}
 PASS: ./lus2lic  {-2c FillFollowedByRed.lus -n FillFollowedByRed}
 PASS: sh FillFollowedByRed.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c FillFollowedByRed.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en FillFollowedByRed.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang FillFollowedByRed.lus {}
 PASS: ./lus2lic  {-2c Gyroscope.lus -n Gyroscope}
 PASS: sh Gyroscope.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c Gyroscope.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en Gyroscope.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang Gyroscope.lus {}
 PASS: ./lus2lic  {-2c Gyroscope2.lus -n Gyroscope2}
 PASS: sh Gyroscope2.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c Gyroscope2.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en Gyroscope2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang Gyroscope2.lus {}
 PASS: ./lus2lic  {-2c aa.lus -n aa}
 PASS: sh aa.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c aa.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en aa.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang aa.lus {}
 PASS: ./lus2lic  {-2c access.lus -n access}
 PASS: sh access.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c access.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en access.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang access.lus {}
 PASS: ./lus2lic  --expand-nodes {-2c activation1.lus -n activation1}
 PASS: sh activation1.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c activation1.lus  { --expand-nodes}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en activation1.lus { --expand-nodes}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang activation1.lus { --expand-nodes}
 PASS: ./lus2lic  --expand-nodes {-2c activation2.lus -n activation2}
 PASS: sh activation2.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c activation2.lus  { --expand-nodes}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en activation2.lus { --expand-nodes}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang activation2.lus { --expand-nodes}
 PASS: ./lus2lic  {-2c activation_ec.lus -n activation_ec}
 PASS: sh activation_ec.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c activation_ec.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en activation_ec.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang activation_ec.lus {}
 PASS: ./lus2lic  {-2c after.lus -n after}
 PASS: sh after.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c after.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en after.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang after.lus {}
 PASS: ./lus2lic  {-2c alias.lus -n alias}
 PASS: sh alias.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c alias.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en alias.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang alias.lus {}
 PASS: ./lus2lic  {-2c amaury.lus -n amaury}
 PASS: sh amaury.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c amaury.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en amaury.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang amaury.lus {}
 PASS: ./lus2lic  {-2c arbitre.lus -n arbitre}
 PASS: ./lus2lic  {-2c argos.lus -n argos}
 PASS: sh argos.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c argos.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en argos.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang argos.lus {}
 PASS: ./lus2lic  {-2c array_concat.lus -n array_concat}
 PASS: sh array_concat.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c array_concat.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en array_concat.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang array_concat.lus {}
 PASS: ./lus2lic  {-2c array_concat2.lus -n array_concat2}
 PASS: sh array_concat2.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c array_concat2.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en array_concat2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang array_concat2.lus {}
 PASS: ./lus2lic  {-2c array_equals.lus -n array_equals}
 PASS: sh array_equals.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c array_equals.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en array_equals.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang array_equals.lus {}
 PASS: ./lus2lic  {-2c arrays.lus -n arrays}
 PASS: sh arrays.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c arrays.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en arrays.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang arrays.lus {}
 PASS: ./lus2lic  --expand-nodes {-2c asservi.lus -n asservi}
 PASS: ./lus2lic  {-2c bad_call03.lus -n bad_call03}
 PASS: sh bad_call03.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c bad_call03.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en bad_call03.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang bad_call03.lus {}
 PASS: ./lus2lic  {-2c bascule.lus -n bascule}
 PASS: sh bascule.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c bascule.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en bascule.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang bascule.lus {}
 PASS: ./lus2lic  {-2c bob.lus -n bob}
 PASS: sh bob.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c bob.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en bob.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang bob.lus {}
 PASS: ./lus2lic  {-2c bred.lus -n bred}
 PASS: sh bred.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c bred.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en bred.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang bred.lus {}
 PASS: ./lus2lic  {-2c bred_lv4.lus -n bred_lv4}
 PASS: sh bred_lv4.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c bred_lv4.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en bred_lv4.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang bred_lv4.lus {}
 PASS: ./lus2lic  {-2c bug.lus -n bug}
 PASS: sh bug.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c bug.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en bug.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang bug.lus {}
 PASS: ./lus2lic  {-2c bug2.lus -n bug2}
 PASS: sh bug2.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c bug2.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en bug2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang bug2.lus {}
 PASS: ./lus2lic  {-2c calculs_max.lus -n calculs_max}
 PASS: sh calculs_max.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c calculs_max.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en calculs_max.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang calculs_max.lus {}
 PASS: ./lus2lic  {-2c call.lus -n call}
 PASS: ./lus2lic  {-2c call01.lus -n call01}
 PASS: ./lus2lic  {-2c call02.lus -n call02}
 PASS: sh call02.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c call02.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en call02.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang call02.lus {}
 PASS: ./lus2lic  {-2c call03.lus -n call03}
 PASS: ./lus2lic  {-2c call04.lus -n call04}
 PASS: sh call04.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c call04.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en call04.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang call04.lus {}
 PASS: ./lus2lic  {-2c call05.lus -n call05}
 PASS: ./lus2lic  {-2c call06.lus -n call06}
 PASS: ./lus2lic  {-2c call07.lus -n call07}
 PASS: sh call07.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c call07.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en call07.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang call07.lus {}
 PASS: ./lus2lic  {-2c carV2.lus -n carV2}
 PASS: sh carV2.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c carV2.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en carV2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang carV2.lus {}
 PASS: ./lus2lic  {-2c carligths.lus -n carligths}
 PASS: sh carligths.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c carligths.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en carligths.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang carligths.lus {}
 PASS: ./lus2lic  {-2c ck2.lus -n ck2}
 PASS: sh ck2.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c ck2.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en ck2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang ck2.lus {}
 PASS: ./lus2lic  {-2c ck3.lus -n ck3}
 PASS: sh ck3.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c ck3.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en ck3.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang ck3.lus {}
 PASS: ./lus2lic  {-2c ck4.lus -n ck4}
 PASS: sh ck4.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c ck4.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en ck4.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang ck4.lus {}
 PASS: ./lus2lic  {-2c ck5.lus -n ck5}
 PASS: sh ck5.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c ck5.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en ck5.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang ck5.lus {}
 PASS: ./lus2lic  {-2c ck7.lus -n ck7}
 PASS: sh ck7.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c ck7.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en ck7.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang ck7.lus {}
 PASS: ./lus2lic  {-2c clock1_2ms.lus -n clock1_2ms}
 PASS: sh clock1_2ms.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c clock1_2ms.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en clock1_2ms.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang clock1_2ms.lus {}
 PASS: ./lus2lic  {-2c clock_ite.lus -n clock_ite}
 PASS: sh clock_ite.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c clock_ite.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en clock_ite.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang clock_ite.lus {}
 PASS: ./lus2lic  {-2c cminus.lus -n cminus}
 PASS: sh cminus.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c cminus.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en cminus.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang cminus.lus {}
 PASS: ./lus2lic  {-2c complex.lus -n complex}
 PASS: ./lus2lic  {-2c compteur.lus -n compteur}
 PASS: sh compteur.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c compteur.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en compteur.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang compteur.lus {}
 PASS: ./lus2lic  {-2c cond01.lus -n cond01}
 PASS: sh cond01.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c cond01.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en cond01.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang cond01.lus {}
 PASS: ./lus2lic  {-2c consensus.lus -n consensus}
 PASS: sh consensus.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c consensus.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en consensus.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang consensus.lus {}
 PASS: ./lus2lic  {-2c consensus2.lus -n consensus2}
 PASS: sh consensus2.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c consensus2.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en consensus2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang consensus2.lus {}
 PASS: ./lus2lic  {-2c contractForElementSelectionInArray.lus -n contractForElementSelectionInArray}
 PASS: sh contractForElementSelectionInArray.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c contractForElementSelectionInArray.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en contractForElementSelectionInArray.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang contractForElementSelectionInArray.lus {}
 PASS: ./lus2lic  {-2c convert.lus -n convert}
 PASS: sh convert.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c convert.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en convert.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang convert.lus {}
 PASS: ./lus2lic  {-2c count.lus -n count}
 PASS: sh count.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c count.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en count.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang count.lus {}
 PASS: ./lus2lic  {-2c cpt.lus -n cpt}
 PASS: sh cpt.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c cpt.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en cpt.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang cpt.lus {}
 PASS: ./lus2lic  {-2c cst.lus -n cst}
 PASS: sh cst.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c cst.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en cst.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang cst.lus {}
 PASS: ./lus2lic  {-2c dadic.lus -n dadic}
 PASS: ./lus2lic  {-2c deSimone.lus -n deSimone}
 PASS: sh deSimone.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c deSimone.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en deSimone.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang deSimone.lus {}
 PASS: ./lus2lic  {-2c decl.lus -n decl}
 PASS: ./lus2lic  {-2c declaration.lus -n declaration}
 PASS: ./lus2lic  {-2c deconne.lus -n deconne}
@@ -301,226 +353,280 @@ PASS: ./lus2lic  {-2c dep.lus -n dep}
 PASS: sh dep.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c dep.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en dep.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang dep.lus {}
 PASS: ./lus2lic  {-2c depend.lus -n depend}
 PASS: sh depend.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c depend.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en depend.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang depend.lus {}
 PASS: ./lus2lic  {-2c dependeur.lus -n dependeur}
 PASS: sh dependeur.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c dependeur.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en dependeur.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang dependeur.lus {}
 PASS: ./lus2lic  {-2c dependeur_struct.lus -n dependeur_struct}
 PASS: sh dependeur_struct.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c dependeur_struct.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en dependeur_struct.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang dependeur_struct.lus {}
 PASS: ./lus2lic  {-2c double_delay.lus -n double_delay}
 PASS: sh double_delay.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c double_delay.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en double_delay.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang double_delay.lus {}
 PASS: ./lus2lic  {-2c ec.lus -n ec}
 PASS: sh ec.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c ec.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en ec.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang ec.lus {}
 PASS: ./lus2lic  {-2c enum0.lus -n enum0}
 PASS: sh enum0.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c enum0.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en enum0.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang enum0.lus {}
 PASS: ./lus2lic  {-2c ex.lus -n ex}
 PASS: sh ex.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c ex.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en ex.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang ex.lus {}
 PASS: ./lus2lic  {-2c exclusion.lus -n exclusion}
 PASS: sh exclusion.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c exclusion.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en exclusion.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang exclusion.lus {}
 PASS: ./lus2lic  {-2c filliter.lus -n filliter}
 PASS: sh filliter.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c filliter.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en filliter.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang filliter.lus {}
 PASS: ./lus2lic  {-2c filter.lus -n filter}
 PASS: sh filter.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c filter.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en filter.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang filter.lus {}
 PASS: ./lus2lic  {-2c flo.lus -n flo}
 PASS: sh flo.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c flo.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en flo.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang flo.lus {}
 PASS: ./lus2lic  {-2c followed_by.lus -n followed_by}
 PASS: sh followed_by.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c followed_by.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en followed_by.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang followed_by.lus {}
 PASS: ./lus2lic  {-2c fresh_name.lus -n fresh_name}
 PASS: sh fresh_name.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c fresh_name.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en fresh_name.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang fresh_name.lus {}
 PASS: ./lus2lic  {-2c func_with_body.lus -n func_with_body}
 PASS: ./lus2lic  {-2c hanane.lus -n hanane}
 PASS: sh hanane.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c hanane.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en hanane.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang hanane.lus {}
 PASS: ./lus2lic  {-2c heater_control.lus -n heater_control}
 PASS: sh heater_control.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c heater_control.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en heater_control.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang heater_control.lus {}
 PASS: ./lus2lic  {-2c impl_priority.lus -n impl_priority}
 PASS: sh impl_priority.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c impl_priority.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en impl_priority.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang impl_priority.lus {}
 PASS: ./lus2lic  {-2c import1.lus -n import1}
 PASS: ./lus2lic  {-2c initial.lus -n initial}
 PASS: sh initial.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c initial.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en initial.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang initial.lus {}
 PASS: ./lus2lic  {-2c integrator.lus -n integrator}
 PASS: sh integrator.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c integrator.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en integrator.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang integrator.lus {}
 PASS: ./lus2lic  {-2c is_stable.lus -n is_stable}
 PASS: sh is_stable.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c is_stable.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en is_stable.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang is_stable.lus {}
 PASS: ./lus2lic  {-2c iter.lus -n iter}
 PASS: sh iter.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c iter.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en iter.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang iter.lus {}
 PASS: ./lus2lic  {-2c iterFibo.lus -n iterFibo}
 PASS: sh iterFibo.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c iterFibo.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en iterFibo.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang iterFibo.lus {}
 PASS: ./lus2lic  {-2c iterate.lus -n iterate}
 PASS: sh iterate.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c iterate.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en iterate.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang iterate.lus {}
 PASS: ./lus2lic  {-2c long_et_stupide_nom_de_noeud.lus -n long_et_stupide_nom_de_noeud}
 PASS: sh long_et_stupide_nom_de_noeud.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c long_et_stupide_nom_de_noeud.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en long_et_stupide_nom_de_noeud.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang long_et_stupide_nom_de_noeud.lus {}
 PASS: ./lus2lic  {-2c lucky.lus -n lucky}
 PASS: sh lucky.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c lucky.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en lucky.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang lucky.lus {}
 PASS: ./lus2lic  {-2c lustre_test1_ok.lus -n lustre_test1_ok}
 PASS: sh lustre_test1_ok.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c lustre_test1_ok.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en lustre_test1_ok.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang lustre_test1_ok.lus {}
 PASS: ./lus2lic  {-2c map_red_iter.lus -n map_red_iter}
 PASS: sh map_red_iter.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c map_red_iter.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en map_red_iter.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang map_red_iter.lus {}
 PASS: ./lus2lic  {-2c mapdeRed.lus -n mapdeRed}
 PASS: sh mapdeRed.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c mapdeRed.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en mapdeRed.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang mapdeRed.lus {}
 PASS: ./lus2lic  {-2c mapinf.lus -n mapinf}
 PASS: sh mapinf.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c mapinf.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en mapinf.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang mapinf.lus {}
 PASS: ./lus2lic  {-2c mapiter.lus -n mapiter}
 PASS: sh mapiter.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c mapiter.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en mapiter.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang mapiter.lus {}
 PASS: ./lus2lic  {-2c mappredef.lus -n mappredef}
 PASS: sh mappredef.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c mappredef.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en mappredef.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang mappredef.lus {}
 PASS: ./lus2lic  {-2c matrice.lus -n matrice}
 PASS: sh matrice.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c matrice.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en matrice.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang matrice.lus {}
 PASS: ./lus2lic  {-2c matrice2.lus -n matrice2}
 PASS: sh matrice2.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c matrice2.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en matrice2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang matrice2.lus {}
 PASS: ./lus2lic  {-2c matrix_constant.lus -n matrix_constant}
 PASS: sh matrix_constant.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c matrix_constant.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en matrix_constant.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang matrix_constant.lus {}
 PASS: ./lus2lic  {-2c minmax1.lus -n minmax1}
 PASS: sh minmax1.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c minmax1.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en minmax1.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang minmax1.lus {}
 PASS: ./lus2lic  {-2c minmax2.lus -n minmax2}
 PASS: sh minmax2.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c minmax2.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en minmax2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang minmax2.lus {}
 PASS: ./lus2lic  {-2c minmax3.lus -n minmax3}
 PASS: sh minmax3.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c minmax3.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en minmax3.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang minmax3.lus {}
 PASS: ./lus2lic  {-2c minmax4.lus -n minmax4}
 PASS: sh minmax4.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c minmax4.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en minmax4.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang minmax4.lus {}
 PASS: ./lus2lic  {-2c minmax4_bis.lus -n minmax4_bis}
 PASS: sh minmax4_bis.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c minmax4_bis.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en minmax4_bis.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang minmax4_bis.lus {}
 PASS: ./lus2lic  {-2c minmax5.lus -n minmax5}
 PASS: ./lus2lic  {-2c minmax5_random.lus -n minmax5_random}
 PASS: ./lus2lic  {-2c minmax6.lus -n minmax6}
 PASS: sh minmax6.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c minmax6.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en minmax6.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang minmax6.lus {}
 PASS: ./lus2lic  {-2c minus.lus -n minus}
 PASS: sh minus.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c minus.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en minus.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang minus.lus {}
 PASS: ./lus2lic  {-2c mm.lus -n mm}
 PASS: sh mm.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c mm.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en mm.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang mm.lus {}
 PASS: ./lus2lic  {-2c mm1.lus -n mm1}
 PASS: sh mm1.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c mm1.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en mm1.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang mm1.lus {}
 PASS: ./lus2lic  {-2c mm22.lus -n mm22}
 PASS: sh mm22.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c mm22.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en mm22.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang mm22.lus {}
 PASS: ./lus2lic  {-2c mm3.lus -n mm3}
 PASS: sh mm3.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c mm3.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en mm3.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang mm3.lus {}
 PASS: ./lus2lic  {-2c modelInst.lus -n modelInst}
 PASS: ./lus2lic  {-2c modes3x2_v2.lus -n modes3x2_v2}
 PASS: sh modes3x2_v2.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c modes3x2_v2.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en modes3x2_v2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang modes3x2_v2.lus {}
 PASS: ./lus2lic  {-2c modes3x2_v3.lus -n modes3x2_v3}
 PASS: sh modes3x2_v3.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c modes3x2_v3.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en modes3x2_v3.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang modes3x2_v3.lus {}
 PASS: ./lus2lic  {-2c modes3x2_v4.lus -n modes3x2_v4}
 PASS: ./lus2lic  {-2c mouse.lus -n mouse}
 PASS: sh mouse.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c mouse.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en mouse.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang mouse.lus {}
 PASS: ./lus2lic  {-2c mouse1.lus -n mouse1}
 PASS: sh mouse1.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c mouse1.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en mouse1.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang mouse1.lus {}
 PASS: ./lus2lic  {-2c mouse2.lus -n mouse2}
 PASS: sh mouse2.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c mouse2.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en mouse2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang mouse2.lus {}
 PASS: ./lus2lic  {-2c mouse3.lus -n mouse3}
 PASS: sh mouse3.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c mouse3.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en mouse3.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang mouse3.lus {}
 PASS: ./lus2lic  {-2c moyenne.lus -n moyenne}
 PASS: sh moyenne.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c moyenne.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en moyenne.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang moyenne.lus {}
 PASS: ./lus2lic  {-2c multiclock.lus -n multiclock}
 PASS: sh multiclock.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c multiclock.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en multiclock.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang multiclock.lus {}
 PASS: ./lus2lic  {-2c multipar.lus -n multipar}
 PASS: sh multipar.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c multipar.lus  {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en multipar.lus {}
 
 ==> lus2lic2.sum <==
-Test run by jahier on Tue Mar 22 23:24:14 
+Test run by jahier on Wed Mar 23 12:10:42 
 Native configuration is x86_64-pc-linux-gnu
 
 		=== lus2lic2 tests ===
@@ -534,140 +640,174 @@ PASS: ./lus2lic  {-2c SOURIS.lus -n SOURIS}
 PASS: sh SOURIS.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c SOURIS.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en SOURIS.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang SOURIS.lus {}
 PASS: ./lus2lic  {-2c STABLE.lus -n STABLE}
 PASS: sh STABLE.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c STABLE.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en STABLE.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang STABLE.lus {}
 PASS: ./lus2lic  {-2c SWITCH.lus -n SWITCH}
 PASS: sh SWITCH.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c SWITCH.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en SWITCH.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang SWITCH.lus {}
 PASS: ./lus2lic  {-2c SWITCH1.lus -n SWITCH1}
 PASS: sh SWITCH1.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c SWITCH1.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en SWITCH1.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang SWITCH1.lus {}
 PASS: ./lus2lic  {-2c TIME_STABLE.lus -n TIME_STABLE}
 PASS: sh TIME_STABLE.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c TIME_STABLE.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en TIME_STABLE.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang TIME_STABLE.lus {}
 PASS: ./lus2lic  {-2c TIME_STABLE1.lus -n TIME_STABLE1}
 PASS: sh TIME_STABLE1.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c TIME_STABLE1.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en TIME_STABLE1.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang TIME_STABLE1.lus {}
 PASS: ./lus2lic  {-2c Watch.lus -n Watch}
 PASS: ./lus2lic  {-2c X.lus -n X}
 PASS: sh X.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c X.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en X.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang X.lus {}
 PASS: ./lus2lic  {-2c X2.lus -n X2}
 PASS: sh X2.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c X2.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en X2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang X2.lus {}
 PASS: ./lus2lic  {-2c Xr.lus -n Xr}
 PASS: sh Xr.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c Xr.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en Xr.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang Xr.lus {}
 PASS: ./lus2lic  {-2c nc1.lus -n nc1}
 PASS: sh nc1.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c nc1.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en nc1.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang nc1.lus {}
 PASS: ./lus2lic  {-2c nc10.lus -n nc10}
 PASS: sh nc10.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c nc10.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en nc10.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang nc10.lus {}
 PASS: ./lus2lic  {-2c nc2.lus -n nc2}
 PASS: sh nc2.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c nc2.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en nc2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang nc2.lus {}
 PASS: ./lus2lic  {-2c nc3.lus -n nc3}
 PASS: sh nc3.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c nc3.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en nc3.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang nc3.lus {}
 PASS: ./lus2lic  {-2c nc4.lus -n nc4}
 PASS: sh nc4.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c nc4.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en nc4.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang nc4.lus {}
 PASS: ./lus2lic  {-2c nc5.lus -n nc5}
 PASS: sh nc5.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c nc5.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en nc5.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang nc5.lus {}
 PASS: ./lus2lic  {-2c nc6.lus -n nc6}
 PASS: sh nc6.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c nc6.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en nc6.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang nc6.lus {}
 PASS: ./lus2lic  {-2c nc7.lus -n nc7}
 PASS: sh nc7.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c nc7.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en nc7.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang nc7.lus {}
 PASS: ./lus2lic  {-2c nc8.lus -n nc8}
 PASS: sh nc8.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c nc8.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en nc8.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang nc8.lus {}
 PASS: ./lus2lic  {-2c nc9.lus -n nc9}
 PASS: sh nc9.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c nc9.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en nc9.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang nc9.lus {}
 PASS: ./lus2lic  {-2c nested.lus -n nested}
 PASS: sh nested.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c nested.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en nested.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang nested.lus {}
 PASS: ./lus2lic  {-2c newpacks.lus -n newpacks}
 PASS: ./lus2lic  {-2c noAlarm.lus -n noAlarm}
 PASS: sh noAlarm.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c noAlarm.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en noAlarm.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang noAlarm.lus {}
 PASS: ./lus2lic  {-2c node_caller1.lus -n node_caller1}
 PASS: sh node_caller1.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c node_caller1.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en node_caller1.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang node_caller1.lus {}
 PASS: ./lus2lic  {-2c nodeparam.lus -n nodeparam}
 PASS: sh nodeparam.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c nodeparam.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en nodeparam.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang nodeparam.lus {}
 PASS: ./lus2lic  {-2c noeudsIndependants.lus -n noeudsIndependants}
 PASS: sh noeudsIndependants.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c noeudsIndependants.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en noeudsIndependants.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang noeudsIndependants.lus {}
 PASS: ./lus2lic  {-2c noinput.lus -n noinput}
 PASS: sh noinput.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c noinput.lus  {}
 FAIL: Try to compare lv6 -2c with and without -en: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en noinput.lus {}
+FAIL: Try to compare gcc and clang: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang noinput.lus {}
 PASS: ./lus2lic  {-2c normal.lus -n normal}
 PASS: sh normal.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c normal.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en normal.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang normal.lus {}
 PASS: ./lus2lic  {-2c notTwo.lus -n notTwo}
 PASS: sh notTwo.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c notTwo.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en notTwo.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang notTwo.lus {}
 PASS: ./lus2lic  {-2c o2l_feux_compl.lus -n o2l_feux_compl}
 PASS: sh o2l_feux_compl.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c o2l_feux_compl.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en o2l_feux_compl.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang o2l_feux_compl.lus {}
 PASS: ./lus2lic  {-2c oneq.lus -n oneq}
 PASS: sh oneq.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c oneq.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en oneq.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang oneq.lus {}
 PASS: ./lus2lic  {-2c onlyroll.lus -n onlyroll}
 PASS: sh onlyroll.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c onlyroll.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en onlyroll.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang onlyroll.lus {}
 PASS: ./lus2lic  {-2c onlyroll2.lus -n onlyroll2}
 PASS: sh onlyroll2.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c onlyroll2.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en onlyroll2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang onlyroll2.lus {}
 PASS: ./lus2lic  {-2c over2.lus -n over2}
 PASS: sh over2.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c over2.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en over2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang over2.lus {}
 PASS: ./lus2lic  {-2c over3.lus -n over3}
 PASS: sh over3.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c over3.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en over3.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang over3.lus {}
 PASS: ./lus2lic  {-2c overload.lus -n overload}
 PASS: sh overload.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c overload.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en overload.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang overload.lus {}
 PASS: ./lus2lic  {-2c p.lus -n p}
 PASS: ./lus2lic  {-2c pack1.lus -n pack1}
 PASS: ./lus2lic  {-2c packageTableau.lus -n packageTableau}
@@ -677,160 +817,198 @@ PASS: ./lus2lic  {-2c param_node.lus -n param_node}
 PASS: sh param_node.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c param_node.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en param_node.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang param_node.lus {}
 PASS: ./lus2lic  {-2c param_node2.lus -n param_node2}
 PASS: sh param_node2.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c param_node2.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en param_node2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang param_node2.lus {}
 PASS: ./lus2lic  {-2c param_node3.lus -n param_node3}
 PASS: sh param_node3.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c param_node3.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en param_node3.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang param_node3.lus {}
 PASS: ./lus2lic  {-2c param_node4.lus -n param_node4}
 PASS: sh param_node4.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c param_node4.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en param_node4.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang param_node4.lus {}
 PASS: ./lus2lic  {-2c param_struct.lus -n param_struct}
 PASS: sh param_struct.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c param_struct.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en param_struct.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang param_struct.lus {}
 PASS: ./lus2lic  --expand-nodes {-2c pilote.lus -n pilote}
 PASS: ./lus2lic  {-2c pipeline.lus -n pipeline}
 PASS: sh pipeline.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c pipeline.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en pipeline.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang pipeline.lus {}
 PASS: ./lus2lic  {-2c plus.lus -n plus}
 PASS: sh plus.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c plus.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en plus.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang plus.lus {}
 PASS: ./lus2lic  {-2c ply01.lus -n ply01}
 PASS: sh ply01.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c ply01.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en ply01.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang ply01.lus {}
 PASS: ./lus2lic  {-2c ply02.lus -n ply02}
 PASS: sh ply02.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c ply02.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en ply02.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang ply02.lus {}
 PASS: ./lus2lic  {-2c ply03.lus -n ply03}
 PASS: sh ply03.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c ply03.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en ply03.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang ply03.lus {}
 PASS: ./lus2lic  {-2c polymorphic_pack.lus -n polymorphic_pack}
 PASS: ./lus2lic  {-2c poussoir.lus -n poussoir}
 PASS: sh poussoir.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c poussoir.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en poussoir.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang poussoir.lus {}
 PASS: ./lus2lic  {-2c pplus.lus -n pplus}
 PASS: sh pplus.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c pplus.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en pplus.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang pplus.lus {}
 PASS: ./lus2lic  {-2c pre_x.lus -n pre_x}
 PASS: sh pre_x.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c pre_x.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en pre_x.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang pre_x.lus {}
 PASS: ./lus2lic  {-2c predef01.lus -n predef01}
 PASS: sh predef01.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c predef01.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en predef01.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang predef01.lus {}
 PASS: ./lus2lic  {-2c predef02.lus -n predef02}
 PASS: sh predef02.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c predef02.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en predef02.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang predef02.lus {}
 PASS: ./lus2lic  {-2c predef03.lus -n predef03}
 PASS: sh predef03.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c predef03.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en predef03.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang predef03.lus {}
 PASS: ./lus2lic  {-2c predefOp.lus -n predefOp}
 PASS: sh predefOp.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c predefOp.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en predefOp.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang predefOp.lus {}
 PASS: ./lus2lic  {-2c produitBool.lus -n produitBool}
 PASS: sh produitBool.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c produitBool.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en produitBool.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang produitBool.lus {}
 PASS: ./lus2lic  {-2c real_ex.lus -n real_ex}
 PASS: sh real_ex.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c real_ex.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en real_ex.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang real_ex.lus {}
 PASS: ./lus2lic  {-2c redIf.lus -n redIf}
 PASS: sh redIf.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c redIf.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en redIf.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang redIf.lus {}
 PASS: ./lus2lic  {-2c rediter.lus -n rediter}
 PASS: sh rediter.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c rediter.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en rediter.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang rediter.lus {}
 PASS: ./lus2lic  {-2c redoptest.lus -n redoptest}
 PASS: sh redoptest.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c redoptest.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en redoptest.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang redoptest.lus {}
 PASS: ./lus2lic  {-2c remplissage.lus -n remplissage}
 PASS: ./lus2lic  {-2c rs.lus -n rs}
 PASS: sh rs.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c rs.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en rs.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang rs.lus {}
 PASS: ./lus2lic  {-2c sample_time_change.lus -n sample_time_change}
 PASS: sh sample_time_change.sh 
 FAIL: Try to compare lus2lic -exec and -2c: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c sample_time_change.lus  {}
 FAIL: Try to compare lv6 -2c with and without -en: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en sample_time_change.lus {}
+FAIL: Try to compare gcc and clang: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang sample_time_change.lus {}
 PASS: ./lus2lic  {-2c sample_time_change_MainNode.lus -n sample_time_change_MainNode}
 PASS: sh sample_time_change_MainNode.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c sample_time_change_MainNode.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en sample_time_change_MainNode.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang sample_time_change_MainNode.lus {}
 PASS: ./lus2lic  {-2c shiftFill_ludic.lus -n shiftFill_ludic}
 PASS: sh shiftFill_ludic.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c shiftFill_ludic.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en shiftFill_ludic.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang shiftFill_ludic.lus {}
 PASS: ./lus2lic  {-2c shift_ludic.lus -n shift_ludic}
 PASS: sh shift_ludic.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c shift_ludic.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en shift_ludic.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang shift_ludic.lus {}
 PASS: ./lus2lic  {-2c simple.lus -n simple}
 PASS: ./lus2lic  {-2c simpleRed.lus -n simpleRed}
 PASS: sh simpleRed.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c simpleRed.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en simpleRed.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang simpleRed.lus {}
 PASS: ./lus2lic  {-2c sincos.lus -n sincos}
 PASS: sh sincos.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c sincos.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en sincos.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang sincos.lus {}
 PASS: ./lus2lic  --expand-nodes {-2c speedcontrol.lus -n speedcontrol}
 PASS: sh speedcontrol.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c speedcontrol.lus  { --expand-nodes}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en speedcontrol.lus { --expand-nodes}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang speedcontrol.lus { --expand-nodes}
 PASS: ./lus2lic  {-2c stopwatch.lus -n stopwatch}
 PASS: sh stopwatch.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c stopwatch.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en stopwatch.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang stopwatch.lus {}
 PASS: ./lus2lic  {-2c struct0.lus -n struct0}
 PASS: sh struct0.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c struct0.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en struct0.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang struct0.lus {}
 PASS: ./lus2lic  {-2c struct_equality.lus -n struct_equality}
 PASS: sh struct_equality.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c struct_equality.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en struct_equality.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang struct_equality.lus {}
 PASS: ./lus2lic  {-2c struct_with.lus -n struct_with}
 PASS: sh struct_with.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c struct_with.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en struct_with.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang struct_with.lus {}
 PASS: ./lus2lic  {-2c t0.lus -n t0}
 PASS: ./lus2lic  {-2c t1.lus -n t1}
 PASS: sh t1.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c t1.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en t1.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang t1.lus {}
 PASS: ./lus2lic  {-2c t2.lus -n t2}
 PASS: sh t2.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c t2.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en t2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang t2.lus {}
 PASS: ./lus2lic  {-2c test.lus -n test}
 PASS: sh test.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c test.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en test.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang test.lus {}
 PASS: ./lus2lic  {-2c testBoite.lus -n testBoite}
 PASS: ./lus2lic  {-2c testCA.lus -n testCA}
 PASS: sh testCA.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c testCA.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en testCA.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang testCA.lus {}
 PASS: ./lus2lic  {-2c testCapt.lus -n testCapt}
 PASS: ./lus2lic  {-2c testPilote.lus -n testPilote}
 PASS: ./lus2lic  {-2c test_Int.lus -n test_Int}
@@ -838,131 +1016,161 @@ PASS: ./lus2lic  {-2c test_arrow.lus -n test_arrow}
 PASS: sh test_arrow.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c test_arrow.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en test_arrow.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang test_arrow.lus {}
 PASS: ./lus2lic  {-2c test_boolred.lus -n test_boolred}
 PASS: sh test_boolred.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c test_boolred.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en test_boolred.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang test_boolred.lus {}
 PASS: ./lus2lic  {-2c test_clash.lus -n test_clash}
 PASS: ./lus2lic  {-2c test_condact.lus -n test_condact}
 PASS: sh test_condact.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c test_condact.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en test_condact.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang test_condact.lus {}
 PASS: ./lus2lic  {-2c test_const.lus -n test_const}
 PASS: sh test_const.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c test_const.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en test_const.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang test_const.lus {}
 PASS: ./lus2lic  {-2c test_diese.lus -n test_diese}
 PASS: sh test_diese.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c test_diese.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en test_diese.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang test_diese.lus {}
 PASS: ./lus2lic  {-2c test_enum.lus -n test_enum}
 PASS: sh test_enum.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c test_enum.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en test_enum.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang test_enum.lus {}
 PASS: ./lus2lic  {-2c test_extern.lus -n test_extern}
 PASS: ./lus2lic  {-2c test_lustre.lus -n test_lustre}
 PASS: ./lus2lic  {-2c test_map.lus -n test_map}
 PASS: sh test_map.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c test_map.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en test_map.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang test_map.lus {}
 PASS: ./lus2lic  {-2c test_merge.lus -n test_merge}
 PASS: sh test_merge.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c test_merge.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en test_merge.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang test_merge.lus {}
 PASS: ./lus2lic  {-2c test_model.lus -n test_model}
 PASS: ./lus2lic  {-2c test_node_expand.lus -n test_node_expand}
 PASS: sh test_node_expand.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c test_node_expand.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en test_node_expand.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang test_node_expand.lus {}
 PASS: ./lus2lic  {-2c test_node_expand2.lus -n test_node_expand2}
 PASS: sh test_node_expand2.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c test_node_expand2.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en test_node_expand2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang test_node_expand2.lus {}
 PASS: ./lus2lic  {-2c test_poly.lus -n test_poly}
 PASS: sh test_poly.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c test_poly.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en test_poly.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang test_poly.lus {}
 PASS: ./lus2lic  {-2c test_sqrt.lus -n test_sqrt}
 PASS: ./lus2lic  {-2c test_struct.lus -n test_struct}
 PASS: sh test_struct.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c test_struct.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en test_struct.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang test_struct.lus {}
 PASS: ./lus2lic  {-2c titi.lus -n titi}
 PASS: sh titi.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c titi.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en titi.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang titi.lus {}
 PASS: ./lus2lic  {-2c toolate.lus -n toolate}
 PASS: sh toolate.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c toolate.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en toolate.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang toolate.lus {}
 PASS: ./lus2lic  {-2c toto.lus -n toto}
 PASS: sh toto.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c toto.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en toto.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang toto.lus {}
 PASS: ./lus2lic  {-2c tri.lus -n tri}
 PASS: sh tri.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c tri.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en tri.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang tri.lus {}
 PASS: ./lus2lic  {-2c triSel.lus -n triSel}
 PASS: sh triSel.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c triSel.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en triSel.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang triSel.lus {}
 PASS: ./lus2lic  {-2c trivial.lus -n trivial}
 PASS: sh trivial.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c trivial.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en trivial.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang trivial.lus {}
 PASS: ./lus2lic  {-2c trivial2.lus -n trivial2}
 PASS: sh trivial2.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c trivial2.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en trivial2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang trivial2.lus {}
 PASS: ./lus2lic  {-2c trivial_array.lus -n trivial_array}
 PASS: sh trivial_array.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c trivial_array.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en trivial_array.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang trivial_array.lus {}
 PASS: ./lus2lic  {-2c ts01.lus -n ts01}
 PASS: sh ts01.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c ts01.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en ts01.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang ts01.lus {}
 PASS: ./lus2lic  {-2c ts04.lus -n ts04}
 PASS: sh ts04.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c ts04.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en ts04.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang ts04.lus {}
 PASS: ./lus2lic  {-2c tuple.lus -n tuple}
 PASS: sh tuple.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c tuple.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en tuple.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang tuple.lus {}
 PASS: ./lus2lic  {-2c type_decl.lus -n type_decl}
 PASS: sh type_decl.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c type_decl.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en type_decl.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang type_decl.lus {}
 PASS: ./lus2lic  {-2c uu.lus -n uu}
 PASS: sh uu.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c uu.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en uu.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang uu.lus {}
 PASS: ./lus2lic  {-2c v1.lus -n v1}
 PASS: sh v1.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c v1.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en v1.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang v1.lus {}
 PASS: ./lus2lic  {-2c when_tuple.lus -n when_tuple}
 PASS: ./lus2lic  {-2c xx.lus -n xx}
 PASS: sh xx.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c xx.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en xx.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang xx.lus {}
 PASS: ./lus2lic  {-2c yyy.lus -n yyy}
 PASS: sh yyy.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c yyy.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en yyy.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang yyy.lus {}
 PASS: ./lus2lic  {-2c zzz.lus -n zzz}
 PASS: sh zzz.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c zzz.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en zzz.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang zzz.lus {}
 PASS: ./lus2lic  {-2c zzz2.lus -n zzz2}
 PASS: sh zzz2.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c zzz2.lus  {}
 PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en zzz2.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang zzz2.lus {}
 
 ==> lus2lic3.sum <==
-Test run by jahier on Tue Mar 22 23:24:14 
+Test run by jahier on Wed Mar 23 12:10:42 
 Native configuration is x86_64-pc-linux-gnu
 
 		=== lus2lic3 tests ===
@@ -1477,7 +1685,7 @@ PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node multipar.lus {}
 
 
 ==> lus2lic4.sum <==
-Test run by jahier on Tue Mar 22 23:24:17 
+Test run by jahier on Wed Mar 23 12:10:46 
 Native configuration is x86_64-pc-linux-gnu
 
 		=== lus2lic4 tests ===
@@ -1969,18 +2177,18 @@ PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node zzz2.lus {}
 # of expected failures		54
 
 ==> lus2lic1.sum <==
-PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en multipar.lus {}
+PASS: /home/jahier/lus2lic/test/../utils/compare_gcc_and_clang multipar.lus {}
 
 		=== lus2lic1 Summary ===
 
-# of expected passes		443
+# of expected passes		549
 
 ==> lus2lic2.sum <==
 
 		=== lus2lic2 Summary ===
 
-# of expected passes		427
-# of unexpected failures	3
+# of expected passes		527
+# of unexpected failures	5
 
 ==> lus2lic3.sum <==
 		=== lus2lic3 Summary ===
@@ -1996,15 +2204,15 @@ PASS: /home/jahier/lus2lic/test/../utils/compare_lv6_and_lv6_en multipar.lus {}
 # of expected passes		468
 # of unexpected failures	6
 ===============================
-# Total number of failures: 12
-lus2lic0.log:testcase ./lus2lic.tests/test0.exp completed in 2 seconds
-lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 265 seconds
-lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 282 seconds
-lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 103 seconds
-lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 104 seconds
+# Total number of failures: 14
+lus2lic0.log:testcase ./lus2lic.tests/test0.exp completed in 3 seconds
+lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 448 seconds
+lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 484 seconds
+lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 89 seconds
+lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 86 seconds
 * Ref time: 
-194.86user 41.38system 8:04.38elapsed 48%CPU (0avgtext+0avgdata 50264maxresident)k
-17568inputs+173096outputs (37major+10061698minor)pagefaults 0swaps
+310.22user 98.50system 13:24.96elapsed 50%CPU (0avgtext+0avgdata 76548maxresident)k
+10731464inputs+329792outputs (33529major+19070303minor)pagefaults 0swaps
 * Quick time (-j 4):
-231.07user 53.28system 4:42.34elapsed 100%CPU (0avgtext+0avgdata 52172maxresident)k
-18720inputs+211976outputs (34major+11722723minor)pagefaults 0swaps
+373.13user 96.56system 8:04.22elapsed 96%CPU (0avgtext+0avgdata 77272maxresident)k
+112048inputs+442032outputs (484major+19189940minor)pagefaults 0swaps
diff --git a/test/site.exp b/test/site.exp
index 788c52eb..2f58343f 100644
--- a/test/site.exp
+++ b/test/site.exp
@@ -1,4 +1,4 @@
-# Time-stamp: <modified the 22/03/2022 (at 22:44) by Erwan Jahier> 
+# Time-stamp: <modified the 23/03/2022 (at 09:47) by Erwan Jahier> 
 # 
 # (nonreg-)test harness main file
 
@@ -10,7 +10,7 @@ set test_lus2lic_no_node "$testdir/../utils/test_lus2lic_no_node_rdbg"
 set test_lus2lic_no_node "$testdir/../utils/test_lus2lic_no_node"
 set compare_exec_and_2c "$testdir/../utils/compare_exec_and_2c"
 set compare_lv6_and_lv6_en "$testdir/../utils/compare_lv6_and_lv6_en"
-
+set compare_gcc_and_clang "$testdir/../utils/compare_gcc_and_clang"
 set timeout 10
 
 proc should_work { test_name command_line args } {
@@ -39,6 +39,15 @@ proc should_work { test_name command_line args } {
             set failed 1
             exp_continue
         }
+        "rdbg -lurette: ok" {
+            pass "$cl $args"
+        }
+        "lurettetop ok" {
+            pass "$cl $args"
+        }
+        "lurette ok" {
+            pass "$cl $args"
+        }
         "ec program must contain a single node" {
             set failed 1
             exp_continue
@@ -71,12 +80,6 @@ proc should_work { test_name command_line args } {
             set failed 1
             exp_continue
         }
-        "rdbg -lurette: ok" {
-            pass "$cl $args"
-        }
-        "lurettetop ok" {
-            pass "$cl $args"
-        }
         # to avoid that match_max (the expect buffer size) is reached 
         # which truncate the outputs
         "\n" {
@@ -226,7 +229,8 @@ proc nonreg_exec_and_2c {files tmp} {
     global lus2lic
     global compare_exec_and_2c
     global compare_lv6_and_lv6_en
-
+    global compare_gcc_and_clang
+    
     foreach f $files {
         eval spawn "cp -f $f $tmp"
     }
@@ -262,6 +266,11 @@ proc nonreg_exec_and_2c {files tmp} {
   				 "$compare_lv6_and_lv6_en" "$f" "$opt"]
   		    catch { exp_close -i $id4 }
   		    catch { exp_wait  -i $id4 } output
+
+  		    set id5 [should_work "Try to compare gcc and clang" \
+  				 "$compare_gcc_and_clang" "$f" "$opt"]
+  		    catch { exp_close -i $id5 }
+  		    catch { exp_wait  -i $id5 } output
 		}
             }
             catch { exp_close -i $id1 }
diff --git a/utils/compare_exec_and_2c b/utils/compare_exec_and_2c
index d7c16ffb..e3174389 100755
--- a/utils/compare_exec_and_2c
+++ b/utils/compare_exec_and_2c
@@ -21,18 +21,22 @@ env_node="$node"_env
 . /home/jahier/.opam/opam-init/variables.sh
 set -x verbose #echo on
 
+
 if
-./lus2lic $OPT $lustre_file -n $node --gen-autotest -np;
+    [ -f $env_node ];
+then
+   echo "$env_node generated" 
+    
+else if
+     ./lus2lic $OPT $lustre_file -n $node --gen-autotest -np;
+     cat $lustre_file  >> $_oracle;
 then
-   echo "lus2lic --gen-autotest done" 
+     echo "./lus2lic $OPT $lustre_file -n $node --gen-autotest -np: ok" 
 else
     echo "Error"
     exit 2
 fi
-
-
-cat $lustre_file  >> $_oracle;
-
+fi
 
 if
     ./lus2lic -dir /tmp/lustre-test-$lustre_file-$node $OPT $lustre_file -n $node  -2c -cc -o $node.exec;    
@@ -49,7 +53,7 @@ export PATH=/usr/local/tools/lustre/v4/bin/:$PATH
 PRECISION=4
 if
     lurette -l 10 -o xxx.rif  \
-        -sut "valgrind --log-file=$node-valgrind.log ./$node.exec" \
+        -sut "./$node.exec" \
         -env "lutin $env -n $env_node -p $PRECISION -seed 42" \
         -oracle "./lus2lic $_oracle -n $oracle $OPT";
 # lurettetop_exe -p $PRECISION  -rp "sut:socket:127.0.0.1:$PORT"  -rp "env:lutin:$env:-p:$PRECISION"  -rp "oracle:v6:$_oracle:$oracle:$OPT" \
diff --git a/utils/compare_gcc_and_clang b/utils/compare_gcc_and_clang
new file mode 100755
index 00000000..35f5022b
--- /dev/null
+++ b/utils/compare_gcc_and_clang
@@ -0,0 +1,80 @@
+#!/bin/sh
+
+# compares with lurette the results of:
+#   lv6 -exec -en
+#   lv6 -2c-exec
+
+
+lustre_file=$1
+OPT=$2
+
+node=`basename $lustre_file .lus`
+_oracle=_"$node"_oracle.lus
+oracle="$node"_oracle
+lv4="$node"_lv4.lus
+ec="$node".ec
+lv4_node="$node__$node"
+env=_"$node"_env.lut
+env_node="$node"_env
+
+
+. /home/jahier/.opam/opam-init/variables.sh
+set -x verbose #echo on
+
+# _$node_env.lut,  etc have already been generated by compare_exec_and_2c
+
+# Compares
+#   lv6 -2c -en + gcc
+# versus
+#   lv6 -2c + clang
+#
+
+if
+    [ -f $env_node ];
+then
+   echo "$env_node generated" 
+    
+else if
+     ./lus2lic $OPT $lustre_file -n $node --gen-autotest -np;
+     cat $lustre_file  >> $_oracle;
+then
+     echo "./lus2lic $OPT $lustre_file -n $node --gen-autotest -np: ok" 
+else
+    echo "Error"
+    exit 2
+fi
+fi
+
+if
+    export C_COMPILER="gcc -g -O -Wall"  && ./lus2lic -dir /tmp/lustre-test-gcc-$lustre_file-$node $OPT $lustre_file -n $node -en -2c -cc -o ${node}_gcc.exec;    
+then
+    echo "lus2lic -2c done"
+else
+    echo "Error"
+    exit 2
+fi
+
+if
+    export C_COMPILER=clang && ./lus2lic -dir /tmp/lustre-test-clang-$_oracle-$oracle -en $OPT $_oracle -n $oracle  -2c -cc -o ${oracle}_clang.exec;
+then
+    echo "$oracle-clang.exec is generated "
+else
+    echo "Error"
+    exit 2
+fi
+
+
+PRECISION=4
+if
+    lurette -l 10   \
+        -sut "valgrind --log-file=$node-gcc-valgrind.log ./${node}_gcc.exec" \
+        -env "lutin $env -n $env_node -p $PRECISION -seed 42" \
+        -oracle "valgrind --log-file=${node}_oracle-clang-valgrind.log ./${node}_oracle_clang.exec";
+then
+    echo "Comparison of gcc and clangd with lurette on $lustre_file: ok"
+    echo "lurette ok"
+else
+    echo "error"
+     exit 2
+fi
+exit 0
diff --git a/utils/test_lus2lic_no_node b/utils/test_lus2lic_no_node
index 3847df69..ee45afdf 100755
--- a/utils/test_lus2lic_no_node
+++ b/utils/test_lus2lic_no_node
@@ -19,17 +19,20 @@ env_node="$node"_env
 set -x verbose #echo on
 
 if
-./lus2lic $OPT $lustre_file -n $node --gen-autotest -np ;
+    [ -f $env_node ];
 then
-   echo "lus2lic --gen-autotest done" 
+   echo "$env_node generated" 
+    
+else if
+     ./lus2lic $OPT $lustre_file -n $node --gen-autotest -np;
+     cat $lustre_file  >> $_oracle;
+then
+     echo "./lus2lic $OPT $lustre_file -n $node --gen-autotest -np: ok" 
 else
     echo "Error"
     exit 2
 fi
-
-#cat  $lustre_file  >> $_oracle
-
-cat $lustre_file  >> $_oracle;
+fi
 
 
 if
diff --git a/utils/test_lus2lic_no_node_rdbg b/utils/test_lus2lic_no_node_rdbg
index c798034f..9a6dca9e 100755
--- a/utils/test_lus2lic_no_node_rdbg
+++ b/utils/test_lus2lic_no_node_rdbg
@@ -21,17 +21,20 @@ set -x verbose #echo on
 set -e # stop at the first error!
 
 if
-./lus2lic $OPT $lustre_file -n $node --gen-autotest -np;
+    [ -f $env_node ];
 then
-   echo "lus2lic --gen-autotest done" 
+   echo "$env_node generated" 
+    
+else if
+     ./lus2lic $OPT $lustre_file -n $node --gen-autotest -np;
+     cat $lustre_file  >> $_oracle;
+then
+     echo "./lus2lic $OPT $lustre_file -n $node --gen-autotest -np: ok" 
 else
     echo "Error"
     exit 2
 fi
-
-#cat  $lustre_file  >> $_oracle
-
-cat $lustre_file  >> $_oracle;
+fi
 
 
 if
-- 
GitLab