aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/ParameterAttributes.h5
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
/// @}
};