From bc45b051e3f42833e17de68bbcca80d64e4e4760 Mon Sep 17 00:00:00 2001
From: Andre Maroneze <andre.oliveiramaroneze@cea.fr>
Date: Mon, 18 May 2020 13:33:19 +0200
Subject: [PATCH] sync with frama-c master

---
 frama-c                            |   2 +-
 mini-gmp/mini-gmp.eva/warnings.log |  18 ++---
 mini-gmp/mini-gmp.parse/framac.ast | 102 +++++++++++++++--------------
 3 files changed, 62 insertions(+), 60 deletions(-)

diff --git a/frama-c b/frama-c
index 04fe04593..2b7c2f71f 160000
--- a/frama-c
+++ b/frama-c
@@ -1 +1 @@
-Subproject commit 04fe045939ae28f0f46844f8b84c80757fef361f
+Subproject commit 2b7c2f71f152b9e0758333f31d05bb9300e06ebd
diff --git a/mini-gmp/mini-gmp.eva/warnings.log b/mini-gmp/mini-gmp.eva/warnings.log
index ec08eac5d..97cb47335 100644
--- a/mini-gmp/mini-gmp.eva/warnings.log
+++ b/mini-gmp/mini-gmp.eva/warnings.log
@@ -1,15 +1,15 @@
-tests/hex-random.c:151:[eva:garbled-mix] warning: The specification of function __gmpz_neg has generated a garbled mix for assigns clause assigns clause *.
-tests/hex-random.c:153:[eva:garbled-mix] warning: The specification of function __gmpz_neg has generated a garbled mix for assigns clause assigns clause *.
-tests/hex-random.c:160:[eva:garbled-mix] warning: The specification of function __gmpz_add has generated a garbled mix for assigns clause assigns clause *.
+tests/hex-random.c:151:[eva:garbled-mix] warning: The specification of function __gmpz_neg has generated a garbled mix for assigns clause assigns clause *res.
+tests/hex-random.c:153:[eva:garbled-mix] warning: The specification of function __gmpz_neg has generated a garbled mix for assigns clause assigns clause *res.
+tests/hex-random.c:160:[eva:garbled-mix] warning: The specification of function __gmpz_add has generated a garbled mix for assigns clause assigns clause *res.
 tests/hex-random.c:201:[eva] warning: ignoring unsupported \allocates clause
 tests/hex-random.c:201:[eva:garbled-mix] warning: The specification of function __gmp_asprintf has generated a garbled mix for assigns clause assigns clause \result.
-tests/hex-random.c:201:[eva:garbled-mix] warning: The specification of function __gmp_asprintf has generated a garbled mix for assigns clause assigns clause *.
+tests/hex-random.c:201:[eva:garbled-mix] warning: The specification of function __gmp_asprintf has generated a garbled mix for assigns clause assigns clause *strp.
 tests/hex-random.c:202:[eva] warning: ignoring unsupported \allocates clause
 tests/hex-random.c:202:[eva:garbled-mix] warning: The specification of function __gmp_asprintf has generated a garbled mix for assigns clause assigns clause \result.
-tests/hex-random.c:202:[eva:garbled-mix] warning: The specification of function __gmp_asprintf has generated a garbled mix for assigns clause assigns clause *.
+tests/hex-random.c:202:[eva:garbled-mix] warning: The specification of function __gmp_asprintf has generated a garbled mix for assigns clause assigns clause *strp.
 tests/hex-random.c:203:[eva] warning: ignoring unsupported \allocates clause
 tests/hex-random.c:203:[eva:garbled-mix] warning: The specification of function __gmp_asprintf has generated a garbled mix for assigns clause assigns clause \result.
