r369020 - Test commit #2.

2019-08-15 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Aug 15 10:17:21 2019 New Revision: 369020 URL: http://llvm.org/viewvc/llvm-project?rev=369020=rev Log: Test commit #2. Modified: cfe/trunk/www/index.html Modified: cfe/trunk/www/index.html URL:

r353566 - [analyzer] Opt-in C Style Cast Checker for OSObject pointers

2019-02-08 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Feb 8 13:09:00 2019 New Revision: 353566 URL: http://llvm.org/viewvc/llvm-project?rev=353566=rev Log: [analyzer] Opt-in C Style Cast Checker for OSObject pointers Differential Revision: https://reviews.llvm.org/D57261 Added:

r353229 - [analyzer] Document RetainCountChecker behavior and annotations

2019-02-05 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Tue Feb 5 14:27:10 2019 New Revision: 353229 URL: http://llvm.org/viewvc/llvm-project?rev=353229=rev Log: [analyzer] Document RetainCountChecker behavior and annotations Differential Revision: https://reviews.llvm.org/D57721 Modified:

r353227 - [analyzer] [RetainCountChecker] Bugfix: in non-OSObject-mode, do not track CXX method calls

2019-02-05 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Tue Feb 5 14:26:44 2019 New Revision: 353227 URL: http://llvm.org/viewvc/llvm-project?rev=353227=rev Log: [analyzer] [RetainCountChecker] Bugfix: in non-OSObject-mode, do not track CXX method calls Differential Revision: https://reviews.llvm.org/D57782 Modified:

r353228 - [analyzer] [testing] Inside CmpRuns.py output also print the filename of the first item in the path

2019-02-05 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Tue Feb 5 14:26:57 2019 New Revision: 353228 URL: http://llvm.org/viewvc/llvm-project?rev=353228=rev Log: [analyzer] [testing] Inside CmpRuns.py output also print the filename of the first item in the path Differential Revision: https://reviews.llvm.org/D57783

r352938 - [analyzer] Hotfix for RetainCountChecker: assert was too strong.

2019-02-01 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Feb 1 15:06:44 2019 New Revision: 352938 URL: http://llvm.org/viewvc/llvm-project?rev=352938=rev Log: [analyzer] Hotfix for RetainCountChecker: assert was too strong. Bridged casts can happen to non-CF objects as well. Modified:

r352824 - [analyzer] [RetainCountChecker] Fix object type for CF/Obj-C bridged casts

2019-01-31 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Jan 31 18:13:02 2019 New Revision: 352824 URL: http://llvm.org/viewvc/llvm-project?rev=352824=rev Log: [analyzer] [RetainCountChecker] Fix object type for CF/Obj-C bridged casts Having an incorrect type for a cast causes the checker to incorrectly dismiss the

r352533 - [analyzer] [RetainSummaryManager] [NFC] Split one function into two, as it's really doing two things

2019-01-29 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Tue Jan 29 11:29:45 2019 New Revision: 352533 URL: http://llvm.org/viewvc/llvm-project?rev=352533=rev Log: [analyzer] [RetainSummaryManager] [NFC] Split one function into two, as it's really doing two things Differential Revision: https://reviews.llvm.org/D57201

r352532 - [analyzer] [ARCMT] [NFC] Unify entry point into RetainSummaryManager

2019-01-29 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Tue Jan 29 11:29:33 2019 New Revision: 352532 URL: http://llvm.org/viewvc/llvm-project?rev=352532=rev Log: [analyzer] [ARCMT] [NFC] Unify entry point into RetainSummaryManager Just use one single entry point, since we have AnyCall utility now. Differential

r352531 - Extend AnyCall to handle callable declarations without the call expressions

2019-01-29 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Tue Jan 29 11:29:19 2019 New Revision: 352531 URL: http://llvm.org/viewvc/llvm-project?rev=352531=rev Log: Extend AnyCall to handle callable declarations without the call expressions That weakens inner invariants, but allows the class to be more generic, allowing

r352530 - [analyzer] [RetainCountChecker] Support 'taggedRetain' and 'taggedRelease'

2019-01-29 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Tue Jan 29 11:29:07 2019 New Revision: 352530 URL: http://llvm.org/viewvc/llvm-project?rev=352530=rev Log: [analyzer] [RetainCountChecker] Support 'taggedRetain' and 'taggedRelease' Differential Revision: https://reviews.llvm.org/D57211 Modified:

r352148 - [analysis] Introduce an AnyCall helper class, for abstraction over different callables

2019-01-24 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Jan 24 17:23:51 2019 New Revision: 352148 URL: http://llvm.org/viewvc/llvm-project?rev=352148=rev Log: [analysis] Introduce an AnyCall helper class, for abstraction over different callables A lot of code, particularly in the analyzer, has to perform a lot of

r352147 - [AST] Add a method to get a call type from an ObjCMessageExpr

2019-01-24 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Jan 24 17:23:37 2019 New Revision: 352147 URL: http://llvm.org/viewvc/llvm-project?rev=352147=rev Log: [AST] Add a method to get a call type from an ObjCMessageExpr Due to references, expression type does not always correspond to an expected method return type

r351865 - [analyzer] Insert notes in RetainCountChecker where our dynamic cast modeling assumes 'null' output

2019-01-22 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Tue Jan 22 11:51:00 2019 New Revision: 351865 URL: http://llvm.org/viewvc/llvm-project?rev=351865=rev Log: [analyzer] Insert notes in RetainCountChecker where our dynamic cast modeling assumes 'null' output rdar://47397214 Differential Revision:

r351864 - [analyzer] Model another special-case kind of cast for OSObject RetainCountChecker

2019-01-22 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Tue Jan 22 11:50:47 2019 New Revision: 351864 URL: http://llvm.org/viewvc/llvm-project?rev=351864=rev Log: [analyzer] Model another special-case kind of cast for OSObject RetainCountChecker Differential Revision: https://reviews.llvm.org/D56951 Modified:

r351575 - Revert "Fix failing MSan bots"

2019-01-18 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Jan 18 11:24:55 2019 New Revision: 351575 URL: http://llvm.org/viewvc/llvm-project?rev=351575=rev Log: Revert "Fix failing MSan bots" This reverts commit 2cedaaef383d8d6142046074ffebc2bb5a914778. Revert with a fix. Added:

Re: r351514 - [analyzer] Introduce proper diagnostic for freeing unowned object

2019-01-18 Thread George Karpenkov via cfe-commits
; /b/sanitizer-x86_64-linux-bootstrap-msan/build/llvm/tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp:554 > #13 0x99ca7d6 in (anonymous > namespace)::AnalysisConsumer::HandleTranslationUnit(clang::ASTContext&) > /b/sanitizer-x86_64-linux-bootstrap-msan/build/llvm/tools/clang/lib/Sta

r351514 - [analyzer] Introduce proper diagnostic for freeing unowned object

2019-01-17 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Jan 17 19:13:53 2019 New Revision: 351514 URL: http://llvm.org/viewvc/llvm-project?rev=351514=rev Log: [analyzer] Introduce proper diagnostic for freeing unowned object Insert a note when the object becomes not (exclusively) owned. Differential Revision:

r351513 - [analyzer] Extend the PathDiagnosticLocation constructor to handle CallExitEnd

2019-01-17 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Jan 17 19:13:40 2019 New Revision: 351513 URL: http://llvm.org/viewvc/llvm-project?rev=351513=rev Log: [analyzer] Extend the PathDiagnosticLocation constructor to handle CallExitEnd Differential Revision: https://reviews.llvm.org/D56890 Modified:

r351511 - [analyzer] const-ify reference to bug type used in BugReporter

2019-01-17 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Jan 17 19:13:14 2019 New Revision: 351511 URL: http://llvm.org/viewvc/llvm-project?rev=351511=rev Log: [analyzer] const-ify reference to bug type used in BugReporter Differential Revision: https://reviews.llvm.org/D56885 Modified:

r351512 - [analyzer] [NFC] Clean up messy handling of bug categories in RetainCountChecker

2019-01-17 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Jan 17 19:13:27 2019 New Revision: 351512 URL: http://llvm.org/viewvc/llvm-project?rev=351512=rev Log: [analyzer] [NFC] Clean up messy handling of bug categories in RetainCountChecker https://reviews.llvm.org/D56887 Modified:

r351509 - [analyzer] [RetainCountChecker] Produce a correct message when OSTypeAlloc is used

2019-01-17 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Jan 17 19:12:48 2019 New Revision: 351509 URL: http://llvm.org/viewvc/llvm-project?rev=351509=rev Log: [analyzer] [RetainCountChecker] Produce a correct message when OSTypeAlloc is used Differential Revision: https://reviews.llvm.org/D56820 Modified:

r351510 - [analyzer] Extend BugType constructor to accept "SuppressOnSink" as a parameter

2019-01-17 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Jan 17 19:13:01 2019 New Revision: 351510 URL: http://llvm.org/viewvc/llvm-project?rev=351510=rev Log: [analyzer] Extend BugType constructor to accept "SuppressOnSink" as a parameter Differential Revision: https://reviews.llvm.org/D56884 Modified:

r351508 - [analyzer] [RetainCountChecker] Smart pointer support.

2019-01-17 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Jan 17 19:12:35 2019 New Revision: 351508 URL: http://llvm.org/viewvc/llvm-project?rev=351508=rev Log: [analyzer] [RetainCountChecker] Smart pointer support. rdar://47323216 Differential Revision: https://reviews.llvm.org/D56817 Added:

r351394 - [analyzer] Another RetainCountChecker cleanup

2019-01-16 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Wed Jan 16 15:21:38 2019 New Revision: 351394 URL: http://llvm.org/viewvc/llvm-project?rev=351394=rev Log: [analyzer] Another RetainCountChecker cleanup This is not NFC strictly speaking, since it unifies CleanupAttr handling, so that out parameters now also

r351393 - [analyzer] [NFC] Yet another minor cleanup of RetainCountChecker

2019-01-16 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Wed Jan 16 15:21:15 2019 New Revision: 351393 URL: http://llvm.org/viewvc/llvm-project?rev=351393=rev Log: [analyzer] [NFC] Yet another minor cleanup of RetainCountChecker Differential Revision: https://reviews.llvm.org/D56744 Modified:

r351097 - [analyzer] [PR39792] false positive on strcpy targeting struct members

2019-01-14 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Mon Jan 14 10:54:48 2019 New Revision: 351097 URL: http://llvm.org/viewvc/llvm-project?rev=351097=rev Log: [analyzer] [PR39792] false positive on strcpy targeting struct members Patch by Pierre van Houtryve. Differential Revision: https://reviews.llvm.org/D55226

r351096 - [analyzer] [NFC] Remove unused undefined method.

2019-01-14 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Mon Jan 14 10:54:35 2019 New Revision: 351096 URL: http://llvm.org/viewvc/llvm-project?rev=351096=rev Log: [analyzer] [NFC] Remove unused undefined method. Wow, at no point the linker or compiler complaints about that! Modified:

r350982 - [analyzer] Support for OSObjects out parameters in RetainCountChecker

2019-01-11 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Jan 11 15:35:17 2019 New Revision: 350982 URL: http://llvm.org/viewvc/llvm-project?rev=350982=rev Log: [analyzer] Support for OSObjects out parameters in RetainCountChecker rdar://46357478 rdar://47121327 Differential Revision: https://reviews.llvm.org/D56240

r350981 - [analyzer] Introduce a convenience method for getting a CallEvent from an arbitrary Stmt

2019-01-11 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Jan 11 15:35:04 2019 New Revision: 350981 URL: http://llvm.org/viewvc/llvm-project?rev=350981=rev Log: [analyzer] Introduce a convenience method for getting a CallEvent from an arbitrary Stmt Differential Revision: https://reviews.llvm.org/D56300 Modified:

r350942 - [attributes] Extend os_returns_(not_?)_retained attributes to parameters

2019-01-11 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Jan 11 10:02:08 2019 New Revision: 350942 URL: http://llvm.org/viewvc/llvm-project?rev=350942=rev Log: [attributes] Extend os_returns_(not_?)_retained attributes to parameters When applied to out-parameters, the attributes specify the expected lifetime of the

r350870 - [analyzer] [hotfix] Fix the tests

2019-01-10 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Jan 10 10:28:10 2019 New Revision: 350870 URL: http://llvm.org/viewvc/llvm-project?rev=350870=rev Log: [analyzer] [hotfix] Fix the tests The error must have crept during the cherry-pick. Modified:

r350869 - [analyzer] Update the category name for RetainCountChecker reports

2019-01-10 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Jan 10 10:16:25 2019 New Revision: 350869 URL: http://llvm.org/viewvc/llvm-project?rev=350869=rev Log: [analyzer] Update the category name for RetainCountChecker reports ..now that it includes OSObjects rdar://46509986 Differential Revision:

r350868 - [analyzer] [NFC] [RetainCountChecker] Remove dead unused map

2019-01-10 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Jan 10 10:16:10 2019 New Revision: 350868 URL: http://llvm.org/viewvc/llvm-project?rev=350868=rev Log: [analyzer] [NFC] [RetainCountChecker] Remove dead unused map Differential Revision: https://reviews.llvm.org/D56402 Modified:

r350866 - [analyzer] [NFC] Reverse the argument order for "diff" in tests

2019-01-10 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Jan 10 10:15:44 2019 New Revision: 350866 URL: http://llvm.org/viewvc/llvm-project?rev=350866=rev Log: [analyzer] [NFC] Reverse the argument order for "diff" in tests The current argument order has "expected" and "actual" the wrong way around, so that the diff

r350864 - [analyzer] [RetainCountChecker] [NFC] Remove SummaryLog

2019-01-10 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Jan 10 10:15:17 2019 New Revision: 350864 URL: http://llvm.org/viewvc/llvm-project?rev=350864=rev Log: [analyzer] [RetainCountChecker] [NFC] Remove SummaryLog The complicated machinery for passing the summary log around is actually only used for one thing! To

r350865 - [analyzer] [NFC] Reduce redundancy in RetainSummaryManager by using a function

2019-01-10 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Jan 10 10:15:30 2019 New Revision: 350865 URL: http://llvm.org/viewvc/llvm-project?rev=350865=rev Log: [analyzer] [NFC] Reduce redundancy in RetainSummaryManager by using a function Differential Revision: https://reviews.llvm.org/D56282 Modified:

r350862 - [analyzer] [RetainCountChecker] [NFC] Refactor the way attributes are handled

2019-01-10 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Jan 10 10:14:51 2019 New Revision: 350862 URL: http://llvm.org/viewvc/llvm-project?rev=350862=rev Log: [analyzer] [RetainCountChecker] [NFC] Refactor the way attributes are handled Make sure all checks for attributes go through a centralized function, which

r350863 - [analyzer] [RetainCountChecker] [NFC] Another minor cleanup

