[libcxx] Disable -Wnon-virtual-dtor warning in <locale>
Summary: Normally people won't see warnings in libc++ headers, but if they compile with "-Wsystem-headers -Wnon-virtual-dtor" they will likely see issues in <locale>. In the libc++ implementation `time_get' has a private base class, `__time_get_c_storage`, with virtual methods but a non-virtual destructor. `time_get` itself can safely be used as a polymorphic base class because it inherits a virtual destructor from `locale::facet`. To placate the compiler we change `__time_get_c_storage`'s destructor from public to protected, ensuring that it will never be deleted polymorphically. Reviewers: mclow.lists Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D11670 git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@245333 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
af961ed8cf
commit
85d45f6c0d
@ -1888,6 +1888,9 @@ protected:
|
||||
virtual const string_type& __r() const;
|
||||
virtual const string_type& __x() const;
|
||||
virtual const string_type& __X() const;
|
||||
|
||||
_LIBCPP_ALWAYS_INLINE
|
||||
~__time_get_c_storage() {}
|
||||
};
|
||||
|
||||
template <class _CharT, class _InputIterator = istreambuf_iterator<_CharT> >
|
||||
|
Loading…
Reference in New Issue
Block a user