> -unsigned Function::getIntrinsicID() const { > +unsigned Function::getIntrinsicID(bool noAssert) const { > const ValueName *ValName = this->getValueName(); > unsigned Len = ValName->getKeyLength(); > const char *Name = ValName->getKeyData(); > > - if (Len < 5 || Name[4] != '.' || Name[0] != 'l' || Name[1] != 'l' > + if (Len <= 5 || Name[4] != '.' || Name[0] != 'l' || Name[1] != 'l'
I don't think this is right. It will incorrectly return 0 for "llvm." even if noAssert is false. -Chris > || Name[2] != 'v' || Name[3] != 'm') > return 0; // All intrinsics start with 'llvm.' > > - assert(Len != 5 && "'llvm.' is an invalid intrinsic name!"); > + assert((Len != 5 || noAssert) && "'llvm.' is an invalid > intrinsic name!"); > > #define GET_FUNCTION_RECOGNIZER > #include "llvm/Intrinsics.gen" > #undef GET_FUNCTION_RECOGNIZER > + assert(noAssert && "Invalid LLVM intrinsic name"); > return 0; > } > > > > > _______________________________________________ > llvm-commits mailing list > llvm-commits@cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits