https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117672
--- Comment #3 from R. Diez <rdiez-2006 at rd10 dot de> ---
This is an example:
class test_class
{
public:
// The mere existence of this empty constructor is enough
// to make GCC generate an empty _GLOBAL__sub_I_main block
// and to keep all unused virtual methods.
test_class ( void )
{
}
virtual int unused1 ( void ) { return 1; }
virtual int unused2 ( void ) { return 2; }
virtual int unused3 ( void ) { return 3; }
virtual int unused4 ( void ) { return 4; }
virtual int unused5 ( void ) { return 5; }
};
static test_class test_instance;
int main ( void )
{
}
You can play with it here: https://godbolt.org/z/EPco45T3f