diff options
-rw-r--r-- | include/llvm/ParameterAttributes.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/include/llvm/ParameterAttributes.h b/include/llvm/ParameterAttributes.h index 4c4b0c7582..87311c8de8 100644 --- a/include/llvm/ParameterAttributes.h +++ b/include/llvm/ParameterAttributes.h @@ -70,7 +70,7 @@ class ParamAttrsList : public FoldingSetNode { void operator=(const ParamAttrsList &); // Do not implement ParamAttrsList(const ParamAttrsList &); // Do not implement ParamAttrsList(); // Do not implement - ~ParamAttrsList() {} // Not public! + ~ParamAttrsList(); /// @brief Construct an ParamAttrsList from a ParamAttrsVector explicit ParamAttrsList(const ParamAttrsVector &attrVec) : attrs(attrVec) {} @@ -162,12 +162,15 @@ class ParamAttrsList : public FoldingSetNode { public: void Profile(FoldingSetNodeID &ID) const; void dump() const; + void addRef() const { refCount++; } + void dropRef() const { if (--refCount == 0) delete this; } /// @} /// @name Data /// @{ private: ParamAttrsVector attrs; ///< The list of attributes + mutable unsigned refCount; ///< The number of references to this object /// @} }; |