Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add werror=suggest-override #11180

Merged
merged 3 commits into from
Jul 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ ifdef HOST_WINDOWS
GLOBAL_LDFLAGS += -Wl,--export-all-symbols
endif

GLOBAL_CXXFLAGS += -g -Wall -Wdeprecated-copy -Wignored-qualifiers -Wimplicit-fallthrough -Werror=unused-result -include $(buildprefix)config.h -std=c++2a -I src
GLOBAL_CXXFLAGS += -g -Wall -Wdeprecated-copy -Wignored-qualifiers -Wimplicit-fallthrough -Werror=unused-result -Werror=suggest-override -include $(buildprefix)config.h -std=c++2a -I src

# Include the main lib, causing rules to be defined

Expand Down
10 changes: 4 additions & 6 deletions build-utils-meson/diagnostics/meson.build
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
add_project_arguments(
'-Wno-deprecated-declarations',
'-Wimplicit-fallthrough',
'-Wdeprecated-copy',
'-Werror=suggest-override',
'-Werror=switch',
'-Werror=switch-enum',
'-Werror=unused-result',
'-Wdeprecated-copy',
'-Wignored-qualifiers',
# Enable assertions in libstdc++ by default. Harmless on libc++. Benchmarked
# at ~1% overhead in `nix search`.
#
'-Wimplicit-fallthrough',
'-Wno-deprecated-declarations',
language : 'cpp',
)
26 changes: 13 additions & 13 deletions src/libexpr/json-to-value.cc
Original file line number Diff line number Diff line change
Expand Up @@ -80,86 +80,86 @@ class JSONSax : nlohmann::json_sax<json> {
public:
JSONSax(EvalState & state, Value & v) : state(state), rs(new JSONState(&v)) {};

bool null()
bool null() override
{
rs->value(state).mkNull();
rs->add();
return true;
}

bool boolean(bool val)
bool boolean(bool val) override
{
rs->value(state).mkBool(val);
rs->add();
return true;
}

bool number_integer(number_integer_t val)
bool number_integer(number_integer_t val) override
{
rs->value(state).mkInt(val);
rs->add();
return true;
}

bool number_unsigned(number_unsigned_t val)
bool number_unsigned(number_unsigned_t val) override
{
rs->value(state).mkInt(val);
rs->add();
return true;
}

bool number_float(number_float_t val, const string_t & s)
bool number_float(number_float_t val, const string_t & s) override
{
rs->value(state).mkFloat(val);
rs->add();
return true;
}

bool string(string_t & val)
bool string(string_t & val) override
{
rs->value(state).mkString(val);
rs->add();
return true;
}

#if NLOHMANN_JSON_VERSION_MAJOR >= 3 && NLOHMANN_JSON_VERSION_MINOR >= 8
bool binary(binary_t&)
bool binary(binary_t&) override
{
// This function ought to be unreachable
assert(false);
return true;
}
#endif

bool start_object(std::size_t len)
bool start_object(std::size_t len) override
{
rs = std::make_unique<JSONObjectState>(std::move(rs));
return true;
}

bool key(string_t & name)
bool key(string_t & name) override
{
dynamic_cast<JSONObjectState*>(rs.get())->key(name, state);
return true;
}

bool end_object() {
bool end_object() override {
rs = rs->resolve(state);
rs->add();
return true;
}

bool end_array() {
bool end_array() override {
return end_object();
}

bool start_array(size_t len) {
bool start_array(size_t len) override {
rs = std::make_unique<JSONListState>(std::move(rs),
len != std::numeric_limits<size_t>::max() ? len : 128);
return true;
}

bool parse_error(std::size_t, const std::string&, const nlohmann::detail::exception& ex) {
bool parse_error(std::size_t, const std::string&, const nlohmann::detail::exception& ex) override {
throw JSONParseError("%s", ex.what());
}
};
Expand Down
4 changes: 2 additions & 2 deletions src/libexpr/nixexpr.hh
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ struct ExprInheritFrom : ExprVar
this->fromWith = nullptr;
}

void bindVars(EvalState & es, const std::shared_ptr<const StaticEnv> & env);
void bindVars(EvalState & es, const std::shared_ptr<const StaticEnv> & env) override;
};

struct ExprSelect : Expr
Expand All @@ -203,7 +203,7 @@ struct ExprSelect : Expr
*
* @param[out] v The attribute set that should contain the last attribute name (if it exists).
* @return The last attribute name in `attrPath`
*
*
* @note This does *not* evaluate the final attribute, and does not fail if that's the only attribute that does not exist.
*/
Symbol evalExceptFinalSelect(EvalState & state, Env & env, Value & attrs);
Expand Down
2 changes: 1 addition & 1 deletion src/libstore/daemon.cc
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ struct TunnelSink : Sink
{
Sink & to;
TunnelSink(Sink & to) : to(to) { }
void operator () (std::string_view data)
void operator () (std::string_view data) override
{
to << STDERR_WRITE;
writeString(data, to);
Expand Down
2 changes: 1 addition & 1 deletion src/libstore/unix/build/local-derivation-goal.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1258,7 +1258,7 @@ bool LocalDerivationGoal::isAllowed(const DerivedPath & req)
struct RestrictedStoreConfig : virtual LocalFSStoreConfig
{
using LocalFSStoreConfig::LocalFSStoreConfig;
const std::string name() { return "Restricted Store"; }
const std::string name() override { return "Restricted Store"; }
};

/* A wrapper around LocalStore that only allows building/querying of
Expand Down
4 changes: 2 additions & 2 deletions src/libutil/serialise.cc
Original file line number Diff line number Diff line change
Expand Up @@ -190,11 +190,11 @@ struct VirtualStackAllocator {
class DefaultStackAllocator : public StackAllocator {
boost::coroutines2::default_stack stack;

boost::context::stack_context allocate() {
boost::context::stack_context allocate() override {
return stack.allocate();
}

void deallocate(boost::context::stack_context sctx) {
void deallocate(boost::context::stack_context sctx) override {
stack.deallocate(sctx);
}
};
Expand Down
6 changes: 3 additions & 3 deletions src/libutil/serialise.hh
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ struct TeeSink : Sink
{
Sink & sink1, & sink2;
TeeSink(Sink & sink1, Sink & sink2) : sink1(sink1), sink2(sink2) { }
virtual void operator () (std::string_view data)
virtual void operator () (std::string_view data) override
{
sink1(data);
sink2(data);
Expand All @@ -221,7 +221,7 @@ struct TeeSource : Source
Sink & sink;
TeeSource(Source & orig, Sink & sink)
: orig(orig), sink(sink) { }
size_t read(char * data, size_t len)
size_t read(char * data, size_t len) override
{
size_t n = orig.read(data, len);
sink({data, n});
Expand All @@ -238,7 +238,7 @@ struct SizedSource : Source
size_t remain;
SizedSource(Source & orig, size_t size)
: orig(orig), remain(size) { }
size_t read(char * data, size_t len)
size_t read(char * data, size_t len) override
{
if (this->remain <= 0) {
throw EndOfFile("sized: unexpected end-of-file");
Expand Down
19 changes: 10 additions & 9 deletions src/perl/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -23,21 +23,22 @@ nix_perl_conf.set('PACKAGE_VERSION', meson.project_version())
# set error arguments
#-------------------------------------------------
error_args = [
'-Werror=unused-result',
'-Wdeprecated-copy',
'-Wdeprecated-declarations',
'-Werror=suggest-override',
'-Werror=unused-result',
'-Wignored-qualifiers',
'-Wno-pedantic',
'-Wno-non-virtual-dtor',
'-Wno-unused-parameter',
'-Wno-variadic-macros',
'-Wno-duplicate-decl-specifier',
'-Wno-literal-suffix',
'-Wno-missing-field-initializers',
'-Wno-non-virtual-dtor',
'-Wno-pedantic',
'-Wno-pointer-bool-conversion',
'-Wno-reserved-user-defined-literal',
'-Wno-unknown-warning-option',
'-Wno-unused-parameter',
'-Wno-unused-variable',
'-Wno-literal-suffix',
'-Wno-reserved-user-defined-literal',
'-Wno-duplicate-decl-specifier',
'-Wno-pointer-bool-conversion',
'-Wno-variadic-macros',
]

add_project_arguments(
Expand Down
Loading