Skip to content
Snippets Groups Projects

RootUtils: Workaround for pyroot __pair_base issue.

Merged Scott Snyder requested to merge ssnyder/athena:typepatch.RootUtils-20190327 into master

In gcc8, std::pair derives from the (empty) base class std::__pair_base. When ROOT makes dictionaries, it likes to strip std:: qualifiers. When it then tries to look up cling information for a TClass, if the lookup fails, it tries again with the std:: reinserted for all STL classes (with TClassEdit::InsertStd()). However, that doesn't work for __pair_base, because it's not a class that ROOT knows about. The upshot is that we see errors like:

Error in TClass::LoadClassInfo: no interpreter information for class __pair_base<unsigned int,string> is available even though it has a TClass initialization routine.

We work around this by hooking into ROOT's TClass creation. If we see a std::pair class, we erase the base class information from its TClass.

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
Please register or sign in to reply
Loading