Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix #47
The
.expfiles are updated to reflect the expected dissociation and new tests are added to witness details of the optional arguments reporting semantics (see #47).The invalid results were due to an inconsistency between sourcepaths built from
cmt_infos.cmt_sourcefileand filenames found in the typedtrees' locations. The former could contain a.ppextension, unlike the latter. The.ppwas already removed from compilation units for consistency (f090928).Because of this inconsistency,
DeadCommon.VdNode.eofwould not be able to discard opt args "internal" declarations and, thus, dissociate them from their corresponding "external" declarations. Therefore, the internal and external uses of a value were all linked to the internal declaration, and the reports reflected this.Removing
.ppdirectly from the sourcepath rather than on compilation units fixes the inconsistency and ensures that it is mechanically absent from compilation units.This change improves the performance on Frama-C 31.0. I measured a gain of ~10s (from ~22s to ~12s) when running the analyzer with
-v --allon my machine, without any noticeable impact on memory consumption.The change in results only affects the optional arguments reports. I reviewed 25% of it in-depth and another 25% quickly to confirm the update works as expected and only brings fixes.