Skip to content
Snippets Groups Projects
Commit 13793179 authored by Patrick Baudin's avatar Patrick Baudin
Browse files

[cst folding] required by dune tests

parent d1b9cd87
No related branches found
No related tags found
No related merge requests found
/* run.config /* run.config
STDOPT: +"-eva" STDOPT: #"-eva"
*/ */
void *p; void *p;
......
/* run.config /* run.config
STDOPT: +"-eva" STDOPT: #"-eva"
*/ */
struct S { struct S {
......
/* run.config /* run.config
PLUGIN:
OPT: -constfold -print -machdep x86_32 OPT: -constfold -print -machdep x86_32
*/ */
#include <stddef.h> #include <stddef.h>
typedef const size_t const_size_t; typedef const size_t const_size_t;
......
/* run.config /* run.config
PLUGIN: @CONSTANT_PROPAGATION_PLUGINS@ from inout OPT: -eva @EVA_OPTIONS@ -deps -out -input -then -scf
OPT: -eva @EVA_OPTIONS@ -deps -out -input -scf
OPT: -scf @EVA_OPTIONS@ -main init -cast-from-constant -semantic-const-fold add3 OPT: -scf @EVA_OPTIONS@ -main init -cast-from-constant -semantic-const-fold add3
*/ */
int x,y,z, TAB[10]; int x,y,z, TAB[10];
struct st { int a, b ; } s1, s2; struct st { int a, b ; } s1, s2;
typedef struct st ST ; typedef struct st ST ;
......
/* run.config /* run.config
OPT: -eva @EVA_OPTIONS@ -scf OPT: -eva @EVA_OPTIONS@ -then -scf
*/ */
void f(int *x) { (*x)++; } void f(int *x) { (*x)++; }
......
/* run.config /* run.config
MODULE: @PTEST_NAME@ MODULE: @PTEST_NAME@
OPT: -eva @EVA_OPTIONS@ -deps OPT: -eva @EVA_OPTIONS@ -deps
*/ */
int x,y,z; int x,y,z;
int TAB[10]; int TAB[10];
struct st { int a, b ; } s1, s2; struct st { int a, b ; } s1, s2;
......
...@@ -128,6 +128,107 @@ ...@@ -128,6 +128,107 @@
p ∈ {{ &x }} p ∈ {{ &x }}
q ∈ {{ &x ; &y }} q ∈ {{ &x ; &y }}
yy ∈ {7} yy ∈ {7}
[from] Computing for function add3
[from] Done for function add3
[from] Computing for function init
[from] Done for function init
[from] Computing for function test_float_double
[from] Done for function test_float_double
[from] Computing for function test_ptr
[from] Done for function test_ptr
[from] Computing for function test_struct
[from] Done for function test_struct
[from] Computing for function test_struct_ptr
[from] Done for function test_struct_ptr
[from] Computing for function test_tab
[from] Done for function test_tab
[from] Computing for function test_ull
[from] Done for function test_ull
[from] Computing for function main
[from] Done for function main
[from] ====== DEPENDENCIES COMPUTED ======
These dependencies hold at termination for the executions that terminate:
[from] Function add3:
\result FROM v1; v2; v3
[from] Function init:
x FROM v
y FROM \nothing
z FROM v
\result FROM \nothing
[from] Function test_float_double:
f1 FROM f0
f2 FROM f0
f3 FROM f0
d1 FROM d0
d2 FROM d0
d3 FROM d0
[from] Function test_ptr:
x FROM v
\result FROM \nothing
[from] Function test_struct:
s1 FROM \nothing
s2 FROM \nothing
[from] Function test_struct_ptr:
\result FROM \nothing
[from] Function test_tab:
TAB[1] FROM TAB[2]; s1.b; s2.b
[4..5] FROM v
s2.b FROM s2.b
[from] Function test_ull:
ull FROM ull
[from] Function main:
x FROM \nothing
y FROM \nothing
z FROM a
TAB[1] FROM TAB[2]
[4..5] FROM \nothing
s1 FROM \nothing
s2 FROM \nothing
ull FROM ull
f1 FROM f0
f2 FROM f0
f3 FROM f0
d1 FROM d0
d2 FROM d0
d3 FROM d0
[from] ====== END OF DEPENDENCIES ======
[inout] Out (internal) for function add3:
__retres
[inout] Inputs for function add3:
\nothing
[inout] Out (internal) for function init:
x; y; z; zero; sept; z1
[inout] Inputs for function init:
x; y; z
[inout] Out (internal) for function test_float_double:
f1; f2; f3; d1; d2; d3
[inout] Inputs for function test_float_double:
f0; f1; f2; d0; d1; d2
[inout] Out (internal) for function test_ptr:
x; p; s; decal; __retres
[inout] Inputs for function test_ptr:
\nothing
[inout] Out (internal) for function test_struct:
s1; s2; s
[inout] Inputs for function test_struct:
s1.a
[inout] Out (internal) for function test_struct_ptr:
q; __retres
[inout] Inputs for function test_struct_ptr:
\nothing
[inout] Out (internal) for function test_tab:
TAB{[1]; [4..5]}; s2.b; r; q; decal
[inout] Inputs for function test_tab:
TAB[2]; s1.b; s2.b
[inout] Out (internal) for function test_ull:
ull
[inout] Inputs for function test_ull:
ull
[inout] Out (internal) for function main:
x; y; z; TAB{[1]; [4..5]}; s1; s2; ull; f1; f2; f3; d1; d2; d3; b;
p; q; tmp_1; yy
[inout] Inputs for function main:
x; y; z; TAB[2]; s1; s2.b; ull; f0; f1; f2; d0; d1; d2
[scf] beginning constant propagation [scf] beginning constant propagation
/* Generated by Frama-C */ /* Generated by Frama-C */
struct st { struct st {
...@@ -257,104 +358,3 @@ void main(int a) ...@@ -257,104 +358,3 @@ void main(int a)
[scf] constant propagation done [scf] constant propagation done
[from] Computing for function add3
[from] Done for function add3
[from] Computing for function init
[from] Done for function init
[from] Computing for function test_float_double
[from] Done for function test_float_double
[from] Computing for function test_ptr
[from] Done for function test_ptr
[from] Computing for function test_struct
[from] Done for function test_struct
[from] Computing for function test_struct_ptr
[from] Done for function test_struct_ptr
[from] Computing for function test_tab
[from] Done for function test_tab
[from] Computing for function test_ull
[from] Done for function test_ull
[from] Computing for function main
[from] Done for function main
[from] ====== DEPENDENCIES COMPUTED ======
These dependencies hold at termination for the executions that terminate:
[from] Function add3:
\result FROM v1; v2; v3
[from] Function init:
x FROM v
y FROM \nothing
z FROM v
\result FROM \nothing
[from] Function test_float_double:
f1 FROM f0
f2 FROM f0
f3 FROM f0
d1 FROM d0
d2 FROM d0
d3 FROM d0
[from] Function test_ptr:
x FROM v
\result FROM \nothing
[from] Function test_struct:
s1 FROM \nothing
s2 FROM \nothing
[from] Function test_struct_ptr:
\result FROM \nothing
[from] Function test_tab:
TAB[1] FROM TAB[2]; s1.b; s2.b
[4..5] FROM v
s2.b FROM s2.b
[from] Function test_ull:
ull FROM ull
[from] Function main:
x FROM \nothing
y FROM \nothing
z FROM a
TAB[1] FROM TAB[2]
[4..5] FROM \nothing
s1 FROM \nothing
s2 FROM \nothing
ull FROM ull
f1 FROM f0
f2 FROM f0
f3 FROM f0
d1 FROM d0
d2 FROM d0
d3 FROM d0
[from] ====== END OF DEPENDENCIES ======
[inout] Out (internal) for function add3:
__retres
[inout] Inputs for function add3:
\nothing
[inout] Out (internal) for function init:
x; y; z; zero; sept; z1
[inout] Inputs for function init:
x; y; z
[inout] Out (internal) for function test_float_double:
f1; f2; f3; d1; d2; d3
[inout] Inputs for function test_float_double:
f0; f1; f2; d0; d1; d2
[inout] Out (internal) for function test_ptr:
x; p; s; decal; __retres
[inout] Inputs for function test_ptr:
\nothing
[inout] Out (internal) for function test_struct:
s1; s2; s
[inout] Inputs for function test_struct:
s1.a
[inout] Out (internal) for function test_struct_ptr:
q; __retres
[inout] Inputs for function test_struct_ptr:
\nothing
[inout] Out (internal) for function test_tab:
TAB{[1]; [4..5]}; s2.b; r; q; decal
[inout] Inputs for function test_tab:
TAB[2]; s1.b; s2.b
[inout] Out (internal) for function test_ull:
ull
[inout] Inputs for function test_ull:
ull
[inout] Out (internal) for function main:
x; y; z; TAB{[1]; [4..5]}; s1; s2; ull; f1; f2; f3; d1; d2; d3; b;
p; q; tmp_1; yy
[inout] Inputs for function main:
x; y; z; TAB[2]; s1; s2.b; ull; f0; f1; f2; d0; d1; d2
...@@ -11,41 +11,41 @@ ...@@ -11,41 +11,41 @@
s2 ∈ {0} s2 ∈ {0}
ull ∈ {0} ull ∈ {0}
[eva] computing for function test_ull <- main. [eva] computing for function test_ull <- main.
Called from introduction_of_non_explicit_cast.c:68. Called from introduction_of_non_explicit_cast.c:69.
[eva] Recording results for test_ull [eva] Recording results for test_ull
[eva] Done for function test_ull [eva] Done for function test_ull
[eva] computing for function test_struct <- main. [eva] computing for function test_struct <- main.
Called from introduction_of_non_explicit_cast.c:69. Called from introduction_of_non_explicit_cast.c:70.
[eva] Recording results for test_struct [eva] Recording results for test_struct
[eva] Done for function test_struct [eva] Done for function test_struct
[eva] computing for function test_struct_ptr <- main. [eva] computing for function test_struct_ptr <- main.
Called from introduction_of_non_explicit_cast.c:70. Called from introduction_of_non_explicit_cast.c:71.
[eva] Recording results for test_struct_ptr [eva] Recording results for test_struct_ptr
[eva] Done for function test_struct_ptr [eva] Done for function test_struct_ptr
[eva] computing for function test_tab <- main. [eva] computing for function test_tab <- main.
Called from introduction_of_non_explicit_cast.c:71. Called from introduction_of_non_explicit_cast.c:72.
[eva] Recording results for test_tab [eva] Recording results for test_tab
[eva] Done for function test_tab [eva] Done for function test_tab
[eva] computing for function init <- main. [eva] computing for function init <- main.
Called from introduction_of_non_explicit_cast.c:73. Called from introduction_of_non_explicit_cast.c:74.
[eva] computing for function add3 <- init <- main. [eva] computing for function add3 <- init <- main.
Called from introduction_of_non_explicit_cast.c:57. Called from introduction_of_non_explicit_cast.c:58.
[eva] Recording results for add3 [eva] Recording results for add3
[eva] Done for function add3 [eva] Done for function add3
[eva] Recording results for init [eva] Recording results for init
[eva] Done for function init [eva] Done for function init
[eva] computing for function add3 <- main. [eva] computing for function add3 <- main.
Called from introduction_of_non_explicit_cast.c:74. Called from introduction_of_non_explicit_cast.c:75.
[eva] Recording results for add3 [eva] Recording results for add3
[eva] Done for function add3 [eva] Done for function add3
[eva] computing for function test_ptr <- main. [eva] computing for function test_ptr <- main.
Called from introduction_of_non_explicit_cast.c:76. Called from introduction_of_non_explicit_cast.c:77.
[eva] Recording results for test_ptr [eva] Recording results for test_ptr
[eva] Done for function test_ptr [eva] Done for function test_ptr
[eva] introduction_of_non_explicit_cast.c:77: assertion got status valid. [eva] introduction_of_non_explicit_cast.c:78: assertion got status valid.
[eva:alarm] introduction_of_non_explicit_cast.c:80: Warning: [eva:alarm] introduction_of_non_explicit_cast.c:81: Warning:
assertion got status unknown. assertion got status unknown.
[eva] introduction_of_non_explicit_cast.c:81: assertion got status valid. [eva] introduction_of_non_explicit_cast.c:82: assertion got status valid.
[eva] Recording results for main [eva] Recording results for main
[eva] done for function main [eva] done for function main
[eva] ====== VALUES COMPUTED ====== [eva] ====== VALUES COMPUTED ======
......
/* run.config /* run.config
STDOPT: +"-eva" STDOPT: #"-eva"
*/ */
struct st { struct st {
......
MACRO: CONSTANT_PROPAGATION_PLUGINS constant_propagation eva,scope MACRO: CONSTANT_PROPAGATION_PLUGINS constant_propagation @EVA_MAIN_PLUGINS@ from,inout
PLUGIN: @CONSTANT_PROPAGATION_PLUGINS@ PLUGIN: @CONSTANT_PROPAGATION_PLUGINS@
OPT: -journal-disable -scf @EVA_OPTIONS@ -machdep x86_32 OPT: @EVA_OPTIONS@ -machdep x86_32 -then -scf
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment