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?
- Subject: [Frama-c-discuss] Meaning of "FROM \nothing" for function calls in -deps analysis?
- From: boris at yakobowski.org (Boris Yakobowski)
- Date: Fri, 28 Aug 2015 16:19:36 +0200
- In-reply-to: <55E06838.2010902@linux-france.org>
- References: <55E06838.2010902@linux-france.org>
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>
- References:
- [Frama-c-discuss] Meaning of "FROM \nothing" for function calls in -deps analysis?
- From: dmentre at linux-france.org (David MENTRE)
- [Frama-c-discuss] Meaning of "FROM \nothing" for function calls in -deps analysis?
- Prev by Date: [Frama-c-discuss] Meaning of "FROM \nothing" for function calls in -deps analysis?
- Next by Date: [Frama-c-discuss] Meaning of "FROM \nothing" for function calls in -deps analysis?
- Previous by thread: [Frama-c-discuss] Meaning of "FROM \nothing" for function calls in -deps analysis?
- Index(es):