|
clang 22.0.0git
|
Information about why an origin is live at a program point. More...
#include "clang/Analysis/Analyses/LifetimeSafety/LiveOrigins.h"
Public Member Functions | |
| LivenessInfo () | |
| LivenessInfo (const UseFact *UF, LivenessKind K) | |
| bool | operator== (const LivenessInfo &Other) const |
| bool | operator!= (const LivenessInfo &Other) const |
| void | Profile (llvm::FoldingSetNodeID &IDBuilder) const |
Public Attributes | |
| const UseFact * | CausingUseFact |
| The use that makes the origin live. | |
| LivenessKind | Kind |
| The kind of liveness of the origin. | |
Information about why an origin is live at a program point.
Definition at line 41 of file LiveOrigins.h.
|
inline |
Definition at line 59 of file LiveOrigins.h.
References CausingUseFact, clang::lifetimes::internal::Dead, Kind, and clang::nullptr.
Referenced by operator!=(), and operator==().
|
inline |
Definition at line 60 of file LiveOrigins.h.
References CausingUseFact, and Kind.
|
inline |
Definition at line 66 of file LiveOrigins.h.
References LivenessInfo(), and clang::Other.
|
inline |
Definition at line 63 of file LiveOrigins.h.
References CausingUseFact, Kind, LivenessInfo(), and clang::Other.
|
inline |
Definition at line 68 of file LiveOrigins.h.
References CausingUseFact, and Kind.
| const UseFact* clang::lifetimes::internal::LivenessInfo::CausingUseFact |
The use that makes the origin live.
If liveness is propagated from multiple uses along different paths, this will point to the use appearing earlier in the translation unit. This is 'null' when the origin is not live.
Definition at line 46 of file LiveOrigins.h.
Referenced by LivenessInfo(), LivenessInfo(), operator==(), and Profile().
| LivenessKind clang::lifetimes::internal::LivenessInfo::Kind |
The kind of liveness of the origin.
Must: The origin is live on all control-flow paths from the current point to the function's exit (i.e. the current point is dominated by a set of uses). Maybe: indicates it is live on some but not all paths.
This determines the diagnostic's confidence level. Must-be-alive at expiration implies a definite use-after-free, while Maybe-be-alive suggests a potential one on some paths.
Definition at line 57 of file LiveOrigins.h.
Referenced by LivenessInfo(), LivenessInfo(), operator==(), and Profile().