AuxElement - Make destructor virtual
In !78022 (merged), I'm trying to cast an AuxElement to a xAOD::MuonSegment object. However, compilation fails because polymorphism is not enabled:
In file included from /media/slowSSD/jojungge/DataAlignment_v2/athena/MuonSpectrometer/MuonValidation/MuonTesterTree/MuonTesterTree/GenericDecorBranch.h:57,
from /media/slowSSD/jojungge/DataAlignment_v2/athena/MuonSpectrometer/MuonValidation/MuonTesterTree/MuonTesterTree/MuonTesterTreeDict.h:13,
from /media/slowSSD/jojungge/DataAlignment_v2/athena/MuonSpectrometer/MuonPhaseII/MuonValidation/MuonPRDTestR4/MuonPRDTestR4/TesterModuleBase.h:10,
from /media/slowSSD/jojungge/DataAlignment_v2/athena/MuonSpectrometer/MuonPhaseII/MuonValidation/MuonPRDTestR4/MuonPRDTestR4/SimHitTester.h:7,
from /media/slowSSD/jojungge/DataAlignment_v2/athena/MuonSpectrometer/MuonPhaseII/MuonValidation/MuonPRDTestR4/src/MuonHitTesterAlg.cxx:7:
/media/slowSSD/jojungge/DataAlignment_v2/athena/MuonSpectrometer/MuonValidation/MuonTesterTree/MuonTesterTree/GenericDecorBranch.icc: In instantiation of 'void MuonVal::GenericAuxEleBranch<AuxType, dType>::push_back(const SG::AuxElement*) [with AuxType = xAOD::MuonSegment_v1; dType = short unsigned int]':
/media/slowSSD/jojungge/DataAlignment_v2/athena/MuonSpectrometer/MuonValidation/MuonTesterTree/MuonTesterTree/GenericDecorBranch.icc:30:14: required from here
/media/slowSSD/jojungge/DataAlignment_v2/athena/MuonSpectrometer/MuonValidation/MuonTesterTree/MuonTesterTree/GenericDecorBranch.icc:31:38: error: cannot 'dynamic_cast' 'p' (of type 'const class SG::AuxElement*') to type 'const class xAOD::MuonSegment_v1*' (source type is not polymorphic)
31 | const AuxType* castedP = dynamic_cast<const AuxType*>(p);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [MuonSpectrometer/MuonPhaseII/MuonValidation/MuonPRDTestR4/CMakeFiles/MuonPRDTestR4.dir/build.make:90: MuonSpectrometer/MuonPhaseII/MuonValidation/MuonPRDTestR4/CMakeFiles/MuonPRDTestR4.dir/src/MuonHitTesterAlg.cxx.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:3738: MuonSpectrometer/MuonPhaseII/MuonValidation/MuonPRDTestR4/CMakeFiles/MuonPRDTestR4.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 96%] Linking CXX shared module ../../../x86_64-el9-gcc13-opt/lib/libMuonPRDTest.so
Detaching debug info of libMuonPRDTest.so into libMuonPRDTest.so.dbg
[ 96%] Built target MuonPRDTest
Make therefore the destructor virtual.
Requesting approval of @ssnyder