-tests/hex-random.c:203:[eva:garbled-mix] warning: The specification of function __gmp_asprintf has generated a garbled mix for assigns clause assigns clause *.
-tests/hex-random.c:205:[eva:garbled-mix] warning: The specification of function __gmpz_clear has generated a garbled mix for assigns clause assigns clause *.
-tests/hex-random.c:206:[eva:garbled-mix] warning: The specification of function __gmpz_clear has generated a garbled mix for assigns clause assigns clause *.
-tests/hex-random.c:207:[eva:garbled-mix] warning: The specification of function __gmpz_clear has generated a garbled mix for assigns clause assigns clause *.
+tests/hex-random.c:203:[eva:garbled-mix] warning: The specification of function __gmp_asprintf has generated a garbled mix for assigns clause assigns clause *strp.
+tests/hex-random.c:205:[eva:garbled-mix] warning: The specification of function __gmpz_clear has generated a garbled mix for assigns clause assigns clause *a.
+tests/hex-random.c:206:[eva:garbled-mix] warning: The specification of function __gmpz_clear has generated a garbled mix for assigns clause assigns clause *a.
+tests/hex-random.c:207:[eva:garbled-mix] warning: The specification of function __gmpz_clear has generated a garbled mix for assigns clause assigns clause *a.
diff --git a/mini-gmp/mini-gmp.parse/framac.ast b/mini-gmp/mini-gmp.parse/framac.ast
index e4fd25476..648cfb186 100644
--- a/mini-gmp/mini-gmp.parse/framac.ast
+++ b/mini-gmp/mini-gmp.parse/framac.ast
@@ -5553,32 +5553,33 @@ void __gmp_randinit_default(__gmp_randstate_struct *);
 
 void __gmp_randseed_ui(__gmp_randstate_struct *, unsigned long);
 
-/*@ assigns \result, *, __fc_random_counter;
+/*@ assigns \result, *a, __fc_random_counter;
     assigns \result \from __fc_random_counter;
-    assigns * \from __fc_random_counter;
+    assigns *a \from __fc_random_counter;
     assigns __fc_random_counter \from __fc_random_counter;
  */
-unsigned long __gmp_urandomb_ui(__gmp_randstate_struct *, unsigned long);
-
-/*@ requires \valid();
-    ensures \initialized(\old());
-    assigns \result, *;
-    assigns \result \from ;
-    assigns * \from ;
-    allocates \old();
+unsigned long __gmp_urandomb_ui(__gmp_randstate_struct * /*[1]*/ a,
+                                unsigned long b);
+
+/*@ requires \valid(strp);
+    ensures \initialized(\old(strp));
+    assigns \result, *strp;
+    assigns \result \from fmt;
+    assigns *strp \from fmt;
+    allocates \old(strp);
  */
-int __gmp_asprintf(char **, char const *, void * const *__va_params);
+int __gmp_asprintf(char **strp, char const *fmt, void * const *__va_params);
 
-/*@ requires \valid();
-    ensures \initialized(\old());
-    assigns *;
-    assigns * \from , ;
+/*@ requires \valid(res);
+    ensures \initialized(\old(res));
+    assigns *res;
+    assigns *res \from a, b;
  */
-void __gmpz_add(mpz_ptr, mpz_srcptr, mpz_srcptr);
+void __gmpz_add(mpz_ptr res, mpz_srcptr a, mpz_srcptr b);
 
-/*@ assigns *;
-    assigns * \from , ; */
-void __gmpz_and(mpz_ptr, mpz_srcptr, mpz_srcptr);
+/*@ assigns *res;
+    assigns *res \from a, b; */
+void __gmpz_and(mpz_ptr res, mpz_srcptr a, mpz_srcptr b);
 
 void __gmpz_cdiv_q_2exp(mpz_ptr, mpz_srcptr, mp_bitcnt_t);
 
@@ -5586,11 +5587,11 @@ void __gmpz_cdiv_qr(mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr);
 
 void __gmpz_cdiv_r_2exp(mpz_ptr, mpz_srcptr, mp_bitcnt_t);
 
-/*@ assigns *, __fc_random_counter;
-    assigns * \from __fc_random_counter;
+/*@ assigns *a, __fc_random_counter;
+    assigns *a \from __fc_random_counter;
     assigns __fc_random_counter \from __fc_random_counter;
  */
-void __gmpz_clear(mpz_ptr);
+void __gmpz_clear(mpz_ptr a);
 
 void __gmpz_clrbit(mpz_ptr, mp_bitcnt_t);
 
@@ -5608,42 +5609,43 @@ void __gmpz_fdiv_qr(mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr);
 
 void __gmpz_fdiv_r_2exp(mpz_ptr, mpz_srcptr, mp_bitcnt_t);
 