2019-01-10 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Jan 10 10:15:04 2019 New Revision: 350863 URL: http://llvm.org/viewvc/llvm-project?rev=350863=rev Log: [analyzer] [RetainCountChecker] [NFC] Another minor cleanup Differential Revision: https://reviews.llvm.org/D56224 Modified:

r350860 - [analyzer] [RetainCountChecker] Remove obsolete "MakeCollectable" enum value

2019-01-10 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Jan 10 10:14:25 2019 New Revision: 350860 URL: http://llvm.org/viewvc/llvm-project?rev=350860=rev Log: [analyzer] [RetainCountChecker] Remove obsolete "MakeCollectable" enum value Differential Revision: https://reviews.llvm.org/D56071 Modified:

r350861 - [analyzer] [RetainCountChecker] Remove redundant enum UnarySummaryKind

2019-01-10 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Jan 10 10:14:38 2019 New Revision: 350861 URL: http://llvm.org/viewvc/llvm-project?rev=350861=rev Log: [analyzer] [RetainCountChecker] Remove redundant enum UnarySummaryKind Differential Revision: https://reviews.llvm.org/D56072 Modified:

r350859 - [analyzer] [RetainCountChecker] [NFC] Remove redundant enum items *Msg, as the object type is already communicated by a separate field

2019-01-10 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Jan 10 10:14:12 2019 New Revision: 350859 URL: http://llvm.org/viewvc/llvm-project?rev=350859=rev Log: [analyzer] [RetainCountChecker] [NFC] Remove redundant enum items *Msg, as the object type is already communicated by a separate field Differential Revision:

r350858 - [analyzer] [NFC] Track object type with ArgEffect in RetainCountChecker.

2019-01-10 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Jan 10 10:13:59 2019 New Revision: 350858 URL: http://llvm.org/viewvc/llvm-project?rev=350858=rev Log: [analyzer] [NFC] Track object type with ArgEffect in RetainCountChecker. This would be needed in the future. https://reviews.llvm.org/D56040 Modified:

r350857 - [analyzer] [NFC] Move ObjKind into a separate top-level enum in RetainSummaryManager.

2019-01-10 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Jan 10 10:13:46 2019 New Revision: 350857 URL: http://llvm.org/viewvc/llvm-project?rev=350857=rev Log: [analyzer] [NFC] Move ObjKind into a separate top-level enum in RetainSummaryManager. Allows using it in future outside of RetEffect. Differential Revision:

r350057 - [analyzer] [NFC] Clean up the mess of constructing argument effects in RetainCountChecker

2018-12-24 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Mon Dec 24 10:45:18 2018 New Revision: 350057 URL: http://llvm.org/viewvc/llvm-project?rev=350057=rev Log: [analyzer] [NFC] Clean up the mess of constructing argument effects in RetainCountChecker Previously, argument effects were stored in a method variable,

r349943 - [analyzer] Tests quickfix.

2018-12-21 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Dec 21 11:40:44 2018 New Revision: 349943 URL: http://llvm.org/viewvc/llvm-project?rev=349943=rev Log: [analyzer] Tests quickfix. Modified: cfe/trunk/test/Analysis/osobject-retain-release.cpp Modified: cfe/trunk/test/Analysis/osobject-retain-release.cpp

r349938 - [analyzer] Correct the summary violation diagnostics for the retain count checker

2018-12-21 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Dec 21 11:13:28 2018 New Revision: 349938 URL: http://llvm.org/viewvc/llvm-project?rev=349938=rev Log: [analyzer] Correct the summary violation diagnostics for the retain count checker It should be in the past tense. Modified:

r349939 - Revert "Revert rL349876 from cfe/trunk: [analyzer] Perform escaping in RetainCountChecker on type mismatch even for inlined functions"

2018-12-21 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Dec 21 11:13:40 2018 New Revision: 349939 URL: http://llvm.org/viewvc/llvm-project?rev=349939=rev Log: Revert "Revert rL349876 from cfe/trunk: [analyzer] Perform escaping in RetainCountChecker on type mismatch even for inlined functions" This reverts commit

r349876 - [analyzer] Perform escaping in RetainCountChecker on type mismatch even for inlined functions

2018-12-20 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Dec 20 18:16:36 2018 New Revision: 349876 URL: http://llvm.org/viewvc/llvm-project?rev=349876=rev Log: [analyzer] Perform escaping in RetainCountChecker on type mismatch even for inlined functions The fix done in D55465 did not previously apply when the

r349875 - [analyzer] Fix a bug in RetainCountDiagnostics while printing a note on mismatched summary in inlined functions

2018-12-20 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Dec 20 18:16:23 2018 New Revision: 349875 URL: http://llvm.org/viewvc/llvm-project?rev=349875=rev Log: [analyzer] Fix a bug in RetainCountDiagnostics while printing a note on mismatched summary in inlined functions Previously, we were not printing a note at

r349863 - Revert "Revert "[driver] [analyzer] Fix a backward compatibility issue after r348038.""

2018-12-20 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Dec 20 16:26:19 2018 New Revision: 349863 URL: http://llvm.org/viewvc/llvm-project?rev=349863=rev Log: Revert "Revert "[driver] [analyzer] Fix a backward compatibility issue after r348038."" This reverts commit 144927939587b790c0536f4ff08245043fc8d733. Fixes

r348821 - [analyzer] Hack for backwards compatibility for options for RetainCountChecker.

2018-12-10 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Mon Dec 10 17:13:58 2018 New Revision: 348821 URL: http://llvm.org/viewvc/llvm-project?rev=348821=rev Log: [analyzer] Hack for backwards compatibility for options for RetainCountChecker. To be removed once the clients update. Modified:

r348822 - [analyzer] Remove memoization from RunLoopAutoreleaseLeakChecker

2018-12-10 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Mon Dec 10 17:14:17 2018 New Revision: 348822 URL: http://llvm.org/viewvc/llvm-project?rev=348822=rev Log: [analyzer] Remove memoization from RunLoopAutoreleaseLeakChecker Memoization dose not seem to be necessary, as other statement visitors run just fine without

r348820 - [analyzer] Display a diagnostics when an inlined function violates its os_consumed summary

2018-12-10 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Mon Dec 10 17:13:40 2018 New Revision: 348820 URL: http://llvm.org/viewvc/llvm-project?rev=348820=rev Log: [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

r348819 - [analyzer] Resolve another bug where the name of the leaked object was not printed properly

2018-12-10 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Mon Dec 10 17:13:20 2018 New Revision: 348819 URL: http://llvm.org/viewvc/llvm-project?rev=348819=rev Log: [analyzer] Resolve another bug where the name of the leaked object was not printed properly Differential Revision: https://reviews.llvm.org/D55528 Modified:

r348675 - Stop tracking retain count of OSObject after escape to void * / other primitive types

2018-12-07 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Dec 7 17:18:40 2018 New Revision: 348675 URL: http://llvm.org/viewvc/llvm-project?rev=348675=rev Log: Stop tracking retain count of OSObject after escape to void * / other primitive types Escaping to void * / uint64_t / others non-OSObject * should stop

r348638 - [analyzer] Move out tracking retain count for OSObjects into a separate checker

2018-12-07 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Dec 7 12:21:51 2018 New Revision: 348638 URL: http://llvm.org/viewvc/llvm-project?rev=348638=rev Log: [analyzer] Move out tracking retain count for OSObjects into a separate checker Allow enabling and disabling tracking of ObjC/CF objects separately from

r348637 - [analyzer] RetainCountChecker: remove untested, unused, incorrect option IncludeAllocationLine

2018-12-07 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Dec 7 12:21:37 2018 New Revision: 348637 URL: http://llvm.org/viewvc/llvm-project?rev=348637=rev Log: [analyzer] RetainCountChecker: remove untested, unused, incorrect option IncludeAllocationLine The option has no tests, is not used anywhere, and is actually

r348533 - [analyzer] Rely on os_consumes_this attribute to signify that the method call consumes a reference for "this"

2018-12-06 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Dec 6 14:07:12 2018 New Revision: 348533 URL: http://llvm.org/viewvc/llvm-project?rev=348533=rev Log: [analyzer] Rely on os_consumes_this attribute to signify that the method call consumes a reference for "this" Differential Revision:

r348532 - [attributes] Add an attribute os_consumes_this, with similar semantics to ns_consumes_self

2018-12-06 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Dec 6 14:06:59 2018 New Revision: 348532 URL: http://llvm.org/viewvc/llvm-project?rev=348532=rev Log: [attributes] Add an attribute os_consumes_this, with similar semantics to ns_consumes_self The attribute specifies that the call of the C++ method consumes a

r348531 - [analyzer] Fix an infinite recursion bug while checking parent methods in RetainCountChecker

2018-12-06 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Dec 6 14:06:44 2018 New Revision: 348531 URL: http://llvm.org/viewvc/llvm-project?rev=348531=rev Log: [analyzer] Fix an infinite recursion bug while checking parent methods in RetainCountChecker Differential Revision: https://reviews.llvm.org/D55351

r348443 - [attributes] Add more tests for os_returns_retained

2018-12-05 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Wed Dec 5 17:21:38 2018 New Revision: 348443 URL: http://llvm.org/viewvc/llvm-project?rev=348443=rev Log: [attributes] Add more tests for os_returns_retained Modified: cfe/trunk/test/Sema/attr-osobject.mm Modified: cfe/trunk/test/Sema/attr-osobject.mm URL:

r348396 - [analyzer] Attribute for RetainCountChecker for OSObject should propagate with inheritance

2018-12-05 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Wed Dec 5 10:34:54 2018 New Revision: 348396 URL: http://llvm.org/viewvc/llvm-project?rev=348396=rev Log: [analyzer] Attribute for RetainCountChecker for OSObject should propagate with inheritance rdar://46388388 Differential Revision:

Re: [cfe-dev] r347339 - [clang][Parse] Diagnose useless null statements / empty init-statements

2018-12-05 Thread George Karpenkov via cfe-commits
These are the cases I get: #define unexpected(a) { kprintf("unexpected %s:%d\n", __FILE__, __LINE__); a; } and #if 0 #define DEBG(fmt, args...) { IOLog(fmt, ## args); kprintf(fmt, ## args); } #else #define DEBG(fmt, args...) {} #endif Now calls `DEBG(‘x’);` and `unexpected(‘msg’);`

[clang-tools-extra] r348328 - [clang-query] Continue if compilation command not found for some files

2018-12-04 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Tue Dec 4 18:02:40 2018 New Revision: 348328 URL: http://llvm.org/viewvc/llvm-project?rev=348328=rev Log: [clang-query] Continue if compilation command not found for some files When searching for a code pattern in an entire project with a compilation database it's

Re: r347339 - [clang][Parse] Diagnose useless null statements / empty init-statements

2018-12-04 Thread George Karpenkov via cfe-commits
> On Dec 4, 2018, at 4:47 PM, Aaron Ballman wrote: > > On Tue, Dec 4, 2018 at 7:35 PM George Karpenkov wrote: >> >> Hi Roman, >> >> I’m against this new warning. >> >> A very common idiom is defining a “DEBUG” macro to be a no-op in release, >> and a logging function otherwise. >> The new

Re: r346041 - Diagnose parameter names that shadow the names of inherited fields under -Wshadow-field.

2018-12-04 Thread George Karpenkov via cfe-commits
> On Dec 4, 2018, at 4:48 PM, Aaron Ballman wrote: > > On Tue, Dec 4, 2018 at 7:17 PM George Karpenkov wrote: >> >> Hi Aaron, >> >> Should such changes be reviewed? > > This was reviewed in D52421. > >> In particular, it introduces tons of warnings in XNU (which are painful due >> to

Re: r347339 - [clang][Parse] Diagnose useless null statements / empty init-statements

2018-12-04 Thread George Karpenkov via cfe-commits
Hi Roman, I’m against this new warning. A very common idiom is defining a “DEBUG” macro to be a no-op in release, and a logging function otherwise. The new introduced warning warns on all such cases (e.g. 'DEBUG(“mystring”);') As noted in the review, Clang warnings should generally not be used

Re: r346041 - Diagnose parameter names that shadow the names of inherited fields under -Wshadow-field.

2018-12-04 Thread George Karpenkov via cfe-commits
Hi Aaron, Should such changes be reviewed? In particular, it introduces tons of warnings in XNU (which are painful due to -Werror). I expect similar issues in many other our projects. While in principle correct, wouldn’t it make more sense to only warn on function definitions and not

Re: [PATCH] D55076: [analyzer] RetainCountChecker: recognize that OSObject can be created directly using an operator "new"

2018-11-30 Thread George Karpenkov via cfe-commits
Pushed the fix. Again, sorry for the trouble. > On Nov 30, 2018, at 11:34 AM, George Karpenkov via cfe-commits > wrote: > > Good idea about using the mailing list, thanks, I’ll do that! > >> On Nov 30, 2018, at 11:30 AM, Aaron Ballman wrote: >> >> On Fr

r348030 - Revert "Reverting r347949-r347951 because they broke the test bots."

2018-11-30 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Nov 30 12:43:42 2018 New Revision: 348030 URL: http://llvm.org/viewvc/llvm-project?rev=348030=rev Log: Revert "Reverting r347949-r347951 because they broke the test bots." This reverts commit 5bad6129c012fbf186eb055be49344e790448ecc. Hopefully fixing the issue

Re: [PATCH] D55076: [analyzer] RetainCountChecker: recognize that OSObject can be created directly using an operator "new"

2018-11-30 Thread George Karpenkov via cfe-commits
Good idea about using the mailing list, thanks, I’ll do that! > On Nov 30, 2018, at 11:30 AM, Aaron Ballman wrote: > > On Fri, Nov 30, 2018 at 2:26 PM George Karpenkov wrote: >> >> Thanks I’ll take a look. >> >> BTW when reverting could you use “git revert” or mention manually the >>

Re: [PATCH] D55076: [analyzer] RetainCountChecker: recognize that OSObject can be created directly using an operator "new"

2018-11-30 Thread George Karpenkov via cfe-commits
Thanks I’ll take a look. BTW when reverting could you use “git revert” or mention manually the phabricator revision being reverted, and apply reverts atomically? I (and many others) work exclusively using a git monorepo, so I don’t even have a straightforward way to lookup what "r347951” is.

Re: [PATCH] D55076: [analyzer] RetainCountChecker: recognize that OSObject can be created directly using an operator "new"

2018-11-30 Thread George Karpenkov via cfe-commits
Thanks and sorry about the trouble. I’ll recommit with size_t. > On Nov 30, 2018, at 10:56 AM, Aaron Ballman wrote: > > On Fri, Nov 30, 2018 at 9:37 AM Artem Dergachev via Phabricator via > cfe-commits mailto:cfe-commits@lists.llvm.org>> > wrote: >> >> NoQ added inline comments. >> >> >>

r347950 - [analyzer] RetainCountChecker for OSObject model the "free" call

2018-11-29 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Nov 29 18:19:16 2018 New Revision: 347950 URL: http://llvm.org/viewvc/llvm-project?rev=347950=rev Log: [analyzer] RetainCountChecker for OSObject model the "free" call The "free" call frees the object immediately, ignoring the reference count. Sadly, it is

r347945 - [analyzer] For OSObject, trust that functions starting with Get

2018-11-29 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Nov 29 18:18:10 2018 New Revision: 347945 URL: http://llvm.org/viewvc/llvm-project?rev=347945=rev Log: [analyzer] For OSObject, trust that functions starting with Get (uppercase) are also getters. Differential Revision: https://reviews.llvm.org/D55035

r347949 - [analyzer] RetainCountChecker: recognize that OSObject can be created directly using an operator "new"

2018-11-29 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Nov 29 18:19:03 2018 New Revision: 347949 URL: http://llvm.org/viewvc/llvm-project?rev=347949=rev Log: [analyzer] RetainCountChecker: recognize that OSObject can be created directly using an operator "new" Differential Revision: https://reviews.llvm.org/D55076

r347941 - [analyzer] [NFC] Test dumping trimmed graph

2018-11-29 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Nov 29 18:17:18 2018 New Revision: 347941 URL: http://llvm.org/viewvc/llvm-project?rev=347941=rev Log: [analyzer] [NFC] Test dumping trimmed graph Differential Revision: https://reviews.llvm.org/D54972 Modified: cfe/trunk/test/Analysis/dump_egraph.c

r347947 - [attributes] Add a family of OS_CONSUMED, OS_RETURNS and OS_RETURNS_RETAINED attributes

2018-11-29 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Nov 29 18:18:37 2018 New Revision: 347947 URL: http://llvm.org/viewvc/llvm-project?rev=347947=rev Log: [attributes] Add a family of OS_CONSUMED, OS_RETURNS and OS_RETURNS_RETAINED attributes The addition adds three attributes for communicating ownership,

r347943 - [analyzer] Add the type of the leaked object to the diagnostic message

2018-11-29 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Nov 29 18:17:44 2018 New Revision: 347943 URL: http://llvm.org/viewvc/llvm-project?rev=347943=rev Log: [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

r347940 - [analyzer] [NFC] Some miscellaneous clean ups and documentation fixes.

2018-11-29 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Nov 29 18:17:05 2018 New Revision: 347940 URL: http://llvm.org/viewvc/llvm-project?rev=347940=rev Log: [analyzer] [NFC] Some miscellaneous clean ups and documentation fixes. Differential Revision: https://reviews.llvm.org/D54971 Modified:

r347944 - [analyzer] Print a fully qualified name for functions in RetainCountChecker diagnostics

2018-11-29 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Nov 29 18:17:57 2018 New Revision: 347944 URL: http://llvm.org/viewvc/llvm-project?rev=347944=rev Log: [analyzer] Print a fully qualified name for functions in RetainCountChecker diagnostics Attempt to get a fully qualified name from AST if an SVal

r347951 - [analyzer] Fixes after rebase.

2018-11-29 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Nov 29 18:19:29 2018 New Revision: 347951 URL: http://llvm.org/viewvc/llvm-project?rev=347951=rev Log: [analyzer] Fixes after rebase. Modified: cfe/trunk/test/Analysis/osobject-retain-release.cpp

r347946 - [analyzer] [NFC] Minor refactoring of RetainCountDiagnostics

2018-11-29 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Nov 29 18:18:23 2018 New Revision: 347946 URL: http://llvm.org/viewvc/llvm-project?rev=347946=rev Log: [analyzer] [NFC] Minor refactoring of RetainCountDiagnostics Move visitors to the implementation file, move a complicated logic into a function. Differential

r347948 - [analyzer] Switch retain count checker for OSObject to use OS_* attributes

2018-11-29 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Nov 29 18:18:50 2018 New Revision: 347948 URL: http://llvm.org/viewvc/llvm-project?rev=347948=rev Log: [analyzer] Switch retain count checker for OSObject to use OS_* attributes Instead of generalized reference counting annotations. Differential Revision:

r347942 - [analyzer] Reference leaked object by name, even if it was created in an inlined function.

2018-11-29 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Nov 29 18:17:31 2018 New Revision: 347942 URL: http://llvm.org/viewvc/llvm-project?rev=347942=rev Log: [analyzer] Reference leaked object by name, even if it was created in an inlined function. rdar://45532181 Differential Revision:

Re: [cfe-dev] Dumping AST information to other formats

2018-11-29 Thread George Karpenkov via cfe-commits
Hi Aaron, You might find useful the recent work we have done on stable identifiers for AST: now Stmt and Decl classes have a “getID” method, which returns an identifier stable across different runs (at least on the same architecture, probably not the same for different ones). George > On Nov

Re: r345099 - [analyzer] Trust summaries for OSObject::retain and OSObject::release

2018-11-26 Thread George Karpenkov via cfe-commits
== >> >> The call to >> >> const FunctionDecl* FDD = FD->getDefinition(); >> >> in RetainSummaryManager::canEval eventually ends up in >> >>bool isThisDeclarationADefinition() const { >> return isDeletedAsWritten() ||

r346028 - [analyzer] Fixup of the module build after https://reviews.llvm.org/D53277

2018-11-02 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Nov 2 11:28:52 2018 New Revision: 346028 URL: http://llvm.org/viewvc/llvm-project?rev=346028=rev Log: [analyzer] Fixup of the module build after https://reviews.llvm.org/D53277 Adds AnalyzerOptions.def to the list of textual headers. Modified:

r345747 - [analyzer] Re-add custom OSIterator rule for RetainCountChecker

2018-10-31 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Wed Oct 31 10:38:46 2018 New Revision: 345747 URL: http://llvm.org/viewvc/llvm-project?rev=345747=rev Log: [analyzer] Re-add custom OSIterator rule for RetainCountChecker Turns out the rule is quite ubiquitous. Revert of https://reviews.llvm.org/D53628 Modified:

r345746 - [analyzer] RetainCountChecker: for now, do not trust the summaries of inlined code

2018-10-31 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Wed Oct 31 10:38:29 2018 New Revision: 345746 URL: http://llvm.org/viewvc/llvm-project?rev=345746=rev Log: [analyzer] RetainCountChecker: for now, do not trust the summaries of inlined code Trusting summaries of inlined code would require a more thorough work, as

r345745 - [analyzer] Enable retain count checking for OSObject by defa

2018-10-31 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Wed Oct 31 10:38:12 2018 New Revision: 345745 URL: http://llvm.org/viewvc/llvm-project?rev=345745=rev Log: [analyzer] Enable retain count checking for OSObject by defa The FP rate seems to be good enough now. Differential Revision: https://reviews.llvm.org/D53849

r345341 - [analyzer] Fix a bug in "collapsed" graph viewer

2018-10-25 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Oct 25 16:38:58 2018 New Revision: 345341 URL: http://llvm.org/viewvc/llvm-project?rev=345341=rev Log: [analyzer] Fix a bug in "collapsed" graph viewer Nodes which have only one predecessor and only one successor can not always be hidden, even if all states are

r345338 - [analyzer] Correct modelling of OSDynamicCast: eagerly state split

2018-10-25 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Oct 25 16:38:07 2018 New Revision: 345338 URL: http://llvm.org/viewvc/llvm-project?rev=345338=rev Log: [analyzer] Correct modelling of OSDynamicCast: eagerly state split Previously, OSDynamicCast was modeled as an identity. This is not correct: the output of

r345340 - [analyzer] [RetainCountChecker] Do not invalidate references passed to constructors and operators

2018-10-25 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Oct 25 16:38:41 2018 New Revision: 345340 URL: http://llvm.org/viewvc/llvm-project?rev=345340=rev Log: [analyzer] [RetainCountChecker] Do not invalidate references passed to constructors and operators Differential Revision: https://reviews.llvm.org/D53660

r345339 - [analyzer] Remove custom rule for OSIterator in RetainCountChecker

2018-10-25 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Oct 25 16:38:24 2018 New Revision: 345339 URL: http://llvm.org/viewvc/llvm-project?rev=345339=rev Log: [analyzer] Remove custom rule for OSIterator in RetainCountChecker Differential Revision: https://reviews.llvm.org/D53628 Modified:

r345101 - [analyzer] [NFC] Change scanReachableSymbols to use ranges

2018-10-23 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Tue Oct 23 16:12:12 2018 New Revision: 345101 URL: http://llvm.org/viewvc/llvm-project?rev=345101=rev Log: [analyzer] [NFC] Change scanReachableSymbols to use ranges Remove unused overload. Clean up some usages. Differential Revision:

r345100 - [analyzer] Do not stop tracking CXX methods touching OSObject.

2018-10-23 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Tue Oct 23 16:11:50 2018 New Revision: 345100 URL: http://llvm.org/viewvc/llvm-project?rev=345100=rev Log: [analyzer] Do not stop tracking CXX methods touching OSObject. Trust generalized annotations for OSObject. Differential Revision:

r345099 - [analyzer] Trust summaries for OSObject::retain and OSObject::release

2018-10-23 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Tue Oct 23 16:11:30 2018 New Revision: 345099 URL: http://llvm.org/viewvc/llvm-project?rev=345099=rev Log: [analyzer] Trust summaries for OSObject::retain and OSObject::release Refactor the way in which summaries are consumed for safeMetaCast Differential

r345064 - [analyzer] Rename trackNullOrUndefValue to trackExpressionValue

2018-10-23 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Tue Oct 23 11:24:53 2018 New Revision: 345064 URL: http://llvm.org/viewvc/llvm-project?rev=345064=rev Log: [analyzer] Rename trackNullOrUndefValue to trackExpressionValue trackNullOrUndefValue is a long and confusing name, and it does not actually reflect what the

  1   2   3   4   5   >