diff --git a/llvm/include/llvm/ADT/SmallSet.h b/llvm/include/llvm/ADT/SmallSet.h index eb434bcb71717..802a257aaf6ad 100644 --- a/llvm/include/llvm/ADT/SmallSet.h +++ b/llvm/include/llvm/ADT/SmallSet.h @@ -269,7 +269,28 @@ class SmallSet { /// If this set is of pointer values, transparently switch over to using /// SmallPtrSet for performance. template -class SmallSet : public SmallPtrSet {}; +class SmallSet : public SmallPtrSet { + using Base = SmallPtrSet; + +public: + // LLVM_DEPRECATED placed between "template" and "class" above won't work for + // some reason. Put a deprecation message on constructors instead. + LLVM_DEPRECATED("Use SmallPtrSet instead", "SmallPtrSet") + SmallSet() = default; + LLVM_DEPRECATED("Use SmallPtrSet instead", "SmallPtrSet") + SmallSet(const SmallSet &) = default; + LLVM_DEPRECATED("Use SmallPtrSet instead", "SmallPtrSet") + SmallSet(SmallSet &&) = default; + template + LLVM_DEPRECATED("Use SmallPtrSet instead", "SmallPtrSet") + SmallSet(IterT Begin, IterT End) : Base(Begin, End) {} + template + LLVM_DEPRECATED("Use SmallPtrSet instead", "SmallPtrSet") + SmallSet(llvm::from_range_t, Range &&R) + : Base(llvm::from_range, std::move(R)) {} + LLVM_DEPRECATED("Use SmallPtrSet instead", "SmallPtrSet") + SmallSet(std::initializer_list L) : Base(L) {} +}; /// Equality comparison for SmallSet. ///