Summary:public
Is seems that automatically inheriting annotations like `PerformanceCritical` or `NoAllocation` is the right thing to do in general. Otherwise, we need to enforce sub-typing rules which in the best case just adds a little bit of documentation, but could miss important issues when the code is not fully annotated. I am simplifying this part to avoid adding boilerplate code for the `NoAllocation` case.
Reviewed By: sblackshear
Differential Revision: D2938627
fb-gh-sync-id: ddb668b
shipit-source-id: ddb668b
Summary:public
This can avoid watchman to freeze or slow down the test. We don't need to Buck daemon anyway when running the test as setting up the configutation to run Infer as an external compiler invalidates the Buck in-memory data anyway.
Reviewed By: jberdine
Differential Revision: D2942424
fb-gh-sync-id: 38a39d7
shipit-source-id: 38a39d7
Summary:public
Type-based resolution of fields, constructors, etc. can be ambiguous if
types are not principal. Compile with -principal and enable warnings 18
and 19 to check these cases.
Reviewed By: jvillard
Differential Revision: D2938237
fb-gh-sync-id: bb4237b
shipit-source-id: bb4237b
Summary:
fixes#267.
By calling opam with the --shell=bash in the script I don't get the errors I had before.
The new line I added in the docker/README.md was so the list would display correctly when rendered.
Closes https://github.com/facebook/infer/pull/272
Reviewed By: jberdine
Differential Revision: D2916859
Pulled By: jvillard
fb-gh-sync-id: 4243f79
shipit-source-id: 4243f79
Summary:
public
This model does not seem to bring anything anymore. Useless because ...
Reviewed By: cristianoc
Differential Revision: D2920118
fb-gh-sync-id: 7f708d7
shipit-source-id: 7f708d7
Summary:
public
Avoid problems of overwriting good type information with incomplete information
when type declaration happens after its complete definition.
The solution is that we will only time we *update* type information is
when struct declaration has definition as well (which should happen once)
Reviewed By: cristianoc, sblackshear
Differential Revision: D2921811
fb-gh-sync-id: 16baba3
shipit-source-id: 16baba3
Summary:
public
Because we ran `./configure` *after* checking if clang was to be compiled, we
could fail mysteriously if `shasum` was not present. Now, we fail at the
`./configure` step with a clear error message.
closes#275
Reviewed By: akotulski
Differential Revision: D2921841
fb-gh-sync-id: b8edd8b
shipit-source-id: b8edd8b
Summary:
public
libtooling/build and clang-ocaml/build are already part of releases, don't rebuild them
closes#276
Reviewed By: jvillard
Differential Revision: D2921669
fb-gh-sync-id: bf88f8e
shipit-source-id: bf88f8e
Summary:
public
When this happen, we don't want to waste time compiling infer for java, etc.,
only to realise later that the submodule is not there.
Reviewed By: akotulski
Differential Revision: D2921636
fb-gh-sync-id: b22c44c
shipit-source-id: b22c44c
Summary:
An issue facebook/infer#270 suggest two docker build failure error.
facebok/infer#270 issues two docker build failure errors.
- failure in 'make -C infer clang java' : add './configure' before the command.
- failure in building sources : add 'opam switch 4.02.3' to use this syntax in ' cc4439938e/infer/src/clang/cLocation.ml (L76) '. In ubuntu, when 'apt-get install ocaml' ( cc4439938e/docker/Dockerfile (L20) ), for now, it installs ocaml 4.01, but this syntax does not work with ocaml 4.01.
Closes https://github.com/facebook/infer/pull/271
Reviewed By: jberdine
Differential Revision: D2916909
Pulled By: jvillard
fb-gh-sync-id: 3eba991
shipit-source-id: 3eba991
Summary:
public
The inductive list predicate was not firing during abstraction because of a type mismatch between C and Java. In Java, the second parameter of the `Sil.Sizeof` constructor is always `Sil.Subtype.exact` in C but is `Sil.Subtype.subtypes` in Java. This diff fixes the confution by comparing the `Sil` types only instead of the type expressions.
Reviewed By: jberdine
Differential Revision: D2912493
fb-gh-sync-id: 3f712a8
shipit-source-id: 3f712a8
Summary:
public
The analysis of the Buck project was failing because this script converts the aliases into their expanded target names. It turns out that for Buck, the name of the command is `buck` and the name of the alias is also `buck`, which led to conflicts. This is now fixed by only replacing the targets in the part of the command line that is after `build` in `buck build ...`
Reviewed By: sblackshear
Differential Revision: D2914446
fb-gh-sync-id: ddce4ed
shipit-source-id: ddce4ed
Summary:
public
The variable could be unitialized when the line number of an error is not in the base JSON report, which is currently the case for the errors in the test cases.
Reviewed By: jvillard
Differential Revision: D2913991
fb-gh-sync-id: d7e3857
shipit-source-id: d7e3857