80   Info(
TClass &o, std::string &&
n, 
bool intentionalDup) : fOwner(&o), fConstantName(
n), fIntentionalDup(intentionalDup)
 
   87   std::string fConstantName;
 
   88   bool fIntentionalDup = 
false;
 
  103      Error(
"TStatusBitsChecker::ConvertBit", 
"In %s the value of %s is %lld which was not produced by BIT macro.",
 
  104            classRef.
GetName(), constantName, constant);
 
  109   double fraction = std::frexp(constant, &backshift);
 
  116   if (backshift < 0 || std::abs(0.5 - fraction) > 0.00001f) {
 
  117      Error(
"TStatusBitsChecker::ConvertBit", 
"In %s the value of %s is %lld which was not produced by BIT macro.",
 
  118            classRef.
GetName(), constantName, constant);
 
  122   if (backshift > 24) {
 
  123      Error(
"TStatusBitsChecker::ConvertBit", 
"In %s the value of %s is %lld (>23) which is ignored by SetBit.",
 
  124            classRef.
GetName(), constantName, constant);
 
  145         bool intentionalDup = exceptionBits && exceptionBits->
GetConstant(constant->GetName());
 
  153               if (reg.fOwner == &classRef) {
 
  161               fRegister[bit].emplace_back(classRef, std::string(constant->GetName()), intentionalDup);
 
  169         TClass *bcl = base->GetClassPointer();
 
  183   RegisterBits(classRef);
 
  186      for (
auto cursor : fRegister) {
 
  187         for (
auto constant : cursor.second) {
 
  188            Printf(
"Bit %3d declared in %s as %s", cursor.first, constant.fOwner->GetName(),
 
  189                   constant.fConstantName.c_str());
 
  194   bool issuedHeader = 
false;
 
  196   for (
auto cursor : fRegister) {
 
  197      unsigned int nDuplicate = 0;
 
  198      for (
auto constant : cursor.second) {
 
  199         if (!constant.fIntentionalDup)
 
  202      if (nDuplicate > 1) {
 
  204            Error(
"TStatusBitsChecker", 
"In %s class hierarchy, there are duplicates bits:", classRef.
GetName());
 
  207         for (
auto constant : cursor.second) {
 
  208            if (!constant.fIntentionalDup) {
 
  209               Error(
"TStatusBitsChecker", 
"   Bit %3d used in %s as %s", cursor.first, constant.fOwner->GetName(),
 
  210                     constant.fConstantName.c_str());
 
  254   std::set<std::string> rootLibs;
 
  255   TList classesDeclFileNotFound;
 
  256   TList classesImplFileNotFound;
 
  259   for (
Int_t i = 0; i < totalNumberOfClasses; i++) {
 
  272      result = 
Check(*classPtr, verbosity) && result;
 
R__EXTERN TClassTable * gClassTable
 
void Info(const char *location, const char *msgfmt,...)
 
void Error(const char *location, const char *msgfmt,...)
 
void Printf(const char *fmt,...)
 
TRangeStaticCast is an adaptater class that allows the typed iteration through a TCollection.
 
std::map< UChar_t, std::list< Info > > fRegister
! Register of bits seen so far.
 
Registry()
Default constructor. Implemented in source file to allow hiding of the Info struct.
 
bool Check(TClass &classRef, bool verbose=false)
Return false and print error messages if there is any unexpected duplicates BIT constant in the class...
 
void RegisterBits(TClass &classRef)
Add to fRegister the Info about the bits in this class and its base classes.
 
~Registry()
Default destructor. Implemented in source file to allow hiding of the Info struct.
 
static bool Check(TClass &classRef, bool verbose=false)
Return false and print error messages if there is any unexpected duplicates BIT constant in the class...
 
static UChar_t ConvertToBit(Long64_t constant, TClass &classRef, const char *constantName)
Figure out which bit the constant has been set from/to.
 
static bool CheckAllClasses(bool verbosity=false)
Return false and print error messages if there is any unexpected duplicates BIT constant in any of th...
 
static char * Next()
Returns next class from sorted class table.
 
TClass instances represent classes, structs and namespaces in the ROOT type system.
 
TList * GetListOfEnums(Bool_t load=kTRUE)
Return a list containing the TEnums of a class.
 
TList * GetListOfBases()
Return list containing the TBaseClass(es) of a class.
 
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name.
 
Long64_t GetValue() const
 
The TEnum class implements the enum type.
 
const TSeqCollection * GetConstants() const
 
const TEnumConstant * GetConstant(const char *name) const
 
virtual TObject * FindObject(const char *name) const
Find an object in this list using its name.
 
virtual const char * GetName() const
Returns name of object.