diff options
author | David Blaikie <dblaikie@gmail.com> | 2015-03-03 21:17:08 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2015-03-03 21:17:08 +0000 |
commit | bb8da4c08fbe6380195c61d134b149a4f4ade037 (patch) | |
tree | a1f321993e16ff8b26483f6de68cefc234e779f3 /llvm/include/llvm/Support/CommandLine.h | |
parent | e29d3963931e0a03100e88a23569eef6e84c4247 (diff) | |
download | bcm5719-llvm-bb8da4c08fbe6380195c61d134b149a4f4ade037.tar.gz bcm5719-llvm-bb8da4c08fbe6380195c61d134b149a4f4ade037.zip |
Remove the explicit SDNodeIterator::operator= in favor of the implicit default
There doesn't seem to be any need to assert that iterator assignment is
between iterators over the same node - if you want to reuse an iterator
variable to iterate another node, that's perfectly acceptable. Just
don't mix comparisons between iterators into disjoint sequences, as
usual.
llvm-svn: 231135
Diffstat (limited to 'llvm/include/llvm/Support/CommandLine.h')
-rw-r--r-- | llvm/include/llvm/Support/CommandLine.h | 36 |
1 files changed, 26 insertions, 10 deletions
diff --git a/llvm/include/llvm/Support/CommandLine.h b/llvm/include/llvm/Support/CommandLine.h index 64c5d963d2c..797b30d33e3 100644 --- a/llvm/include/llvm/Support/CommandLine.h +++ b/llvm/include/llvm/Support/CommandLine.h @@ -352,9 +352,13 @@ struct cat { // Support value comparison outside the template. struct GenericOptionValue { - virtual ~GenericOptionValue() {} + virtual ~GenericOptionValue() = default; virtual bool compare(const GenericOptionValue &V) const = 0; +protected: + GenericOptionValue() = default; + GenericOptionValue(const GenericOptionValue&) = default; + GenericOptionValue &operator=(const GenericOptionValue &) = default; private: virtual void anchor(); }; @@ -386,6 +390,9 @@ struct OptionValueBase : public GenericOptionValue { template <class DataType> class OptionValueCopy : public GenericOptionValue { DataType Value; bool Valid; +protected: + OptionValueCopy(const OptionValueCopy&) = default; + OptionValueCopy &operator=(const OptionValueCopy&) = default; public: OptionValueCopy() : Valid(false) {} @@ -417,6 +424,10 @@ public: template <class DataType> struct OptionValueBase<DataType, false> : OptionValueCopy<DataType> { typedef DataType WrapperType; +protected: + OptionValueBase() = default; + OptionValueBase(const OptionValueBase&) = default; + OptionValueBase &operator=(const OptionValueBase&) = default; }; // Top-level option class. @@ -721,6 +732,8 @@ public: virtual void anchor(); protected: + basic_parser_impl(const basic_parser_impl&) = default; + // A helper for basic_parser::printOptionDiff. void printOptionName(const Option &O, size_t GlobalWidth) const; }; @@ -729,6 +742,9 @@ protected: // a typedef for the provided data type. // template <class DataType> class basic_parser : public basic_parser_impl { +protected: + // Workaround PR22763 + basic_parser(const basic_parser& RHS) : basic_parser_impl(RHS) {} public: basic_parser(Option &O) : basic_parser_impl(O) {} typedef DataType parser_data_type; @@ -738,7 +754,7 @@ public: //-------------------------------------------------- // parser<bool> // -template <> class parser<bool> : public basic_parser<bool> { +template <> class parser<bool> final : public basic_parser<bool> { public: parser(Option &O) : basic_parser(O) {} @@ -765,7 +781,7 @@ EXTERN_TEMPLATE_INSTANTIATION(class basic_parser<bool>); //-------------------------------------------------- // parser<boolOrDefault> -template <> class parser<boolOrDefault> : public basic_parser<boolOrDefault> { +template <> class parser<boolOrDefault> final : public basic_parser<boolOrDefault> { public: parser(Option &O) : basic_parser(O) {} @@ -791,7 +807,7 @@ EXTERN_TEMPLATE_INSTANTIATION(class basic_parser<boolOrDefault>); //-------------------------------------------------- // parser<int> // -template <> class parser<int> : public basic_parser<int> { +template <> class parser<int> final : public basic_parser<int> { public: parser(Option &O) : basic_parser(O) {} @@ -813,7 +829,7 @@ EXTERN_TEMPLATE_INSTANTIATION(class basic_parser<int>); //-------------------------------------------------- // parser<unsigned> // -template <> class parser<unsigned> : public basic_parser<unsigned> { +template <> class parser<unsigned> final : public basic_parser<unsigned> { public: parser(Option &O) : basic_parser(O) {} @@ -836,7 +852,7 @@ EXTERN_TEMPLATE_INSTANTIATION(class basic_parser<unsigned>); // parser<unsigned long long> // template <> -class parser<unsigned long long> : public basic_parser<unsigned long long> { +class parser<unsigned long long> final : public basic_parser<unsigned long long> { public: parser(Option &O) : basic_parser(O) {} @@ -859,7 +875,7 @@ EXTERN_TEMPLATE_INSTANTIATION(class basic_parser<unsigned long long>); //-------------------------------------------------- // parser<double> // -template <> class parser<double> : public basic_parser<double> { +template <> class parser<double> final : public basic_parser<double> { public: parser(Option &O) : basic_parser(O) {} @@ -881,7 +897,7 @@ EXTERN_TEMPLATE_INSTANTIATION(class basic_parser<double>); //-------------------------------------------------- // parser<float> // -template <> class parser<float> : public basic_parser<float> { +template <> class parser<float> final : public basic_parser<float> { public: parser(Option &O) : basic_parser(O) {} @@ -903,7 +919,7 @@ EXTERN_TEMPLATE_INSTANTIATION(class basic_parser<float>); //-------------------------------------------------- // parser<std::string> // -template <> class parser<std::string> : public basic_parser<std::string> { +template <> class parser<std::string> final : public basic_parser<std::string> { public: parser(Option &O) : basic_parser(O) {} @@ -928,7 +944,7 @@ EXTERN_TEMPLATE_INSTANTIATION(class basic_parser<std::string>); //-------------------------------------------------- // parser<char> // -template <> class parser<char> : public basic_parser<char> { +template <> class parser<char> final : public basic_parser<char> { public: parser(Option &O) : basic_parser(O) {} |