Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
meta
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Container Registry
Model registry
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
pub
meta
Commits
49546a62
Commit
49546a62
authored
1 year ago
by
Virgile Prevosto
Browse files
Options
Downloads
Patches
Plain Diff
Add \lhost_read and \lhost_written to the documentation
parent
fdbc3a7d
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
README.md
+9
-4
9 additions, 4 deletions
README.md
with
9 additions
and
4 deletions
README.md
+
9
−
4
View file @
49546a62
...
@@ -132,16 +132,21 @@ hold. It can be one of the following :
...
@@ -132,16 +132,21 @@ hold. It can be one of the following :
`meta lenient`
to its contract, in case the invariant needs to be locally
`meta lenient`
to its contract, in case the invariant needs to be locally
broken.
broken.
-
`\writing`
:
`P`
is to be valid each time the memory is written to in the body
-
`\writing`
:
`P`
is to be valid each time the memory is written to in the body
of the target function. In this context,
`P`
can use the
`\written`
of the target function. In this context,
`P`
can use the following metavariables:
meta-variable, which is the address of the location (or set of locations) being modified.
-
`\written`
, which is the address of the location (or set of locations) being modified;
+
By default, if
`f`
calls
`g`
and
`g`
has no definition, every state
-
`\lhost_written`
, which is the address of the base object (i.e with fields and array
indices removed) of the location(s) being modified.
Prototypes without a definition lead to a special treatment:
+
By default, if
`f`
calls
`g`
and
`g`
has no definition, every state
modification that could happen in
`g`
(according to its
`assigns`
modification that could happen in
`g`
(according to its
`assigns`
specification) is considered by being
**
equivalent to assignements in the
specification) is considered by being
**
equivalent to assignements in the
body of
`f`
**
and thus will be checked.
body of
`f`
**
and thus will be checked.
+
In that case, if
`g`
does not specify a memory footprint, it is
**assumed**
that it
+
In that case, if
`g`
does not specify a memory footprint, it is
**assumed**
that it
respects all related meta-properties.
respects all related meta-properties.
+
This can be disabled with option
`-meta-no-check-ext`
+
This can be disabled with option
`-meta-no-check-ext`
-
`\reading`
: symmetrical to
`\writing`
.
`P`
can use the
`\read`
variable.
-
`\reading`
: symmetrical to
`\writing`
.
`P`
can use the
`\read`
and
`\lhost_read`
meta-variables.
+
Undefined callees are checked using their
`\from`
specification if existing.
+
Undefined callees are checked using their
`\from`
specification if existing.
-
`\calling`
: the property must hold at each function call and can refer to the
-
`\calling`
: the property must hold at each function call and can refer to the
`\called`
variable.
`\called`
variable.
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment