clang 22.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 |
|
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.
|
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.
|
inline |
Definition at line 62 of file MapLattice.h.
|
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.
|
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.