From: NAKAMURA Takumi Date: Wed, 4 Mar 2015 16:24:40 +0000 (+0000) Subject: Revert r231221, "Devirtualize ~parser by making it protected in base classes and... X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=commitdiff_plain;h=b74289c83d79fed99bdd234fcf6d0bb50edcb2df Revert r231221, "Devirtualize ~parser by making it protected in base classes and making derived classes final" It broke seflhosting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231254 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Support/CommandLine.h b/include/llvm/Support/CommandLine.h index 572cd9512e4..5bfb221d8fb 100644 --- a/include/llvm/Support/CommandLine.h +++ b/include/llvm/Support/CommandLine.h @@ -714,6 +714,7 @@ class basic_parser_impl { // non-template implementation of basic_parser public: basic_parser_impl(Option &O) {} + virtual ~basic_parser_impl() {} enum ValueExpected getValueExpectedFlagDefault() const { return ValueRequired; @@ -742,7 +743,6 @@ public: virtual void anchor(); protected: - ~basic_parser_impl() = default; // A helper for basic_parser::printOptionDiff. void printOptionName(const Option &O, size_t GlobalWidth) const; }; @@ -755,15 +755,12 @@ public: basic_parser(Option &O) : basic_parser_impl(O) {} typedef DataType parser_data_type; typedef OptionValue OptVal; - -protected: - ~basic_parser() = default; }; //-------------------------------------------------- // parser // -template <> class parser final : public basic_parser { +template <> class parser : public basic_parser { public: parser(Option &O) : basic_parser(O) {} @@ -790,8 +787,7 @@ EXTERN_TEMPLATE_INSTANTIATION(class basic_parser); //-------------------------------------------------- // parser -template <> -class parser final : public basic_parser { +template <> class parser : public basic_parser { public: parser(Option &O) : basic_parser(O) {} @@ -817,7 +813,7 @@ EXTERN_TEMPLATE_INSTANTIATION(class basic_parser); //-------------------------------------------------- // parser // -template <> class parser final : public basic_parser { +template <> class parser : public basic_parser { public: parser(Option &O) : basic_parser(O) {} @@ -839,7 +835,7 @@ EXTERN_TEMPLATE_INSTANTIATION(class basic_parser); //-------------------------------------------------- // parser // -template <> class parser final : public basic_parser { +template <> class parser : public basic_parser { public: parser(Option &O) : basic_parser(O) {} @@ -862,8 +858,7 @@ EXTERN_TEMPLATE_INSTANTIATION(class basic_parser); // parser // template <> -class parser final - : public basic_parser { +class parser : public basic_parser { public: parser(Option &O) : basic_parser(O) {} @@ -886,7 +881,7 @@ EXTERN_TEMPLATE_INSTANTIATION(class basic_parser); //-------------------------------------------------- // parser // -template <> class parser final : public basic_parser { +template <> class parser : public basic_parser { public: parser(Option &O) : basic_parser(O) {} @@ -908,7 +903,7 @@ EXTERN_TEMPLATE_INSTANTIATION(class basic_parser); //-------------------------------------------------- // parser // -template <> class parser final : public basic_parser { +template <> class parser : public basic_parser { public: parser(Option &O) : basic_parser(O) {} @@ -930,7 +925,7 @@ EXTERN_TEMPLATE_INSTANTIATION(class basic_parser); //-------------------------------------------------- // parser // -template <> class parser final : public basic_parser { +template <> class parser : public basic_parser { public: parser(Option &O) : basic_parser(O) {} @@ -955,7 +950,7 @@ EXTERN_TEMPLATE_INSTANTIATION(class basic_parser); //-------------------------------------------------- // parser // -template <> class parser final : public basic_parser { +template <> class parser : public basic_parser { public: parser(Option &O) : basic_parser(O) {}