diff --git a/src/EventHandler.h b/src/EventHandler.h index d99e3acaad..1ef05213c5 100644 --- a/src/EventHandler.h +++ b/src/EventHandler.h @@ -41,8 +41,12 @@ public: // Returns true if there is at least one local or remote handler. explicit operator bool() const; - void SetUsed() { used = true; } - bool Used() const { return used; } + [[deprecated("Remove in v7.1 - Unused event handlers are now found via UsageAnalyzer.")]] void SetUsed() { + used = true; + } + [[deprecated("Remove in v7.1 - Unused event handlers are now found via UsageAnalyzer.")]] bool Used() const { + return used; + } // Handlers marked as error handlers will not be called recursively to // avoid infinite loops if they trigger a similar error themselves. diff --git a/src/EventRegistry.cc b/src/EventRegistry.cc index 0cddef6dff..297819d8dc 100644 --- a/src/EventRegistry.cc +++ b/src/EventRegistry.cc @@ -21,14 +21,22 @@ EventHandlerPtr EventRegistry::Register(std::string_view name, bool is_from_scri if ( ! is_from_script ) not_only_from_script.insert(std::string(name)); +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + // Remove in v7.1 h->SetUsed(); +#pragma GCC diagnostic pop return h; } h = new EventHandler(std::string(name)); event_registry->Register(h, is_from_script); +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + // Remove in v7.1 h->SetUsed(); +#pragma GCC diagnostic pop return h; } @@ -71,8 +79,11 @@ EventRegistry::string_list EventRegistry::UnusedHandlers() { for ( const auto& entry : handlers ) { EventHandler* v = entry.second.get(); +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" if ( v->GetFunc() && ! v->Used() ) names.push_back(entry.first); +#pragma GCC diagnostic pop } return names; @@ -83,8 +94,11 @@ EventRegistry::string_list EventRegistry::UsedHandlers() { for ( const auto& entry : handlers ) { EventHandler* v = entry.second.get(); +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" if ( v->GetFunc() && v->Used() ) names.push_back(entry.first); +#pragma GCC diagnostic pop } return names; diff --git a/src/Expr.cc b/src/Expr.cc index 82ef6d3217..5c68acd65a 100644 --- a/src/Expr.cc +++ b/src/Expr.cc @@ -402,7 +402,10 @@ NameExpr::NameExpr(IDPtr arg_id, bool const_init) : Expr(EXPR_NAME), id(std::mov EventHandler* h = event_registry->Lookup(id->Name()); if ( h ) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" h->SetUsed(); +#pragma GCC diagnostic pop } // This isn't in-lined to avoid needing to pull in ID.h. @@ -4265,7 +4268,10 @@ EventExpr::EventExpr(const char* arg_name, ListExprPtr arg_args) event_registry->Register(h, true); } +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" h->SetUsed(); +#pragma GCC diagnostic pop handler = h; diff --git a/src/script_opt/CPP/RuntimeInitSupport.cc b/src/script_opt/CPP/RuntimeInitSupport.cc index a4086d12c9..f3ab29295a 100644 --- a/src/script_opt/CPP/RuntimeInitSupport.cc +++ b/src/script_opt/CPP/RuntimeInitSupport.cc @@ -133,7 +133,10 @@ void activate_bodies__CPP(const char* fn, const char* module, bool exported, Typ for ( const auto& e : events ) { auto eh = event_registry->Register(e); +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" eh->SetUsed(); +#pragma GCC diagnostic pop } } @@ -190,7 +193,10 @@ FuncValPtr lookup_func__CPP(string name, int num_bodies, vector has // the semantics for Register explicitly allow it. for ( auto& e : f.events ) { auto eh = event_registry->Register(e); +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" eh->SetUsed(); +#pragma GCC diagnostic pop } } diff --git a/src/script_opt/ScriptOpt.cc b/src/script_opt/ScriptOpt.cc index f1d9864fcc..91db971d19 100644 --- a/src/script_opt/ScriptOpt.cc +++ b/src/script_opt/ScriptOpt.cc @@ -386,7 +386,10 @@ static void use_CPP() { for ( auto& e : s->second.events ) { auto h = event_registry->Register(e); +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" h->SetUsed(); +#pragma GCC diagnostic pop } auto finish = s->second.finish_init_func;