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&view=rev Log: [analyzer] const-ify reference to bug type used in BugReporter Differential Revision: https://reviews.llvm.org/D56885 Modified: cfe/trunk/include/cla

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&view=rev Log: [analyzer] [NFC] Clean up messy handling of bug categories in RetainCountChecker https://reviews.llvm.org/D56887 Modified: cfe/trunk/lib/StaticAnaly

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&view=rev Log: [analyzer] Introduce proper diagnostic for freeing unowned object Insert a note when the object becomes not (exclusively) owned. Differential Revision: h

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&view=rev Log: [analyzer] Extend the PathDiagnosticLocation constructor to handle CallExitEnd Differential Revision: https://reviews.llvm.org/D56890 Modified: cfe/

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

2019-01-18 Thread George Karpenkov via cfe-commits
sCallGraph > /b/sanitizer-x86_64-linux-bootstrap-msan/build/llvm/tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp:507:5 > #12 0x99ca7d6 in runAnalysisOnTranslationUnit > /b/sanitizer-x86_64-linux-bootstrap-msan/build/llvm/tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp:554 &

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&view=rev Log: Revert "Fix failing MSan bots" This reverts commit 2cedaaef383d8d6142046074ffebc2bb5a914778. Revert with a fix. Added: cfe/trunk/test/Analysis/os_ob

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&view=rev Log: [analyzer] Model another special-case kind of cast for OSObject RetainCountChecker Differential Revision: https://reviews.llvm.org/D56951 Modified:

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&view=rev Log: [analyzer] Insert notes in RetainCountChecker where our dynamic cast modeling assumes 'null' output rdar://47397214 Differential Revision: https://revie

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&view=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

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&view=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 t

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&view=rev Log: [analyzer] [RetainCountChecker] Support 'taggedRetain' and 'taggedRelease' Differential Revision: https://reviews.llvm.org/D57211 Modified: cfe/trunk

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&view=rev Log: Extend AnyCall to handle callable declarations without the call expressions That weakens inner invariants, but allows the class to be more generic, allowi

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&view=rev Log: [analyzer] [ARCMT] [NFC] Unify entry point into RetainSummaryManager Just use one single entry point, since we have AnyCall utility now. Differential Rev

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&view=rev Log: [analyzer] [RetainSummaryManager] [NFC] Split one function into two, as it's really doing two things Differential Revision: https://reviews.llvm.org/D572

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&view=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,

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&view=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/D53

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&view=rev Log: [analyzer] Re-add custom OSIterator rule for RetainCountChecker Turns out the rule is quite ubiquitous. Revert of https://reviews.llvm.org/D53628 Modifi

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&view=rev Log: [analyzer] Fixup of the module build after https://reviews.llvm.org/D53277 Adds AnalyzerOptions.def to the list of textual headers. Modified: cfe/tru

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

2018-11-26 Thread George Karpenkov via cfe-commits
o/llvm-patch/build-all/bin/clang-tidy) >> ==18829== >> >> The call to >> >> const FunctionDecl* FDD = FD->getDefinition(); >> >> in RetainSummaryManager::canEval eventually ends up in >> >>bool isThisDeclarationADefinition(

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 2

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&view=rev Log: [analyzer] Reference leaked object by name, even if it was created in an inlined function. rdar://45532181 Differential Revision: https://reviews.llvm.o

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&view=rev Log: [analyzer] [NFC] Minor refactoring of RetainCountDiagnostics Move visitors to the implementation file, move a complicated logic into a function. Differen

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&view=rev Log: [analyzer] Switch retain count checker for OSObject to use OS_* attributes Instead of generalized reference counting annotations. Differential Revision:

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&view=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 corresp

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&view=rev Log: [analyzer] [NFC] Some miscellaneous clean ups and documentation fixes. Differential Revision: https://reviews.llvm.org/D54971 Modified: cfe/trunk/inc

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&view=rev Log: [analyzer] Fixes after rebase. Modified: cfe/trunk/test/Analysis/osobject-retain-release.cpp cfe/trunk/test/Misc/pragma-attribute-supported-attrib

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&view=rev Log: [attributes] Add a family of OS_CONSUMED, OS_RETURNS and OS_RETURNS_RETAINED attributes The addition adds three attributes for communicating ownership, a

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&view=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

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&view=rev Log: [analyzer] [NFC] Test dumping trimmed graph Differential Revision: https://reviews.llvm.org/D54972 Modified: cfe/trunk/test/Analysis/dump_egraph.c M

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&view=rev Log: [analyzer] RetainCountChecker: recognize that OSObject can be created directly using an operator "new" Differential Revision: https://reviews.llvm.org/D5

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&view=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&view=rev Log: [analyzer] For OSObject, trust that functions starting with Get (uppercase) are also getters. Differential Revision: https://reviews.llvm.org/D55035 Mod

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. >> >> >> ===

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. Th

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 >> phabric

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&view=rev Log: Revert "Reverting r347949-r347951 because they broke the test bots." This reverts commit 5bad6129c012fbf186eb055be49344e790448ecc. Hopefully fixing the i

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

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 declaratio

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
> 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 -Wer

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

[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&view=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

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’);`

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&view=rev Log: [analyzer] Attribute for RetainCountChecker for OSObject should propagate with inheritance rdar://46388388 Differential Revision: https://reviews.llvm.o

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&view=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

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&view=rev Log: [analyzer] Fix an infinite recursion bug while checking parent methods in RetainCountChecker Differential Revision: https://reviews.llvm.org/D55351 Modi

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&view=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 consum

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&view=rev Log: [analyzer] Rely on os_consumes_this attribute to signify that the method call consumes a reference for "this" Differential Revision: https://reviews.llvm

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&view=rev Log: [analyzer] RetainCountChecker: remove untested, unused, incorrect option IncludeAllocationLine The option has no tests, is not used anywhere, and is actu

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&view=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 t

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&view=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 t

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&view=rev Log: [analyzer] Resolve another bug where the name of the leaked object was not printed properly Differential Revision: https://reviews.llvm.org/D55528 Modif

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&view=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 e

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&view=rev Log: [analyzer] Remove memoization from RunLoopAutoreleaseLeakChecker Memoization dose not seem to be necessary, as other statement visitors run just fine with

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&view=rev Log: [analyzer] Hack for backwards compatibility for options for RetainCountChecker. To be removed once the clients update. Modified: cfe/trunk/lib/Stati

r342308 - [analyzer] Skip printing duplicate nodes, even if nodes have multiple predecessors/successors

2018-09-14 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Sep 14 19:01:26 2018 New Revision: 342308 URL: http://llvm.org/viewvc/llvm-project?rev=342308&view=rev Log: [analyzer] Skip printing duplicate nodes, even if nodes have multiple predecessors/successors Still generate a node, but leave the redundant field empty.

r342311 - StmtPrinter: allow customizing the end-of-line character

2018-09-14 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Sep 14 19:02:31 2018 New Revision: 342311 URL: http://llvm.org/viewvc/llvm-project?rev=342311&view=rev Log: StmtPrinter: allow customizing the end-of-line character Differential Revision: https://reviews.llvm.org/D51824 Modified: cfe/trunk/include/clang/AST

r342309 - Support generating unique identifiers for Stmt objects

2018-09-14 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Sep 14 19:01:47 2018 New Revision: 342309 URL: http://llvm.org/viewvc/llvm-project?rev=342309&view=rev Log: Support generating unique identifiers for Stmt objects The generated identifiers are stable across multiple runs, and can be a great debug or visualizatio

r342310 - [analyzer] Dump unique identifiers for statements in exploded graph

2018-09-14 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Sep 14 19:02:09 2018 New Revision: 342310 URL: http://llvm.org/viewvc/llvm-project?rev=342310&view=rev Log: [analyzer] Dump unique identifiers for statements in exploded graph Differential Revision: https://reviews.llvm.org/D51823 Modified: cfe/trunk/lib/St

r342312 - [analyzer] Use correct end-of-line character when printing statements for exploded graph

2018-09-14 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Sep 14 19:02:56 2018 New Revision: 342312 URL: http://llvm.org/viewvc/llvm-project?rev=342312&view=rev Log: [analyzer] Use correct end-of-line character when printing statements for exploded graph Prevents bad centering. Differential Revision: https://reviews.

r342313 - [analyzer] Dump reproducible identifiers for statements in exploded graph in store

2018-09-14 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Sep 14 19:03:17 2018 New Revision: 342313 URL: http://llvm.org/viewvc/llvm-project?rev=342313&view=rev Log: [analyzer] Dump reproducible identifiers for statements in exploded graph in store Differential Revision: https://reviews.llvm.org/D51826 Modified:

r342314 - [analyzer] Generate and use stable identifiers for LocationContext

2018-09-14 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Sep 14 19:03:36 2018 New Revision: 342314 URL: http://llvm.org/viewvc/llvm-project?rev=342314&view=rev Log: [analyzer] Generate and use stable identifiers for LocationContext Those are not created in the allocator. Since they are created fairly rarely, a counter

r342315 - Generate unique identifiers for Decl objects

2018-09-14 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Sep 14 19:03:58 2018 New Revision: 342315 URL: http://llvm.org/viewvc/llvm-project?rev=342315&view=rev Log: Generate unique identifiers for Decl objects The generated identifier is stable across multiple runs, and can be a great visualization or debugging aide.

r342316 - [analyzer] Further printing improvements: use declarations,

2018-09-14 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Sep 14 19:34:45 2018 New Revision: 342316 URL: http://llvm.org/viewvc/llvm-project?rev=342316&view=rev Log: [analyzer] Further printing improvements: use declarations, skip pointers whenever redundant, use unique prefixes. Differential Revision: https://reviews

r342317 - [analyzer] Temporary disabling svalbuilder-rearrange-comparisons test

2018-09-14 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Sep 14 19:35:06 2018 New Revision: 342317 URL: http://llvm.org/viewvc/llvm-project?rev=342317&view=rev Log: [analyzer] Temporary disabling svalbuilder-rearrange-comparisons test As debug printing has changed, and format was not guaranteed to be stable. Artem is

r342413 - [analyzer] ExplodedGraph printing fixes

2018-09-17 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Mon Sep 17 13:46:53 2018 New Revision: 342413 URL: http://llvm.org/viewvc/llvm-project?rev=342413&view=rev Log: [analyzer] ExplodedGraph printing fixes Fixes a number of issues: - Global variables are not used for communication - Trait should be defined on a grap

r342765 - [analyzer] [NFC] Dead code removal

2018-09-21 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Sep 21 13:35:39 2018 New Revision: 342765 URL: http://llvm.org/viewvc/llvm-project?rev=342765&view=rev Log: [analyzer] [NFC] Dead code removal Differential Revision: https://reviews.llvm.org/D52269 Modified: cfe/trunk/include/clang/StaticAnalyzer/Core/BugRe

r342766 - [analyzer] Fix bug in isInevitablySinking

2018-09-21 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Sep 21 13:36:01 2018 New Revision: 342766 URL: http://llvm.org/viewvc/llvm-project?rev=342766&view=rev Log: [analyzer] Fix bug in isInevitablySinking If the non-sink report is generated at the exit node, it will be suppressed by the current functionality in isIn

r342767 - [analyzer] [NFC] Prefer make_unique over "new"

2018-09-21 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Sep 21 13:36:21 2018 New Revision: 342767 URL: http://llvm.org/viewvc/llvm-project?rev=342767&view=rev Log: [analyzer] [NFC] Prefer make_unique over "new" Differential Revision: https://reviews.llvm.org/D52336 Modified: cfe/trunk/lib/StaticAnalyzer/Checker

r342769 - [analyzer] Highlight sink nodes in red

2018-09-21 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Sep 21 13:37:01 2018 New Revision: 342769 URL: http://llvm.org/viewvc/llvm-project?rev=342769&view=rev Log: [analyzer] Highlight sink nodes in red Differential Revision: https://reviews.llvm.org/D52337 Modified: cfe/trunk/lib/StaticAnalyzer/Core/ExprEngine.

r342768 - [analyzer] Associate diagnostics created in checkEndFunction with a return statement, if possible

2018-09-21 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Sep 21 13:36:41 2018 New Revision: 342768 URL: http://llvm.org/viewvc/llvm-project?rev=342768&view=rev Log: [analyzer] Associate diagnostics created in checkEndFunction with a return statement, if possible If not possible, use the last line of the declaration,

r342770 - [analyzer] Process state in checkEndFunction in RetainCountChecker

2018-09-21 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Sep 21 13:37:20 2018 New Revision: 342770 URL: http://llvm.org/viewvc/llvm-project?rev=342770&view=rev Log: [analyzer] Process state in checkEndFunction in RetainCountChecker Modify the RetainCountChecker to perform state "adjustments" in checkEndFunction, as pe

r342920 - [analyzer] Prevent crashes in FindLastStoreBRVisitor

2018-09-24 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Mon Sep 24 14:20:30 2018 New Revision: 342920 URL: http://llvm.org/viewvc/llvm-project?rev=342920&view=rev Log: [analyzer] Prevent crashes in FindLastStoreBRVisitor This patch is a band-aid. A proper solution would be too change trackNullOrUndefValue to only try to

r343158 - [analyzer] [testing] Pass through an extra argument for specifying extra analyzer options

2018-09-26 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Wed Sep 26 18:10:59 2018 New Revision: 343158 URL: http://llvm.org/viewvc/llvm-project?rev=343158&view=rev Log: [analyzer] [testing] Pass through an extra argument for specifying extra analyzer options Differential Revision: https://reviews.llvm.org/D52585 Modifie

r343159 - [analyzer] [NFC] Heavy refactoring of trackNullOrUndefValue

2018-09-26 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Wed Sep 26 18:45:57 2018 New Revision: 343159 URL: http://llvm.org/viewvc/llvm-project?rev=343159&view=rev Log: [analyzer] [NFC] Heavy refactoring of trackNullOrUndefValue Differential Revision: https://reviews.llvm.org/D52519 Modified: cfe/trunk/include/clang

r343160 - [analyzer] [NFC] Move the code for dumping the program point to ProgramPoint

2018-09-26 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Wed Sep 26 18:46:18 2018 New Revision: 343160 URL: http://llvm.org/viewvc/llvm-project?rev=343160&view=rev Log: [analyzer] [NFC] Move the code for dumping the program point to ProgramPoint So we can dump them outside of viewing the exploded grpah. Differential Revi

r343239 - [analyzer] Highlight nodes which have error reports in them in red in exploded graph

2018-09-27 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Sep 27 10:26:41 2018 New Revision: 343239 URL: http://llvm.org/viewvc/llvm-project?rev=343239&view=rev Log: [analyzer] Highlight nodes which have error reports in them in red in exploded graph Differential Revision: https://reviews.llvm.org/D52584 Modified:

r343276 - [analyzer] Hotfix for the bug in exploded graph printing

2018-09-27 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Sep 27 15:31:13 2018 New Revision: 343276 URL: http://llvm.org/viewvc/llvm-project?rev=343276&view=rev Log: [analyzer] Hotfix for the bug in exploded graph printing Modified: cfe/trunk/lib/StaticAnalyzer/Core/ExprEngine.cpp Modified: cfe/trunk/lib/StaticAna

r343352 - [analyzer] Provide an option to dump generated exploded graphs to a given file.

2018-09-28 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Sep 28 11:49:21 2018 New Revision: 343352 URL: http://llvm.org/viewvc/llvm-project?rev=343352&view=rev Log: [analyzer] Provide an option to dump generated exploded graphs to a given file. Dumping graphs instead of opening them is often very useful, e.g. for tran

r343353 - [analyzer] [NFC] Remove unused parameters, as found by -Wunused-parameter

2018-09-28 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Sep 28 11:49:41 2018 New Revision: 343353 URL: http://llvm.org/viewvc/llvm-project?rev=343353&view=rev Log: [analyzer] [NFC] Remove unused parameters, as found by -Wunused-parameter Differential Revision: https://reviews.llvm.org/D52640 Modified: cfe/trunk

Re: r342827 - Fix modules build with shared library.

2018-10-01 Thread George Karpenkov via cfe-commits
Hi Richard, > On Oct 1, 2018, at 2:50 PM, Richard Smith via cfe-commits > wrote: > > This looks like the wrong fix to me, but I don't really know enough about > what's being done with ExprMutationAnalyzer to have an opinion on what the > right fix is. > > Shuai, what is the goal here? Why is

r343636 - [analyzer] [tests] Allow specifying entire -analyze-config on the command line, make sure it's always propagated

2018-10-02 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Tue Oct 2 14:19:23 2018 New Revision: 343636 URL: http://llvm.org/viewvc/llvm-project?rev=343636&view=rev Log: [analyzer] [tests] Allow specifying entire -analyze-config on the command line, make sure it's always propagated Differential Revision: https://reviews.l

r343635 - [analyzer] Fix crash in exploded graph dumping

2018-10-02 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Tue Oct 2 14:19:01 2018 New Revision: 343635 URL: http://llvm.org/viewvc/llvm-project?rev=343635&view=rev Log: [analyzer] Fix crash in exploded graph dumping By allocating new DeclStmt to ASTContext Differential Revision: https://reviews.llvm.org/D52756 Modified:

r343643 - [analyzer] [tests] Hotfix: missing space

2018-10-02 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Tue Oct 2 15:31:44 2018 New Revision: 343643 URL: http://llvm.org/viewvc/llvm-project?rev=343643&view=rev Log: [analyzer] [tests] Hotfix: missing space Modified: cfe/trunk/utils/analyzer/SATestBuild.py Modified: cfe/trunk/utils/analyzer/SATestBuild.py URL: ht

r343715 - [analyzer] [tests] [quickfix] Make the test more resilient for a non-defaut std configuration

2018-10-03 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Wed Oct 3 13:46:50 2018 New Revision: 343715 URL: http://llvm.org/viewvc/llvm-project?rev=343715&view=rev Log: [analyzer] [tests] [quickfix] Make the test more resilient for a non-defaut std configuration Modified: cfe/trunk/test/Analysis/html_diagnostics/rele

r343735 - [analyzer] Do not crash if the assumption added in TrustNonNullChecker is enough to make the state unfeasible

2018-10-03 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Wed Oct 3 15:31:09 2018 New Revision: 343735 URL: http://llvm.org/viewvc/llvm-project?rev=343735&view=rev Log: [analyzer] Do not crash if the assumption added in TrustNonNullChecker is enough to make the state unfeasible rdar://43541814 Differential Revision: htt

r343747 - [analyzer] [quickfix] Temporarily disabling a failing test.

2018-10-03 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Wed Oct 3 17:07:45 2018 New Revision: 343747 URL: http://llvm.org/viewvc/llvm-project?rev=343747&view=rev Log: [analyzer] [quickfix] Temporarily disabling a failing test. Modified: cfe/trunk/test/Analysis/trustnonnullchecker_test.m Modified: cfe/trunk/test/Ana

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&view=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 t

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&view=rev Log: [analyzer] Hotfix for RetainCountChecker: assert was too strong. Bridged casts can happen to non-CF objects as well. Modified: cfe/trunk/lib/StaticA

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&view=rev Log: [analyzer] [RetainCountChecker] Bugfix: in non-OSObject-mode, do not track CXX method calls Differential Revision: https://reviews.llvm.org/D57782 Modif

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&view=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/D5778

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&view=rev Log: [analyzer] Document RetainCountChecker behavior and annotations Differential Revision: https://reviews.llvm.org/D57721 Modified: cfe/trunk/www/analyz

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&view=rev Log: [analyzer] Opt-in C Style Cast Checker for OSObject pointers Differential Revision: https://reviews.llvm.org/D57261 Added: cfe/trunk/lib/StaticAnalyz

r312670 - [NFC] [CSA] Move AnyFunctionCall::getRuntimeDefinition implementation to cpp.

2017-09-06 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Wed Sep 6 14:45:01 2017 New Revision: 312670 URL: http://llvm.org/viewvc/llvm-project?rev=312670&view=rev Log: [NFC] [CSA] Move AnyFunctionCall::getRuntimeDefinition implementation to cpp. Differential Revision: https://reviews.llvm.org/D37499 Modified: cfe/tr

r312671 - [CSA] [NFC] Move AnalysisContext.h to AnalysisDeclContext.h

2017-09-06 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Wed Sep 6 14:45:03 2017 New Revision: 312671 URL: http://llvm.org/viewvc/llvm-project?rev=312671&view=rev Log: [CSA] [NFC] Move AnalysisContext.h to AnalysisDeclContext.h The implementation is in AnalysisDeclContext.cpp and the class is called AnalysisDeclContext.

r313219 - [NFC] [Analyzer] Fix RST markup in documentation.

2017-09-13 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Wed Sep 13 17:04:56 2017 New Revision: 313219 URL: http://llvm.org/viewvc/llvm-project?rev=313219&view=rev Log: [NFC] [Analyzer] Fix RST markup in documentation. Modified: cfe/trunk/docs/analyzer/DebugChecks.rst Modified: cfe/trunk/docs/analyzer/DebugChecks.rst

r313385 - [Analyzer] Check function name size before indexing.

2017-09-15 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Fri Sep 15 12:51:26 2017 New Revision: 313385 URL: http://llvm.org/viewvc/llvm-project?rev=313385&view=rev Log: [Analyzer] Check function name size before indexing. https://reviews.llvm.org/D37908 Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountCheck

r313923 - [Analyzer] Remove dead code from CmpRuns.py.

2017-09-21 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Sep 21 14:47:13 2017 New Revision: 313923 URL: http://llvm.org/viewvc/llvm-project?rev=313923&view=rev Log: [Analyzer] Remove dead code from CmpRuns.py. Differential Revision: https://reviews.llvm.org/D38003 Modified: cfe/trunk/utils/analyzer/CmpRuns.py Mo

r313924 - [Analyzer] Add simple help to SATestAdd.py

2017-09-21 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Sep 21 14:47:33 2017 New Revision: 313924 URL: http://llvm.org/viewvc/llvm-project?rev=313924&view=rev Log: [Analyzer] Add simple help to SATestAdd.py Differential Revision: https://reviews.llvm.org/D38003 Modified: cfe/trunk/utils/analyzer/SATestAdd.py Mo

r313927 - [Analyzer] Use CC environment variable to select analyzer path in SATestBuild.

2017-09-21 Thread George Karpenkov via cfe-commits
Author: george.karpenkov Date: Thu Sep 21 15:12:49 2017 New Revision: 313927 URL: http://llvm.org/viewvc/llvm-project?rev=313927&view=rev Log: [Analyzer] Use CC environment variable to select analyzer path in SATestBuild. This change is required to easily test the given checkout of the analyzer,

<    1   2   3   4   5   >