Hi! Various plugin tests fail with --enable-checking=release, because the num_events and num_threads methods of simple_diagnostic_path are only used inside of #if CHECKING_P code inside of GCC proper and then tested inside of some plugin tests. So, with --enable-checking=yes they are compiled into cc1/cc1plus etc. binaries and plugins can call those, but with --enable-checking=release they are optimized away (at least for LTO builds).
As they are trivial, the following patch just defines them inline, so that the plugin tests get their definitions directly and don't have to rely on cc1/cc1plus etc. exporting those. Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? 2025-02-26 Jakub Jelinek <ja...@redhat.com> PR testsuite/116143 * simple-diagnostic-path.h (simple_diagnostic_path::num_events): Define inline. (simple_diagnostic_path::num_threads): Likewise. * simple-diagnostic-path.cc (simple_diagnostic_path::num_events): Remove out of line definition. (simple_diagnostic_path::num_threads): Likewise. --- gcc/simple-diagnostic-path.h.jj 2025-01-02 11:23:37.876218670 +0100 +++ gcc/simple-diagnostic-path.h 2025-02-05 15:29:32.882855368 +0100 @@ -100,9 +100,9 @@ class simple_diagnostic_path : public di public: simple_diagnostic_path (pretty_printer *event_pp); - unsigned num_events () const final override; + unsigned num_events () const final override { return m_events.length (); } const diagnostic_event & get_event (int idx) const final override; - unsigned num_threads () const final override; + unsigned num_threads () const final override { return m_threads.length (); } const diagnostic_thread & get_thread (diagnostic_thread_id_t) const final override; bool --- gcc/simple-diagnostic-path.cc.jj 2025-01-02 11:23:19.409476476 +0100 +++ gcc/simple-diagnostic-path.cc 2025-02-05 15:29:59.185492553 +0100 @@ -41,15 +41,6 @@ simple_diagnostic_path::simple_diagnosti add_thread ("main"); } -/* Implementation of diagnostic_path::num_events vfunc for - simple_diagnostic_path: simply get the number of events in the vec. */ - -unsigned -simple_diagnostic_path::num_events () const -{ - return m_events.length (); -} - /* Implementation of diagnostic_path::get_event vfunc for simple_diagnostic_path: simply return the event in the vec. */ @@ -59,12 +50,6 @@ simple_diagnostic_path::get_event (int i return *m_events[idx]; } -unsigned -simple_diagnostic_path::num_threads () const -{ - return m_threads.length (); -} - const diagnostic_thread & simple_diagnostic_path::get_thread (diagnostic_thread_id_t idx) const { Jakub