clang 20.0.0git
|
A lattice that maps keys to individual lattice elements. More...
#include "clang/Analysis/FlowSensitive/MapLattice.h"
Public Types | |
using | key_type = Key |
using | mapped_type = ElementLattice |
using | value_type = typename Container::value_type |
using | iterator = typename Container::iterator |
using | const_iterator = typename Container::const_iterator |
Public Member Functions | |
MapLattice ()=default | |
MapLattice (Container C) | |
std::pair< iterator, bool > | insert (const std::pair< const key_type, mapped_type > &P) |
std::pair< iterator, bool > | insert (std::pair< const key_type, mapped_type > &&P) |
unsigned | size () const |
bool | empty () const |
iterator | begin () |
iterator | end () |
const_iterator | begin () const |
const_iterator | end () const |
bool | contains (const key_type &K) const |
iterator | find (const key_type &K) |
const_iterator | find (const key_type &K) const |
mapped_type & | operator[] (const key_type &K) |
LatticeJoinEffect | join (const MapLattice &Other) |
If an entry exists in one map but not the other, the missing entry is treated as implicitly mapping to bottom . | |
Static Public Member Functions | |
static MapLattice | bottom () |
Friends | |
bool | operator== (const MapLattice &LHS, const MapLattice &RHS) |
bool | operator!= (const MapLattice &LHS, const MapLattice &RHS) |
A lattice that maps keys to individual lattice elements.
When instantiated with an ElementLattice
that is a bounded semi-lattice, MapLattice
is itself a bounded semi-lattice, so long as the user limits themselves to a finite number of keys. In that case, top
is (implicitly), the map containing all valid keys mapped to top
of ElementLattice
.
Requirements on ElementLattice
:
Definition at line 39 of file MapLattice.h.
using clang::dataflow::MapLattice< Key, ElementLattice >::const_iterator = typename Container::const_iterator |
Definition at line 48 of file MapLattice.h.
using clang::dataflow::MapLattice< Key, ElementLattice >::iterator = typename Container::iterator |
Definition at line 47 of file MapLattice.h.
using clang::dataflow::MapLattice< Key, ElementLattice >::key_type = Key |
Definition at line 44 of file MapLattice.h.
using clang::dataflow::MapLattice< Key, ElementLattice >::mapped_type = ElementLattice |
Definition at line 45 of file MapLattice.h.
using clang::dataflow::MapLattice< Key, ElementLattice >::value_type = typename Container::value_type |
Definition at line 46 of file MapLattice.h.
|
default |
Referenced by clang::dataflow::MapLattice< Key, ElementLattice >::bottom().
|
inlineexplicit |
Definition at line 52 of file MapLattice.h.
|
inline |
Definition at line 69 of file MapLattice.h.
|
inline |
Definition at line 71 of file MapLattice.h.
|
inlinestatic |
Definition at line 55 of file MapLattice.h.
References clang::dataflow::MapLattice< Key, ElementLattice >::MapLattice().
|
inline |
Definition at line 85 of file MapLattice.h.
|
inline |
Definition at line 67 of file MapLattice.h.
|
inline |
Definition at line 70 of file MapLattice.h.
|
inline |
Definition at line 72 of file MapLattice.h.
|
inline |
Definition at line 87 of file MapLattice.h.
|
inline |
Definition at line 88 of file MapLattice.h.
|
inline |
Definition at line 58 of file MapLattice.h.
References P.
|
inline |
Definition at line 62 of file MapLattice.h.
References P.
|
inline |
If an entry exists in one map but not the other, the missing entry is treated as implicitly mapping to bottom
.
So, the joined map contains the entry as it was in the source map.
Definition at line 95 of file MapLattice.h.
References clang::dataflow::Changed, clang::Other, and clang::dataflow::Unchanged.
|
inline |
Definition at line 90 of file MapLattice.h.
|
inline |
Definition at line 66 of file MapLattice.h.
|
friend |
Definition at line 81 of file MapLattice.h.
|
friend |
Definition at line 77 of file MapLattice.h.