From 0e233e833ba00560a7925ddbce5d220dfe1fdde0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9cile=20RUET-CROS?= <cecile.ruet-cros@cea.fr> Date: Wed, 9 Oct 2024 17:34:46 +0200 Subject: [PATCH] [wp/region] + oracle tests (arrays + union) --- src/plugins/wp/tests/wp_region/array.c | 26 + src/plugins/wp/tests/wp_region/copy_array.c | 21 + .../tests/wp_region/oracle/array.res.oracle | 502 ++++++++++++++++++ .../wp_region/oracle/copy_array.res.oracle | 501 +++++++++++++++++ .../tests/wp_region/oracle/union.res.oracle | 114 ++++ .../wp_region/oracle_qualif/array.res.oracle | 384 ++++++++++++++ .../oracle_qualif/copy_array.res.oracle | 320 +++++++++++ .../wp_region/oracle_qualif/union.res.oracle | 71 +++ src/plugins/wp/tests/wp_region/union.i | 16 + 9 files changed, 1955 insertions(+) create mode 100644 src/plugins/wp/tests/wp_region/array.c create mode 100644 src/plugins/wp/tests/wp_region/copy_array.c create mode 100644 src/plugins/wp/tests/wp_region/oracle/array.res.oracle create mode 100644 src/plugins/wp/tests/wp_region/oracle/copy_array.res.oracle create mode 100644 src/plugins/wp/tests/wp_region/oracle/union.res.oracle create mode 100644 src/plugins/wp/tests/wp_region/oracle_qualif/array.res.oracle create mode 100644 src/plugins/wp/tests/wp_region/oracle_qualif/copy_array.res.oracle create mode 100644 src/plugins/wp/tests/wp_region/oracle_qualif/union.res.oracle create mode 100644 src/plugins/wp/tests/wp_region/union.i diff --git a/src/plugins/wp/tests/wp_region/array.c b/src/plugins/wp/tests/wp_region/array.c new file mode 100644 index 00000000000..dcc7a41a65a --- /dev/null +++ b/src/plugins/wp/tests/wp_region/array.c @@ -0,0 +1,26 @@ +struct S { + int len; + int content[10]; +}; +/*@ predicate pointed(struct S *p, struct S * q) = p==q || \separated(p,q); +*/ + + +/*@ + requires pointed(a, b); + region AB: *a, *b; + ensures a!=b ==> a->content[2] == \old(a->content[2]) + b->content[2]; + ensures a==b ==> a->content[2] == 2*\old(a->content[2]); + ensures a->content[2] == \old(a->content[2] + b->content[2]); + ensures a->content[4] == \old(a->content[4]); +*/ +void add_first4(struct S * a , struct S * b ) +{ + a->content[0] += b->content[0]; + a->content[1] += b->content[1]; + note1: + a->content[2] += b->content[2]; + //@ assert a!=b ==> a->content[2] == \at(a->content[2],note1) + b->content[2]; + //@ assert a==b ==> a->content[2] == 2*\at(a->content[2],note1); + a->content[3] += b->content[3]; +} diff --git a/src/plugins/wp/tests/wp_region/copy_array.c b/src/plugins/wp/tests/wp_region/copy_array.c new file mode 100644 index 00000000000..4084930a672 --- /dev/null +++ b/src/plugins/wp/tests/wp_region/copy_array.c @@ -0,0 +1,21 @@ + +/*@ requires n>=0 ; + requires \separated( a+ (0..n-1) , b + (0..n-1) ); + ensures \forall integer k ; 0 <= k < n ==> a[k] == b[k] ; + assigns a[0..n-1] ; + region AB: a[..], b[..]; + */ +void copy( int * a , int * b , int n ) +{ + /*@ loop invariant Range: 0 <= i <= n ; + loop invariant Copy: \forall integer k ; 0 <= k < i ==> a[k] == b[k] ; + loop assigns i , a[0..n-1] ; + loop variant n - i; + */ + for (int i = 0 ; i < n ; i++) { + L: + a[i] = b[i] ; + /*@ assert A: \forall integer k ; 0 <= k < i ==> a[k] == \at(a[k],L); */ + /*@ assert B: \forall integer k ; 0 <= k < i ==> b[k] == \at(b[k],L); */ + } +} diff --git a/src/plugins/wp/tests/wp_region/oracle/array.res.oracle b/src/plugins/wp/tests/wp_region/oracle/array.res.oracle new file mode 100644 index 00000000000..6fd76bcdc0e --- /dev/null +++ b/src/plugins/wp/tests/wp_region/oracle/array.res.oracle @@ -0,0 +1,502 @@ +# frama-c -wp -wp-model 'Region' [...] +[kernel] Parsing array.c (with preprocessing) +[wp] Running WP plugin... +[wp] [Valid] Goal add_first4_exits (Cfg) (Unreachable) +[wp] [Valid] Goal add_first4_terminates (Cfg) (Trivial) +[wp] Warning: Missing RTE guards +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +------------------------------------------------------------ + Function add_first4 +------------------------------------------------------------ + +Goal Post-condition (file array.c, line 12) in 'add_first4': +Let a_1 = shiftfield_F1_S_content(a). +Let a_2 = shift_sint32(a_1, 0). +Let x = Msint32_0[a_2]. +Let a_3 = shiftfield_F1_S_content(b). +Let x_1 = Msint32_0[shift_sint32(a_3, 0)]. +Let m = Msint32_0[a_2 <- x + x_1]. +Let a_4 = shift_sint32(a_1, 1). +Let x_2 = Msint32_0[a_4]. +Let x_3 = m[shift_sint32(a_3, 1)]. +Let m_1 = m[a_4 <- x_2 + x_3]. +Let a_5 = shift_sint32(a_1, 2). +Let x_4 = Msint32_0[a_5]. +Let a_6 = shift_sint32(a_3, 2). +Let x_5 = m_1[a_6]. +Let x_6 = x_4 + x_5. +Let m_2 = m_1[a_5 <- x_6]. +Let a_7 = shift_sint32(a_1, 3). +Let x_7 = Msint32_0[a_7]. +Let x_8 = m_2[shift_sint32(a_3, 3)]. +Let x_9 = m_2[a_7 <- x_7 + x_8][a_6]. +Assume { + Type: is_sint32(x) /\ is_sint32(x_2) /\ is_sint32(x_4) /\ is_sint32(x_7) /\ + is_sint32(Msint32_0[shift_sint32(a_1, 4)]) /\ is_sint32(x_1) /\ + is_sint32(Msint32_0[a_6]) /\ is_sint32(x_3) /\ is_sint32(x_5) /\ + is_sint32(x_6) /\ is_sint32(x_8) /\ is_sint32(x_9). + (* Heap *) + Type: (region(a.base) <= 0) /\ (region(b.base) <= 0). + (* Goal *) + When: b != a. + (* Pre-condition *) + Have: P_pointed(a, b). + (* Assertion *) + Have: m_2[a_6] = x_5. +} +Prove: x_9 = x_5. + +------------------------------------------------------------ + +Goal Post-condition (file array.c, line 13) in 'add_first4': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition (file array.c, line 14) in 'add_first4': +Let a_1 = shiftfield_F1_S_content(a). +Let a_2 = shift_sint32(a_1, 0). +Let x = Msint32_0[a_2]. +Let a_3 = shiftfield_F1_S_content(b). +Let x_1 = Msint32_0[shift_sint32(a_3, 0)]. +Let m = Msint32_0[a_2 <- x + x_1]. +Let a_4 = shift_sint32(a_1, 1). +Let x_2 = Msint32_0[a_4]. +Let x_3 = m[shift_sint32(a_3, 1)]. +Let m_1 = m[a_4 <- x_2 + x_3]. +Let a_5 = shift_sint32(a_3, 2). +Let x_4 = m_1[a_5]. +Let a_6 = shift_sint32(a_1, 2). +Let x_5 = Msint32_0[a_6]. +Let x_6 = x_5 + x_4. +Let m_2 = m_1[a_6 <- x_6]. +Let x_7 = m_2[a_5]. +Let a_7 = shift_sint32(a_1, 3). +Let x_8 = Msint32_0[a_7]. +Let x_9 = Msint32_0[a_5]. +Let x_10 = m_2[shift_sint32(a_3, 3)]. +Assume { + Type: is_sint32(x) /\ is_sint32(x_2) /\ is_sint32(x_5) /\ is_sint32(x_8) /\ + is_sint32(Msint32_0[shift_sint32(a_1, 4)]) /\ is_sint32(x_1) /\ + is_sint32(x_9) /\ is_sint32(x_3) /\ is_sint32(x_4) /\ is_sint32(x_6) /\ + is_sint32(x_7) /\ is_sint32(x_10) /\ + is_sint32(m_2[a_7 <- x_8 + x_10][a_5]). + (* Heap *) + Type: (region(a.base) <= 0) /\ (region(b.base) <= 0). + (* Pre-condition *) + Have: P_pointed(a, b). + (* Assertion *) + Have: ((b != a) -> (x_7 = x_4)). + (* Assertion *) + Have: ((b = a) -> (x_4 = x_5)). +} +Prove: x_4 = x_9. + +------------------------------------------------------------ + +Goal Post-condition (file array.c, line 15) in 'add_first4': +Prove: true. + +------------------------------------------------------------ + +Goal Assertion (file array.c, line 23): +Let a_1 = shiftfield_F1_S_content(a). +Let a_2 = shift_sint32(a_1, 0). +Let x = Msint32_0[a_2]. +Let a_3 = shift_sint32(a_1, 1). +Let x_1 = Msint32_0[a_3]. +Let a_4 = shift_sint32(a_1, 2). +Let x_2 = Msint32_0[a_4]. +Let a_5 = shiftfield_F1_S_content(b). +Let x_3 = Msint32_0[shift_sint32(a_5, 0)]. +Let a_6 = shift_sint32(a_5, 2). +Let m = Msint32_0[a_2 <- x + x_3]. +Let x_4 = m[shift_sint32(a_5, 1)]. +Let m_1 = m[a_3 <- x_1 + x_4]. +Let x_5 = m_1[a_6]. +Let x_6 = x_2 + x_5. +Let m_2 = m_1[a_4 <- x_6]. +Let x_7 = m_2[a_6]. +Assume { + Type: is_sint32(x) /\ is_sint32(x_1) /\ is_sint32(x_2) /\ + is_sint32(Msint32_0[shift_sint32(a_1, 3)]) /\ + is_sint32(Msint32_0[shift_sint32(a_1, 4)]) /\ is_sint32(x_3) /\ + is_sint32(Msint32_0[a_6]) /\ is_sint32(x_4) /\ is_sint32(x_5) /\ + is_sint32(x_6) /\ is_sint32(x_7) /\ + is_sint32(m_2[shift_sint32(a_5, 3)]). + (* Heap *) + Type: (region(a.base) <= 0) /\ (region(b.base) <= 0). + (* Goal *) + When: b != a. + (* Pre-condition *) + Have: P_pointed(a, b). +} +Prove: x_7 = x_5. + +------------------------------------------------------------ + +Goal Assertion (file array.c, line 24): +Prove: true. + +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle/copy_array.res.oracle b/src/plugins/wp/tests/wp_region/oracle/copy_array.res.oracle new file mode 100644 index 00000000000..b50ed95f5a1 --- /dev/null +++ b/src/plugins/wp/tests/wp_region/oracle/copy_array.res.oracle @@ -0,0 +1,501 @@ +# frama-c -wp -wp-model 'Region' [...] +[kernel] Parsing copy_array.c (with preprocessing) +[wp] Running WP plugin... +[wp] [Valid] Goal copy_exits (Cfg) (Unreachable) +[wp] [Valid] Goal copy_terminates (Cfg) (Trivial) +[wp] Warning: Missing RTE guards +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +------------------------------------------------------------ + Function copy +------------------------------------------------------------ + +Goal Post-condition (file copy_array.c, line 4) in 'copy': +Let a_1 = shift_sint32(a, 0). +Let a_2 = havoc(Msint32_undef_0, Msint32_0, a_1, n). +Let x = 4 * n. +Let a_3 = havoc(Msint32_undef_0, Msint32_0, a_1, i). +Assume { + Type: is_sint32(i) /\ is_sint32(n). + (* Heap *) + Type: (region(a.base) <= 0) /\ (region(b.base) <= 0). + (* Goal *) + When: (0 <= i_1) /\ (i_1 < n). + (* Pre-condition *) + Have: separated(a_1, x, shift_sint32(b, 0), x). + (* Invariant 'Range' *) + Have: 0 <= n. + (* Invariant 'Range' *) + Have: (0 <= i) /\ (i <= n). + (* Invariant 'Copy' *) + Have: forall i_2 : Z. ((0 <= i_2) -> ((i_2 < i) -> + (a_2[shift_sint32(b, i_2)] = a_2[shift_sint32(a, i_2)]))). + (* Else *) + Have: n <= i. +} +Prove: a_3[shift_sint32(b, i_1)] = a_3[shift_sint32(a, i_1)]. + +------------------------------------------------------------ + +Goal Preservation of Invariant 'Copy' (file copy_array.c, line 11): +Let a_1 = shift_sint32(a, 0). +Let a_2 = havoc(Msint32_undef_0, Msint32_0, a_1, n). +Let a_3 = a_2[shift_sint32(a, i) <- a_2[shift_sint32(b, i)]]. +Let x = 4 * n. +Assume { + Type: is_sint32(i) /\ is_sint32(n) /\ is_sint32(1 + i). + (* Heap *) + Type: (region(a.base) <= 0) /\ (region(b.base) <= 0). + (* Goal *) + When: (i_1 <= i) /\ (0 <= i_1). + (* Pre-condition *) + Have: separated(a_1, x, shift_sint32(b, 0), x). + (* Invariant 'Range' *) + Have: 0 <= n. + (* Invariant 'Range' *) + Have: (0 <= i) /\ (i <= n). + (* Invariant 'Copy' *) + Have: forall i_2 : Z. ((0 <= i_2) -> ((i_2 < i) -> + (a_2[shift_sint32(b, i_2)] = a_2[shift_sint32(a, i_2)]))). + (* Then *) + Have: i < n. + (* Assertion 'A' *) + Have: forall i_2 : Z. let a_4 = shift_sint32(a, i_2) in ((0 <= i_2) -> + ((i_2 < i) -> (a_3[a_4] = a_2[a_4]))). + (* Assertion 'B' *) + Have: forall i_2 : Z. let a_4 = shift_sint32(b, i_2) in ((0 <= i_2) -> + ((i_2 < i) -> (a_3[a_4] = a_2[a_4]))). + (* Invariant 'Range' *) + Have: (-1) <= i. +} +Prove: a_3[shift_sint32(b, i_1)] = a_3[shift_sint32(a, i_1)]. + +------------------------------------------------------------ + +Goal Establishment of Invariant 'Copy' (file copy_array.c, line 11): +Prove: true. + +------------------------------------------------------------ + +Goal Preservation of Invariant 'Range' (file copy_array.c, line 10): +Prove: true. + +------------------------------------------------------------ + +Goal Establishment of Invariant 'Range' (file copy_array.c, line 10): +Prove: true. + +------------------------------------------------------------ + +Goal Assertion 'A' (file copy_array.c, line 18): +Let a_1 = shift_sint32(a, 0). +Let a_2 = havoc(Msint32_undef_0, Msint32_0, a_1, n). +Let x = 4 * n. +Let a_3 = shift_sint32(a, i_1). +Assume { + Type: is_sint32(i) /\ is_sint32(n). + (* Heap *) + Type: (region(a.base) <= 0) /\ (region(b.base) <= 0). + (* Goal *) + When: (0 <= i_1) /\ (i_1 < i). + (* Pre-condition *) + Have: separated(a_1, x, shift_sint32(b, 0), x). + (* Invariant 'Range' *) + Have: 0 <= n. + (* Invariant 'Range' *) + Have: (0 <= i) /\ (i <= n). + (* Invariant 'Copy' *) + Have: forall i_2 : Z. ((0 <= i_2) -> ((i_2 < i) -> + (a_2[shift_sint32(b, i_2)] = a_2[shift_sint32(a, i_2)]))). + (* Then *) + Have: i < n. +} +Prove: a_2[shift_sint32(a, i) <- a_2[shift_sint32(b, i)]][a_3] = a_2[a_3]. + +------------------------------------------------------------ + +Goal Assertion 'B' (file copy_array.c, line 19): +Let a_1 = shift_sint32(a, 0). +Let a_2 = havoc(Msint32_undef_0, Msint32_0, a_1, n). +Let a_3 = a_2[shift_sint32(a, i) <- a_2[shift_sint32(b, i)]]. +Let x = 4 * n. +Let a_4 = shift_sint32(b, i_1). +Assume { + Type: is_sint32(i) /\ is_sint32(n). + (* Heap *) + Type: (region(a.base) <= 0) /\ (region(b.base) <= 0). + (* Goal *) + When: (0 <= i_1) /\ (i_1 < i). + (* Pre-condition *) + Have: separated(a_1, x, shift_sint32(b, 0), x). + (* Invariant 'Range' *) + Have: 0 <= n. + (* Invariant 'Range' *) + Have: (0 <= i) /\ (i <= n). + (* Invariant 'Copy' *) + Have: forall i_2 : Z. ((0 <= i_2) -> ((i_2 < i) -> + (a_2[shift_sint32(b, i_2)] = a_2[shift_sint32(a, i_2)]))). + (* Then *) + Have: i < n. + (* Assertion 'A' *) + Have: forall i_2 : Z. let a_5 = shift_sint32(a, i_2) in ((0 <= i_2) -> + ((i_2 < i) -> (a_3[a_5] = a_2[a_5]))). +} +Prove: a_3[a_4] = a_2[a_4]. + +------------------------------------------------------------ + +Goal Loop assigns (file copy_array.c, line 12) (1/3): +Prove: true. + +------------------------------------------------------------ + +Goal Loop assigns (file copy_array.c, line 12) (2/3): +Effect at line 15 +Prove: true. + +------------------------------------------------------------ + +Goal Loop assigns (file copy_array.c, line 12) (3/3): +Effect at line 17 +Let a_1 = shift_sint32(a, 0). +Let a_2 = havoc(Msint32_undef_0, Msint32_0, a_1, n). +Let x = i - 1. +Let a_3 = shift_sint32(a, x). +Let a_4 = a_2[a_3 <- a_2[shift_sint32(b, x)]]. +Let x_1 = 4 * n. +Assume { + Type: is_sint32(i) /\ is_sint32(n) /\ is_sint32(x). + (* Heap *) + Type: (region(a.base) <= 0) /\ (region(b.base) <= 0) /\ linked(alloc_0). + (* Goal *) + When: !invalid(alloc_0[P_a_24 <- 8][P_b_25 <- 8], a_3, 4). + (* Pre-condition *) + Have: separated(a_1, x_1, shift_sint32(b, 0), x_1). + (* Invariant 'Range' *) + Have: 0 <= n. + (* Invariant 'Range' *) + Have: (0 < i) /\ (i <= (1 + n)). + (* Invariant 'Copy' *) + Have: forall i_1 : Z. ((0 <= i_1) -> (((2 + i_1) <= i) -> + (a_2[shift_sint32(b, i_1)] = a_2[shift_sint32(a, i_1)]))). + (* Then *) + Have: i <= n. + (* Assertion 'A' *) + Have: forall i_1 : Z. let a_5 = shift_sint32(a, i_1) in ((0 <= i_1) -> + (((2 + i_1) <= i) -> (a_4[a_5] = a_2[a_5]))). + (* Assertion 'B' *) + Have: forall i_1 : Z. let a_5 = shift_sint32(b, i_1) in ((0 <= i_1) -> + (((2 + i_1) <= i) -> (a_4[a_5] = a_2[a_5]))). + (* Invariant 'Copy' *) + Have: forall i_1 : Z. ((0 <= i_1) -> ((i_1 < i) -> + (a_4[shift_sint32(b, i_1)] = a_4[shift_sint32(a, i_1)]))). +} +Prove: included(a_3, 4, a_1, x_1). + +------------------------------------------------------------ + +Goal Assigns (file copy_array.c, line 5) in 'copy': +Effect at line 15 +Prove: true. + +------------------------------------------------------------ + +Goal Decreasing of Loop variant at loop (file copy_array.c, line 15): +Prove: true. + +------------------------------------------------------------ + +Goal Positivity of Loop variant at loop (file copy_array.c, line 15): +Prove: true. + +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle/union.res.oracle b/src/plugins/wp/tests/wp_region/oracle/union.res.oracle new file mode 100644 index 00000000000..87cfc66c455 --- /dev/null +++ b/src/plugins/wp/tests/wp_region/oracle/union.res.oracle @@ -0,0 +1,114 @@ +# frama-c -wp -wp-model 'Region' [...] +[kernel] Parsing union.i (no preprocessing) +[wp] Running WP plugin... +[wp] [Valid] Goal f_exits (Cfg) (Unreachable) +[wp] [Valid] Goal f_terminates (Cfg) (Trivial) +[wp] Warning: Missing RTE guards +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +------------------------------------------------------------ + Function f +------------------------------------------------------------ + +Goal Post-condition (file union.i, line 8) in 'f': +Let a = shiftfield_F1_U_i(p). +Let a_1 = shiftfield_F1_U_s(p). +Let m = write_sint16(write_sint16(write_sint32(mem_0, a, 42), + shift_sint16(a_1, 0), -1), shift_sint16(a_1, 1), -1). +Let x = read_sint32(write_sint32(m, a, 0), a). +Assume { + Type: is_sint32(x). + (* Heap *) + Type: (region(p.base) <= 0) /\ framed(mem_0) /\ sconst(mem_0). + (* Assertion *) + Have: read_sint32(m, a) = (-1). +} +Prove: x = 0. + +------------------------------------------------------------ + +Goal Assertion (file union.i, line 14): +Let a = shiftfield_F1_U_i(p). +Let a_1 = shiftfield_F1_U_s(p). +Let x = read_sint32(write_sint16(write_sint16(write_sint32(mem_0, a, 42), + shift_sint16(a_1, 0), -1), + shift_sint16(a_1, 1), -1), a). +Assume { + Type: is_sint32(x). + (* Heap *) + Type: (region(p.base) <= 0) /\ framed(mem_0) /\ sconst(mem_0). +} +Prove: x = (-1). + +------------------------------------------------------------ + +Goal Assigns (file union.i, line 7) in 'f' (1/4): +Effect at line 11 +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file union.i, line 7) in 'f' (2/4): +Effect at line 12 +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file union.i, line 7) in 'f' (3/4): +Effect at line 13 +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file union.i, line 7) in 'f' (4/4): +Effect at line 15 +Prove: true. + +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/array.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/array.res.oracle new file mode 100644 index 00000000000..132cfb8a7b3 --- /dev/null +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/array.res.oracle @@ -0,0 +1,384 @@ +# frama-c -wp -wp-model 'Region' [...] +[kernel] Parsing array.c (with preprocessing) +[wp] Running WP plugin... +[wp] [Valid] Goal add_first4_exits (Cfg) (Unreachable) +[wp] [Valid] Goal add_first4_terminates (Cfg) (Trivial) +[wp] Warning: Missing RTE guards +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[region] array.c:23: Warning: Annotations not analyzed +[region] array.c:24: Warning: Annotations not analyzed +[wp] 6 goals scheduled +[wp] [Valid] region_add_first4_ensures (Alt-Ergo) (Cached) +[wp] [Valid] region_add_first4_ensures_2 (Qed) +[wp] [Valid] region_add_first4_ensures_3 (Alt-Ergo) (Cached) +[wp] [Valid] region_add_first4_ensures_4 (Qed) +[wp] [Valid] region_add_first4_assert (Alt-Ergo) (Cached) +[wp] [Valid] region_add_first4_assert_2 (Qed) +[wp] Proved goals: 8 / 8 + Terminating: 1 + Unreachable: 1 + Qed: 3 + Alt-Ergo: 3 +------------------------------------------------------------ + Functions WP Alt-Ergo Total Success + add_first4 3 3 6 100% +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/copy_array.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/copy_array.res.oracle new file mode 100644 index 00000000000..7071946431d --- /dev/null +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/copy_array.res.oracle @@ -0,0 +1,320 @@ +# frama-c -wp -wp-model 'Region' [...] +[kernel] Parsing copy_array.c (with preprocessing) +[wp] Running WP plugin... +[wp] [Valid] Goal copy_exits (Cfg) (Unreachable) +[wp] [Valid] Goal copy_terminates (Cfg) (Trivial) +[wp] Warning: Missing RTE guards +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[region] copy_array.c:15: Warning: Annotations not analyzed +[region] copy_array.c:18: Warning: Annotations not analyzed +[region] copy_array.c:19: Warning: Annotations not analyzed +[wp] 13 goals scheduled +[wp] [Valid] region_copy_ensures (Alt-Ergo) (Cached) +[wp] [Valid] region_copy_loop_invariant_Copy_preserved (Alt-Ergo) (Cached) +[wp] [Valid] region_copy_loop_invariant_Copy_established (Qed) +[wp] [Valid] region_copy_loop_invariant_Range_preserved (Qed) +[wp] [Valid] region_copy_loop_invariant_Range_established (Qed) +[wp] [Valid] region_copy_assert_A (Alt-Ergo) (Cached) +[wp] [Valid] region_copy_assert_B (Alt-Ergo) (Cached) +[wp] [Valid] region_copy_loop_assigns_part1 (Qed) +[wp] [Valid] region_copy_loop_assigns_part2 (Qed) +[wp] [Valid] region_copy_loop_assigns_part3 (Alt-Ergo) (Cached) +[wp] [Valid] region_copy_assigns (Qed) +[wp] [Valid] region_copy_loop_variant_decrease (Qed) +[wp] [Valid] region_copy_loop_variant_positive (Qed) +[wp] Proved goals: 15 / 15 + Terminating: 1 + Unreachable: 1 + Qed: 8 + Alt-Ergo: 5 +------------------------------------------------------------ + Functions WP Alt-Ergo Total Success + copy 8 5 13 100% +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/union.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/union.res.oracle new file mode 100644 index 00000000000..40300a0021d --- /dev/null +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/union.res.oracle @@ -0,0 +1,71 @@ +# frama-c -wp -wp-model 'Region' [...] +[kernel] Parsing union.i (no preprocessing) +[wp] Running WP plugin... +[wp] [Valid] Goal f_exits (Cfg) (Unreachable) +[wp] [Valid] Goal f_terminates (Cfg) (Trivial) +[wp] Warning: Missing RTE guards +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[region] union.i:14: Warning: Annotations not analyzed +[wp] 6 goals scheduled +[wp] [Valid] region_f_ensures (Alt-Ergo) (Cached) +[wp] [Valid] region_f_assert (Alt-Ergo) (Cached) +[wp] [Valid] region_f_assigns_part1 (Qed) +[wp] [Valid] region_f_assigns_part2 (Qed) +[wp] [Valid] region_f_assigns_part3 (Qed) +[wp] [Valid] region_f_assigns_part4 (Qed) +[wp] Proved goals: 8 / 8 + Terminating: 1 + Unreachable: 1 + Qed: 4 + Alt-Ergo: 2 +------------------------------------------------------------ + Functions WP Alt-Ergo Total Success + f 4 2 6 100% +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/union.i b/src/plugins/wp/tests/wp_region/union.i new file mode 100644 index 00000000000..edc24141817 --- /dev/null +++ b/src/plugins/wp/tests/wp_region/union.i @@ -0,0 +1,16 @@ +union U { + short s[2]; + int i; +}; + +/*@ + assigns *p; + ensures p->i == 0; +@*/ +void f (union U *p) { + p->i = 42; + p->s[0] = -1; + p->s[1] = -1; + //@ assert p->i == -1; + (p->i)++; +} -- GitLab