diff options
Diffstat (limited to 'llvm/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h')
-rw-r--r-- | llvm/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h b/llvm/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h index c354f6c3559c..c9fadd727e88 100644 --- a/llvm/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h +++ b/llvm/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h @@ -48,11 +48,13 @@ private: /// Pointer to a pooled string representing a symbol name. class SymbolStringPtr { + friend class OrcV2CAPIHelper; friend class SymbolStringPool; friend struct DenseMapInfo<SymbolStringPtr>; public: SymbolStringPtr() = default; + SymbolStringPtr(std::nullptr_t) {} SymbolStringPtr(const SymbolStringPtr &Other) : S(Other.S) { if (isRealPoolEntry(S)) @@ -85,6 +87,8 @@ public: --S->getValue(); } + explicit operator bool() const { return S; } + StringRef operator*() const { return S->first(); } friend bool operator==(const SymbolStringPtr &LHS, @@ -103,7 +107,8 @@ public: } private: - using PoolEntryPtr = SymbolStringPool::PoolMapEntry *; + using PoolEntry = SymbolStringPool::PoolMapEntry; + using PoolEntryPtr = PoolEntry *; SymbolStringPtr(SymbolStringPool::PoolMapEntry *S) : S(S) { |