boostorg / boostorg/detail

GCC suggest-override warnings

Open
#18 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
12
Forks
51
PR merge metrics
No merged PRs in 30d

Description

Complete list of warnings when Boost 1.72 is built with GCC 7.5 with `-Wsuggest-override` added to `cxxflags`:

./boost/detail/basic_pointerbuf.hpp:123:1: warning: ‘boost::detail::basic_pointerbuf::pos_type boost::detail::basic_pointerbuf::seekpos(boost::detail::basic_pointerbuf::pos_type, std::ios_base::openmode) [with charT = char; BufferT = std::__cxx11::basic_stringbuf; boost::detail::basic_pointerbuf::pos_type = std::fpos<__mbstate_t>; std::ios_base::openmode = std::_Ios_Openmode]’ can be marked override [-Wsuggest-override]

./boost/detail/basic_pointerbuf.hpp:69:1: warning: ‘BufferT* boost::detail::basic_pointerbuf::setbuf(boost::detail::basic_pointerbuf::char_type*, boost::detail::basic_pointerbuf::streamsize) [with charT = char; BufferT = std::__cxx11::basic_stringbuf; boost::detail::basic_pointerbuf::char_type = char; boost::detail::basic_pointerbuf::streamsize = long int]’ can be marked override [-Wsuggest-override]
./boost/detail/basic_pointerbuf.hpp:77:1: warning: ‘boost::detail::basic_pointerbuf::pos_type boost::detail::basic_pointerbuf::seekoff(boost::detail::basic_pointerbuf::off_type, std::ios_base::seekdir, std::ios_base::openmode) [with charT = char; BufferT = std::__cxx11::basic_stringbuf; boost::detail::basic_pointerbuf::pos_type = std::fpos<__mbstate_t>; boost::detail::basic_pointerbuf::off_type = long int; std::ios_base::seekdir = std::_Ios_Seekdir; std::ios_base::openmode = std::_Ios_Openmode]’ can be marked override [-Wsuggest-override]
./boost/detail/utf8_codecvt_facet.hpp:119:39: warning: ‘virtual std::codecvt_base::result boost::archive::detail::utf8_codecvt_facet::do_in(mbstate_t&, const char*, const char*, const char*&, wchar_t*, wchar_t*, wchar_t*&) const’ can be marked override [-Wsuggest-override]
./boost/detail/utf8_codecvt_facet.hpp:119:39: warning: ‘virtual std::codecvt_base::result boost::filesystem::detail::utf8_codecvt_facet::do_in(mbstate_t&, const char*, const char*, const char*&, wchar_t*, wchar_t*, wchar_t*&) const’ can be marked override [-Wsuggest-override]
./boost/detail/utf8_codecvt_facet.hpp:119:39: warning: ‘virtual std::codecvt_base::result boost::program_options::detail::utf8_codecvt_facet::do_in(mbstate_t&, const char*, const char*, const char*&, wchar_t*, wchar_t*, wchar_t*&) const’ can be marked override [-Wsuggest-override]
./boost/detail/utf8_codecvt_facet.hpp:129:39: warning: ‘virtual std::codecvt_base::result boost::archive::detail::utf8_codecvt_facet::do_out(mbstate_t&, const wchar_t*, const wchar_t*, const wchar_t*&, char*, char*, char*&) const’ can be marked override [-Wsuggest-override]
./boost/detail/utf8_codecvt_facet.hpp:129:39: warning: ‘virtual std::codecvt_base::result boost::filesystem::detail::utf8_codecvt_facet::do_out(mbstate_t&, const wchar_t*, const wchar_t*, const wchar_t*&, char*, char*, char*&) const’ can be marked override [-Wsuggest-override]
./boost/detail/utf8_codecvt_facet.hpp:129:39: warning: ‘virtual std::codecvt_base::result boost::program_options::detail::utf8_codecvt_facet::do_out(mbstate_t&, const wchar_t*, const wchar_t*, const wchar_t*&, char*, char*, char*&) const’ can be marked override [-Wsuggest-override]
./boost/detail/utf8_codecvt_facet.hpp:159:18: warning: ‘virtual bool boost::archive::detail::utf8_codecvt_facet::do_always_noconv() const’ can be marked override [-Wsuggest-override]
./boost/detail/utf8_codecvt_facet.hpp:159:18: warning: ‘virtual bool boost::filesystem::detail::utf8_codecvt_facet::do_always_noconv() const’ can be marked override [-Wsuggest-override]
./boost/detail/utf8_codecvt_facet.hpp:159:18: warning: ‘virtual bool boost::program_options::detail::utf8_codecvt_facet::do_always_noconv() const’ can be marked override [-Wsuggest-override]
./boost/detail/utf8_codecvt_facet.hpp:164:39: warning: ‘virtual std::codecvt_base::result boost::archive::detail::utf8_codecvt_facet::do_unshift(mbstate_t&, char*, char*, char*&) const’ can be marked override [-Wsuggest-override]
./boost/detail/utf8_codecvt_facet.hpp:164:39: warning: ‘virtual std::codecvt_base::result boost::filesystem::detail::utf8_codecvt_facet::do_unshift(mbstate_t&, char*, char*, char*&) const’ can be marked override [-Wsuggest-override]
./boost/detail/utf8_codecvt_facet.hpp:164:39: warning: ‘virtual std::codecvt_base::result boost::program_options::detail::utf8_codecvt_facet::do_unshift(mbstate_t&, char*, char*, char*&) const’ can be marked override [-Wsuggest-override]
./boost/detail/utf8_codecvt_facet.hpp:174:17: warning: ‘virtual int boost::archive::detail::utf8_codecvt_facet::do_encoding() const’ can be marked override [-Wsuggest-override]
./boost/detail/utf8_codecvt_facet.hpp:174:17: warning: ‘virtual int boost::filesystem::detail::utf8_codecvt_facet::do_encoding() const’ can be marked override [-Wsuggest-override]
./boost/detail/utf8_codecvt_facet.hpp:174:17: warning: ‘virtual int boost::program_options::detail::utf8_codecvt_facet::do_encoding() const’ can be marked override [-Wsuggest-override]
./boost/detail/utf8_codecvt_facet.hpp:181:17: warning: ‘virtual int boost::archive::detail::utf8_codecvt_facet::do_length(mbstate_t&, const char*, const char*, std::size_t) const’ can be marked override [-Wsuggest-override]
./boost/detail/utf8_codecvt_facet.hpp:181:17: warning: ‘virtual int boost::filesystem::detail::utf8_codecvt_facet::do_length(mbstate_t&, const char*, const char*, std::size_t) const’ can be marked override [-Wsuggest-override]
./boost/detail/utf8_codecvt_facet.hpp:181:17: warning: ‘virtual int boost::program_options::detail::utf8_codecvt_facet::do_length(mbstate_t&, const char*, const char*, std::size_t) const’ can be marked override [-Wsuggest-override]
./boost/detail/utf8_codecvt_facet.hpp:212:17: warning: ‘virtual int boost::archive::detail::utf8_codecvt_facet::do_max_length() const’ can be marked override [-Wsuggest-override]
./boost/detail/utf8_codecvt_facet.hpp:212:17: warning: ‘virtual int boost::filesystem::detail::utf8_codecvt_facet::do_max_length() const’ can be marked override [-Wsuggest-override]
./boost/detail/utf8_codecvt_facet.hpp:212:17: warning: ‘virtual int boost::program_options::detail::utf8_codecvt_facet::do_max_length() const’ can be marked override [-Wsuggest-override]

Related: boostorg/config#253

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with boost/detail/basic_pointerbuf.hpp and boost/detail/utf8_codecvt_facet.hpp, using the reported GCC 7.5 build with -Wsuggest-override to reproduce the warnings. Inspect the listed virtual methods and verify that the warnings are resolved without changing behavior. Confirm the affected Boost detail components still build with the same compiler flags.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.