From 65622cdc0f30b4b002033d72945581492dad43b2 Mon Sep 17 00:00:00 2001
From: Virgile Prevosto <virgile.prevosto@cea.fr>
Date: Thu, 26 Sep 2024 18:21:54 +0200
Subject: [PATCH] [inline-contracts] AST is growing, not completely changing

---
 .../inline_stmt_contracts.ml                    |  2 +-
 tests/misc/oracle/asm_initialized.res.oracle    | 17 +++++++++++++----
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/src/kernel_services/ast_transformations/inline_stmt_contracts.ml b/src/kernel_services/ast_transformations/inline_stmt_contracts.ml
index aa0b2711ac..710fe10513 100644
--- a/src/kernel_services/ast_transformations/inline_stmt_contracts.ml
+++ b/src/kernel_services/ast_transformations/inline_stmt_contracts.ml
@@ -125,7 +125,7 @@ class inline_stmt_contract =
            let b = Cil.mkBlockNonScoping [s; nop] in
            let b = Cil.transient_block b in
            let res = Cil.mkStmt ~valid_sid:true (Block b) in
-           Ast.mark_as_changed ();
+           Ast.mark_as_grown ();
            File.must_recompute_cfg (Option.get self#current_func);
            ChangeTo res
         )
diff --git a/tests/misc/oracle/asm_initialized.res.oracle b/tests/misc/oracle/asm_initialized.res.oracle
index 2c96f18db6..8a5b5eb3b7 100644
--- a/tests/misc/oracle/asm_initialized.res.oracle
+++ b/tests/misc/oracle/asm_initialized.res.oracle
@@ -52,20 +52,29 @@ int main(void)
 --- Properties of Function 'main'
 --------------------------------------------------------------------------------
 
-[    -    ] Assertion 'inline_stmt_contract' (file asm_initialized.i, line 9)
-            tried with Eva.
+[  Valid  ] Post-condition (file asm_initialized.i, line 9) at assembly (file asm_initialized.i, line 9)
+            by asm_contracts.
+[  Valid  ] Assigns (file asm_initialized.i, line 9) at assembly (file asm_initialized.i, line 9)
+            by asm_contracts.
+[  Valid  ] Assertion 'inline_stmt_contract' (file asm_initialized.i, line 9)
+            by inline_stmt_contract.
 [    -    ] Assertion 'Eva,mem_access' (file asm_initialized.i, line 10)
             tried with Eva.
 [  Alarm  ] Assertion 'Eva,initialization' (file asm_initialized.i, line 11)
             By Eva, with pending:
              - Unreachable return (file asm_initialized.i, line 11)
+[  Valid  ] Froms (file asm_initialized.i, line 9) at assembly (file asm_initialized.i, line 9)
+            by asm_contracts.
+[  Valid  ] Default behavior at assembly (file asm_initialized.i, line 9)
+            by Frama-C kernel.
 
 --------------------------------------------------------------------------------
 --- Status Report Summary
 --------------------------------------------------------------------------------
-     2 To be validated
+     5 Completely validated
+     1 To be validated
      1 Alarm emitted
-     3 Total
+     7 Total
 --------------------------------------------------------------------------------
 /* Generated by Frama-C */
 int main(void)
-- 
GitLab