Frama-C-discuss mailing list archives

This page gathers the archives of the old Frama-C-discuss archives, that was hosted by Inria's gforge before its demise at the end of 2020. To search for mails newer than September 2020, please visit the page of the new mailing list on Renater.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Frama-c-discuss] Meaning of "FROM \nothing" for function calls in -deps analysis?



Hi,

"assigns foo \from \nothing" means that foo has been assigned (otherwise it
would not present in the results), but the assigned value does not depend
on anything. The only possibility is that it has been assigned to something
constant.

Now, regarding e and b, the answer is a bit different. The dependencies we
would obtain by computing the results for main in two parts (before and
after c = 3) would be

Before:
  c FROM \nothing
After:
  b FROM c
  e FROM c

Now, let's combine the two. At the middle point, c itself (on whose b and e
depend) depends on nothing. We substitute those dependencies in the second
block, to obtain
  b FROM \nothing
  c FROM \nothing
  e FROM \nothing

You can obtain the "split" version I mentioned by cutting your function
main in two.

HTH,

On Fri, Aug 28, 2015 at 3:55 PM, David MENTRE <dmentre at linux-france.org>
wrote:

> Hello,
>
> Considering following code:
>
> """in_out.c"""
> int b, c, d, e;
>
> void double_assign(void)
> {
>   int x = d;
>   e = b;
>   e = c;
> }
>
> void loop_branch(int a)
> {
>   if (a)
>     b = c;
>   else
>     while (1)
>       d = e;
> }
>
> void main(int param)
> {
>   c = 3;
>   loop_branch(param);
>   double_assign();
> }
> """
>
> "frama-c -deps in_out.c" produces:
> """
> [from] Function double_assign:
>   e FROM c
> [from] Function loop_branch:
>   b FROM c
> [from] Function main:
>   b FROM \nothing
>   c FROM \nothing
>   e FROM \nothing
> """
>
> For main(), why -deps gives "b FROM \nothing" and "e FROM \nothing"? I
> would have expected "e FROM c" and "b FROM c" due to calls to loop_branch()
> and double_assign() and corresponding -deps analysis of those functions.
>
> I found no explanation in §6.1 of Value analysis manual or in whole
> chapter 6.
>
> I also tried various options from the "from" plug-in without success.
>
> Best regards,
> david
> _______________________________________________
> Frama-c-discuss mailing list
> Frama-c-discuss at lists.gforge.inria.fr
> http://lists.gforge.inria.fr/mailman/listinfo/frama-c-discuss




-- 
Boris
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gforge.inria.fr/pipermail/frama-c-discuss/attachments/20150828/8421a17c/attachment-0001.html>