Bug with compiled code using TClass / dictionaries in Root 6.24

I’m creating a TTree with a class that inherits from a base class, without a problem. However, in the same program a couple lines later,

TClass branchClass(c->GetBranch("event")->GetClassName());
if (branchClass.InheritsFrom("dicttest::EventDis") {....}

fails with

Warning in <TClass::TClass>: no dictionary for class dicttest::EventPythia is available
Error in <TObjArray::At>: index 0 out of bounds (size: 1, this: 0x127faed70)
Error in <TObjArray::At>: index 0 out of bounds (size: 1, this: 0x127faed70)

It works fine interactively but not when compiled. I have a demonstrator that’s pretty minimal here:

This behavior is new to root 6.24, tested on Apple M1 and Ubuntu. The same code worked fine in root 6.20.04; I haven’t been able to test other versions.

I also opened an issue at Root 6.24: New bug with compiled code using TClass / dictionaries · Issue #8250 · root-project/root · GitHub but this may be the better forum to check whether I am doing something wrong.


Please read tips for efficient and successful posting and posting code

ROOT Version: 6.24
Platform: Both M1 and Ubuntu
Compiler: clang, gcc


Just checked, it also breaks in 6.22.08

OK let’s follow this in Github then - no point in keeping both that and this forum post in sync :slight_smile:

Makes sense. Thanks for taking it on, Axel!

Update: After further testing, it works in 6.20.04 and breaks in in 6.20.06 and thereafter. I’ll look into the particular release notes for more information.