Skip to content

Conversation

@michael-schwarz
Copy link
Member

This is work by our student @faddeenkov which she undertook as part of her BA thesis.

The idea is to maintain a mapping between the original name a variable had in the C program and the name it has after the alpha-conversion performed by CIL.
This also adds a list of all CIL variables that are temporary variables created by CIL. Until now, there was no reliable way to see if a variable is a temporary CIL variable or not (at least as far as I am aware).

This seems relevant in quite a number of places:

  • It is one of the prerequisites for merging the rest of the work for that thesis and Semantic Search analyzer#112 into Goblint (semantic search)
  • It might be interesting to have this available for the HTML output
  • This information might be helpful for generating witnesses (CC: @sim642)

@sim642
Copy link
Member

sim642 commented Oct 16, 2020

Indeed, this would be good information to have for witness generation to make sure invariants only contain actual program variables and not CIL temporaries. Right now I have an ugly name-based heuristic for that:
https://github.com/goblint/analyzer/blob/a32a031712ca481fea1165e29f482ff782f40b27/src/domains/invariantCil.ml.

@michael-schwarz
Copy link
Member Author

The CI status here on Github is not updated for some reason, both builds did in fact pass: https://travis-ci.com/github/goblint/cil/builds/190417919

@michael-schwarz michael-schwarz merged commit 5c9b708 into goblint:develop Oct 19, 2020
sim642 added a commit to goblint/analyzer that referenced this pull request Oct 26, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants