19 #ifndef LLVM_CLANG_STATICANALYZER_CHECKERS_OBJCRETAINCOUNT_H
20 #define LLVM_CLANG_STATICANALYZER_CHECKERS_OBJCRETAINCOUNT_H
23 #include "llvm/ADT/ArrayRef.h"
24 #include "llvm/ADT/SmallVector.h"
30 namespace ento {
namespace objc_retain {
175 return K == Other.K && O == Other.O;
FunctionDecl - An instance of this class is created to represent a function declaration or definition...
static RetEffect MakeOwnedWhenTrackedReceiver()
The argument acts as if has been passed to CFMakeCollectable, which transfers the object to the Garba...
The argument has its reference count decreased by 1.
Indicates that the tracked object is an Objective-C object.
static RetEffect MakeNoRet()
The argument is a pointer to a retain-counted object; on exit, the new value of the pointer is a +1 v...
ObjCMethodDecl - Represents an instance or class method declaration.
static RetEffect MakeNoRetHard()
The argument is treated as if an -autorelease message had been sent to the referenced object...
RetEffect getReturnValue() const
Returns the effect on the return value.
The argument has its reference count increased by 1.
Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified...
bool operator==(const RetEffect &Other) const
ArgEffect
An ArgEffect summarizes the retain count behavior on an argument or receiver to a function or method...
Indicates that the returned value is an owned (+1) symbol.
Indicates that the return value is an owned object when the receiver is also a tracked object...
The argument is treated as potentially escaping, meaning that even when its reference count hits 0 it...
ArrayRef< ArgEffect > getArgs() const
Returns the argument effects for a call.
Indicates that the tracked object is a CF object.
Indicates that the object is not owned and controlled by the Garbage collector.
static CallEffects getEffect(const ObjCMethodDecl *MD)
Return the CallEfect for a given Objective-C method.
ObjKind
Determines the object kind of a tracked object.
static RetEffect MakeOwned(ObjKind o, bool isAllocated=false)
static RetEffect MakeGCNotOwned()
static RetEffect MakeNotOwned(ObjKind o)
ArgEffect getReceiver() const
Returns the effects on the receiver.
The argument has its reference count increased by 1.
The argument has its reference count decreased by 1 to model a transferred bridge cast under ARC...
All typestate tracking of the object ceases.
The argument is treated as if an -dealloc message had been sent to the referenced object...
Performs the combined functionality of DecRef and StopTrackingHard.
RetEffect summarizes a call's retain/release behavior with respect to its return value.
Indicates that the returned value is an owned (+1) symbol and that it should be treated as freshly al...
Performs the combined functionality of DecRefMsg and StopTrackingHard.
The argument is a pointer to a retain-counted object; on exit, the new value of the pointer is a +0 v...
Indicates that no retain count information is tracked for the return value.
ObjKind getObjKind() const
All typestate tracking of the object ceases.
The argument has its reference count decreased by 1.
Encapsulates the retain count semantics on the arguments, return value, and receiver (if any) of a fu...
Indicates that the returned value is an object with retain count semantics but that it is not owned (...
Indicates that the tracked object could be a CF or Objective-C object.