Benjamin Kramer
756ecb8e44
Make some helper functions static. NFC.
...
llvm-svn: 353705
2019-02-11 14:52:15 +00:00
George Karpenkov
77eae6d4c4
[analyzer] [RetainCountChecker] Bugfix for tracking top-level parameters of Objective-C methods
...
Differential Revision: https://reviews.llvm.org/D57433
llvm-svn: 352588
2019-01-30 02:11:04 +00:00
George Karpenkov
d37ff4e888
[analyzer] [RetainCountChecker] Track input parameters to the top-level function
...
Track them for ISL/OS objects by default, and for NS/CF under a flag.
rdar://47536377
Differential Revision: https://reviews.llvm.org/D57356
llvm-svn: 352534
2019-01-29 19:29:59 +00:00
George Karpenkov
a9e295604a
[analyzer] Insert notes in RetainCountChecker where our dynamic cast modeling assumes 'null' output
...
rdar://47397214
Differential Revision: https://reviews.llvm.org/D56952
llvm-svn: 351865
2019-01-22 19:51:00 +00:00
Chandler Carruth
2946cd7010
Update the file headers across all of the LLVM projects in the monorepo
...
to reflect the new license.
We understand that people may be surprised that we're moving the header
entirely to discuss the new license. We checked this carefully with the
Foundation's lawyer and we believe this is the correct approach.
Essentially, all code in the project is now made available by the LLVM
project under our new license, so you will see that the license headers
include that license only. Some of our contributors have contributed
code under our old license, and accordingly, we have retained a copy of
our old license notice in the top-level files in each project and
repository.
llvm-svn: 351636
2019-01-19 08:50:56 +00:00
Simon Pilgrim
c636806297
Fix MSVC "not all control paths return a value" warning. NFCI.
...
llvm-svn: 351588
2019-01-18 20:40:35 +00:00
George Karpenkov
2c2d0b6e97
Revert "Fix failing MSan bots"
...
This reverts commit 2cedaaef383d8d6142046074ffebc2bb5a914778.
Revert with a fix.
llvm-svn: 351575
2019-01-18 19:24:55 +00:00
Vlad Tsyrklevich
d5dd6a5fdd
Fix failing MSan bots
...
Revert r351508-351514, this block of changes introduced a consistent
MSan failure on the sanitizer bots.
llvm-svn: 351528
2019-01-18 08:43:22 +00:00
George Karpenkov
1a5ce51626
[analyzer] Introduce proper diagnostic for freeing unowned object
...
Insert a note when the object becomes not (exclusively) owned.
Differential Revision: https://reviews.llvm.org/D56891
llvm-svn: 351514
2019-01-18 03:13:53 +00:00
George Karpenkov
e880840d8c
[analyzer] Extend the PathDiagnosticLocation constructor to handle CallExitEnd
...
Differential Revision: https://reviews.llvm.org/D56890
llvm-svn: 351513
2019-01-18 03:13:40 +00:00
George Karpenkov
9bf9938492
[analyzer] [NFC] Clean up messy handling of bug categories in RetainCountChecker
...
https://reviews.llvm.org/D56887
llvm-svn: 351512
2019-01-18 03:13:27 +00:00
George Karpenkov
a2280e0c93
[analyzer] [RetainCountChecker] Produce a correct message when OSTypeAlloc is used
...
Differential Revision: https://reviews.llvm.org/D56820
llvm-svn: 351509
2019-01-18 03:12:48 +00:00
George Karpenkov
5be959c88e
[analyzer] Support for OSObjects out parameters in RetainCountChecker
...
rdar://46357478
rdar://47121327
Differential Revision: https://reviews.llvm.org/D56240
llvm-svn: 350982
2019-01-11 23:35:17 +00:00
George Karpenkov
3c1e066dca
[analyzer] [hotfix] Fix the tests
...
The error must have crept during the cherry-pick.
llvm-svn: 350870
2019-01-10 18:28:10 +00:00
George Karpenkov
0bb17c4634
[analyzer] Update the category name for RetainCountChecker reports
...
..now that it includes OSObjects
rdar://46509986
Differential Revision: https://reviews.llvm.org/D56404
llvm-svn: 350869
2019-01-10 18:16:25 +00:00
George Karpenkov
4f64b38f56
[analyzer] Quote the type of the leaked/problematic object in diagnostics for readability
...
Differential Revision: https://reviews.llvm.org/D56344
llvm-svn: 350867
2019-01-10 18:15:57 +00:00
George Karpenkov
717c4c0e2b
[analyzer] [RetainCountChecker] [NFC] Remove SummaryLog
...
The complicated machinery for passing the summary log around is actually
only used for one thing! To figure out whether the "dealloc" message was
sent.
Since I have tried to extend it for other uses and failed (it's actually
very hard to use), I think it's much better to simply use a tag and
remove the summary log altogether.
Differential Revision: https://reviews.llvm.org/D56228
llvm-svn: 350864
2019-01-10 18:15:17 +00:00
George Karpenkov
585a210e5f
[analyzer] [NFC] Track object type with ArgEffect in RetainCountChecker.
...
This would be needed in the future.
https://reviews.llvm.org/D56040
llvm-svn: 350858
2019-01-10 18:13:59 +00:00
George Karpenkov
7e3016dec4
[analyzer] [NFC] Move ObjKind into a separate top-level enum in RetainSummaryManager.
...
Allows using it in future outside of RetEffect.
Differential Revision: https://reviews.llvm.org/D56039
llvm-svn: 350857
2019-01-10 18:13:46 +00:00
George Karpenkov
79f0340c53
[analyzer] Correct the summary violation diagnostics for the retain count checker
...
It should be in the past tense.
llvm-svn: 349938
2018-12-21 19:13:28 +00:00
George Karpenkov
f508532627
[analyzer] Fix a bug in RetainCountDiagnostics while printing a note on mismatched summary in inlined functions
...
Previously, we were not printing a note at all if at least one of the parameters was not annotated.
rdar://46888422
Differential Revision: https://reviews.llvm.org/D55972
llvm-svn: 349875
2018-12-21 02:16:23 +00:00
George Karpenkov
ff01486753
[analyzer] Display a diagnostics when an inlined function violates its os_consumed summary
...
This is currently a diagnostics, but might be upgraded to an error in the future,
especially if we introduce os_return_on_success attributes.
rdar://46359592
Differential Revision: https://reviews.llvm.org/D55530
llvm-svn: 348820
2018-12-11 01:13:40 +00:00
George Karpenkov
79ed11c12e
[analyzer] Resolve another bug where the name of the leaked object was not printed properly
...
Differential Revision: https://reviews.llvm.org/D55528
llvm-svn: 348819
2018-12-11 01:13:20 +00:00
Raphael Isemann
b23ccecbb0
Misc typos fixes in ./lib folder
...
Summary: Found via `codespell -q 3 -I ../clang-whitelist.txt -L uint,importd,crasher,gonna,cant,ue,ons,orign,ned`
Reviewers: teemperor
Reviewed By: teemperor
Subscribers: teemperor, jholewinski, jvesely, nhaehnle, whisperity, jfb, cfe-commits
Differential Revision: https://reviews.llvm.org/D55475
llvm-svn: 348755
2018-12-10 12:37:46 +00:00
George Karpenkov
936a9c978c
[analyzer] RetainCountChecker: remove untested, unused, incorrect option IncludeAllocationLine
...
The option has no tests, is not used anywhere, and is actually
incorrect: it prints the line number without the reference to a file,
which can be outright incorrect.
Differential Revision: https://reviews.llvm.org/D55385
llvm-svn: 348637
2018-12-07 20:21:37 +00:00
Mikael Holmen
ebf787b138
Fix warning about unused variable [NFC]
...
llvm-svn: 347987
2018-11-30 13:38:33 +00:00
Haojian Wu
ceff730fef
Fix a use-after-scope bug.
...
llvm-svn: 347970
2018-11-30 09:23:01 +00:00
George Karpenkov
2bd644ebbd
[analyzer] RetainCountChecker: recognize that OSObject can be created directly using an operator "new"
...
Differential Revision: https://reviews.llvm.org/D55076
llvm-svn: 347949
2018-11-30 02:19:03 +00:00
George Karpenkov
b43772d85c
[analyzer] Switch retain count checker for OSObject to use OS_* attributes
...
Instead of generalized reference counting annotations.
Differential Revision: https://reviews.llvm.org/D55041
llvm-svn: 347948
2018-11-30 02:18:50 +00:00
George Karpenkov
62db886062
[analyzer] [NFC] Minor refactoring of RetainCountDiagnostics
...
Move visitors to the implementation file, move a complicated logic into
a function.
Differential Revision: https://reviews.llvm.org/D55036
llvm-svn: 347946
2018-11-30 02:18:23 +00:00
George Karpenkov
e2f09542a5
[analyzer] Print a fully qualified name for functions in RetainCountChecker diagnostics
...
Attempt to get a fully qualified name from AST if an SVal corresponding
to the object is not available.
Differential Revision: https://reviews.llvm.org/D55034
llvm-svn: 347944
2018-11-30 02:17:57 +00:00
George Karpenkov
f893ea1592
[analyzer] Add the type of the leaked object to the diagnostic message
...
If the object is a temporary, and there is no variable it binds to,
let's at least print out the object name in order to help differentiate
it from other temporaries.
rdar://45175098
Differential Revision: https://reviews.llvm.org/D55033
llvm-svn: 347943
2018-11-30 02:17:44 +00:00
George Karpenkov
a1c3bb88ee
[analyzer] Reference leaked object by name, even if it was created in an inlined function.
...
rdar://45532181
Differential Revision: https://reviews.llvm.org/D54973
llvm-svn: 347942
2018-11-30 02:17:31 +00:00
George Karpenkov
b3303d7c1d
[analyzer] [NFC] Some miscellaneous clean ups and documentation fixes.
...
Differential Revision: https://reviews.llvm.org/D54971
llvm-svn: 347940
2018-11-30 02:17:05 +00:00
George Karpenkov
c82d457db5
[analyzer] [NFC] Remove unused parameters, as found by -Wunused-parameter
...
Differential Revision: https://reviews.llvm.org/D52640
llvm-svn: 343353
2018-09-28 18:49:41 +00:00
George Karpenkov
ab0011ebc0
[analyzer] Preliminary version of retain count checking for OSObjects
...
Has quite a lot of false positives, disabled behind the flag.
Differential Revision: https://reviews.llvm.org/D50880
llvm-svn: 340502
2018-08-23 00:26:59 +00:00
George Karpenkov
6e9fd1377d
[analyzer] [NFC] Fix minor formatting issues in RetainCountChecker
...
Differential Revision: https://reviews.llvm.org/D51072
llvm-svn: 340378
2018-08-22 01:17:09 +00:00
George Karpenkov
70c2ee30bc
[analyzer] [NFC] Split up RetainCountChecker
...
At some point, staring at 4k+ LOC file becomes a bit hard.
Differential Revision: https://reviews.llvm.org/D50821
llvm-svn: 340092
2018-08-17 21:41:07 +00:00