9#ifndef LLVM_CLANG_SCALABLESTATICANALYSISFRAMEWORK_ANALYSES_UNSAFEBUFFERUSAGE_UNSAFEBUFFERUSAGE_H
10#define LLVM_CLANG_SCALABLESTATICANALYSISFRAMEWORK_ANALYSES_UNSAFEBUFFERUSAGE_UNSAFEBUFFERUSAGE_H
36class EntityPointerLevel {
38 unsigned PointerLevel;
42 EntityPointerLevel(
EntityId Entity,
unsigned PointerLevel)
43 : Entity(Entity), PointerLevel(PointerLevel) {}
46 EntityId getEntity()
const {
return Entity; }
47 unsigned getPointerLevel()
const {
return PointerLevel; }
50 return std::tie(Entity, PointerLevel) ==
55 return !(*
this ==
Other);
59 return std::tie(Entity, PointerLevel) <
68 const EntityPointerLevel &R)
const {
72 return L < R.getEntity();
75 return L.getEntity() < R;
81 std::set<EntityPointerLevel, EntityPointerLevel::Comparator>;
95 return SummaryName{
"UnsafeBufferUsage"};
99 return UnsafeBuffers == Other;
std::set< EntityPointerLevel, EntityPointerLevel::Comparator > EntityPointerLevelSet
SummaryName getSummaryName() const override
friend class UnsafeBufferUsageTUSummaryExtractor
bool operator==(const EntityPointerLevelSet &Other) const
Lightweight opaque handle representing an entity in an EntityIdTable.
bool operator==(const CallGraphNode::CallRecord &LHS, const CallGraphNode::CallRecord &RHS)
bool operator<(DeclarationName LHS, DeclarationName RHS)
Ordering on two declaration names.
bool operator!=(CanQual< T > x, CanQual< U > y)
@ Other
Other implicit parameter.
An EntityPointerLevel represents a level of the declared pointer/array type of an entity.
bool operator()(const EntityPointerLevel &L, const EntityPointerLevel &R) const
bool operator()(const EntityPointerLevel &L, const EntityId &R) const
bool operator()(const EntityId &L, const EntityPointerLevel &R) const