clang 17.0.0git
|
A storage location which is subdivided into smaller storage locations that can be traced independently by abstract interpretation. More...
#include "clang/Analysis/FlowSensitive/StorageLocation.h"
Public Member Functions | |
AggregateStorageLocation (QualType Type) | |
AggregateStorageLocation (QualType Type, llvm::DenseMap< const ValueDecl *, StorageLocation * > Children) | |
StorageLocation & | getChild (const ValueDecl &D) const |
Returns the child storage location for D . | |
![]() | |
StorageLocation (Kind LocKind, QualType Type) | |
StorageLocation (const StorageLocation &)=delete | |
StorageLocation & | operator= (const StorageLocation &)=delete |
virtual | ~StorageLocation ()=default |
Kind | getKind () const |
QualType | getType () const |
Static Public Member Functions | |
static bool | classof (const StorageLocation *Loc) |
Additional Inherited Members | |
![]() | |
enum class | Kind { Scalar , Aggregate } |
A storage location which is subdivided into smaller storage locations that can be traced independently by abstract interpretation.
For example: a struct with public members. The child map is flat, so when used for a struct or class type, all accessible members of base struct and class types are directly accesible as children of this location. FIXME: Currently, the storage location of unions is modelled the same way as that of structs or classes. Eventually, we need to change this modelling so that all of the members of a given union have the same storage location.
Definition at line 71 of file StorageLocation.h.
|
inlineexplicit |
Definition at line 73 of file StorageLocation.h.
|
inline |
Definition at line 77 of file StorageLocation.h.
|
inlinestatic |
Definition at line 82 of file StorageLocation.h.
References clang::dataflow::StorageLocation::Aggregate, and clang::dataflow::StorageLocation::getKind().
|
inline |
Returns the child storage location for D
.
Definition at line 87 of file StorageLocation.h.