-/*@ assigns *;
-    assigns * \from , ; */
-void __gmpz_gcd(mpz_ptr, mpz_srcptr, mpz_srcptr);
+/*@ assigns *res;
+    assigns *res \from a, b; */
+void __gmpz_gcd(mpz_ptr res, mpz_srcptr a, mpz_srcptr b);
 
 char *__gmpz_get_str(char *, int, mpz_srcptr);
 
-/*@ assigns *, __fc_random_counter;
-    assigns * \from __fc_random_counter;
+/*@ assigns *a, __fc_random_counter;
+    assigns *a \from __fc_random_counter;
     assigns __fc_random_counter \from __fc_random_counter;
  */
-void __gmpz_init(mpz_ptr);
+void __gmpz_init(mpz_ptr a);
 
-/*@ assigns *;
-    assigns * \from , ; */
-void __gmpz_ior(mpz_ptr, mpz_srcptr, mpz_srcptr);
+/*@ assigns *res;
+    assigns *res \from a, b; */
+void __gmpz_ior(mpz_ptr res, mpz_srcptr a, mpz_srcptr b);
 
-/*@ assigns *;
-    assigns * \from , ; */
-void __gmpz_lcm(mpz_ptr, mpz_srcptr, mpz_srcptr);
+/*@ assigns *res;
+    assigns *res \from a, b; */
+void __gmpz_lcm(mpz_ptr res, mpz_srcptr a, mpz_srcptr b);
 
-/*@ assigns *;
-    assigns * \from , ; */
-void __gmpz_mul(mpz_ptr, mpz_srcptr, mpz_srcptr);
+/*@ assigns *res;
+    assigns *res \from a, b; */
+void __gmpz_mul(mpz_ptr res, mpz_srcptr a, mpz_srcptr b);
 
-/*@ assigns *;
-    assigns * \from ; */
-void __gmpz_neg(mpz_ptr, mpz_srcptr);
+/*@ assigns *res;
+    assigns *res \from a; */
+void __gmpz_neg(mpz_ptr res, mpz_srcptr a);
 
 void __gmpz_powm(mpz_ptr, mpz_srcptr, mpz_srcptr, mpz_srcptr);
 
-/*@ assigns *, *, __fc_random_counter;
-    assigns * \from __fc_random_counter;
-    assigns * \from __fc_random_counter;
+/*@ assigns *a, *b, __fc_random_counter;
+    assigns *a \from __fc_random_counter;
+    assigns *b \from __fc_random_counter;
     assigns __fc_random_counter \from __fc_random_counter;
  */
-void __gmpz_rrandomb(mpz_ptr, __gmp_randstate_struct *, mp_bitcnt_t);
+void __gmpz_rrandomb(mpz_ptr a, __gmp_randstate_struct * /*[1]*/ b,
+                     mp_bitcnt_t c);
 
 mp_bitcnt_t __gmpz_scan0(mpz_srcptr, mp_bitcnt_t) __attribute__((__pure__));
 
@@ -5655,9 +5657,9 @@ void __gmpz_set_ui(mpz_ptr, unsigned long);
 
 void __gmpz_setbit(mpz_ptr, mp_bitcnt_t);
 
-/*@ assigns *;
-    assigns * \from , ; */
-void __gmpz_sub(mpz_ptr, mpz_srcptr, mpz_srcptr);
+/*@ assigns *res;
+    assigns *res \from a, b; */
+void __gmpz_sub(mpz_ptr res, mpz_srcptr a, mpz_srcptr b);
 
 void __gmpz_tdiv_q_2exp(mpz_ptr, mpz_srcptr, mp_bitcnt_t);
 
@@ -5667,9 +5669,9 @@ void __gmpz_tdiv_r_2exp(mpz_ptr, mpz_srcptr, mp_bitcnt_t);
 
 void __gmpz_urandomb(mpz_ptr, __gmp_randstate_struct *, mp_bitcnt_t);
 
-/*@ assigns *;
-    assigns * \from , ; */
-void __gmpz_xor(mpz_ptr, mpz_srcptr, mpz_srcptr);
+/*@ assigns *res;
+    assigns *res \from a, b; */
+void __gmpz_xor(mpz_ptr res, mpz_srcptr a, mpz_srcptr b);
 
 static gmp_randstate_t state;
 /*@ requires valid_read_string(format);
-- 
GitLab