steakhal added a comment. I think we could settle on something like this:
APSIntType getAPSIntType(QualType T) const { + if (T->isFixedPointType()) + return APSIntType(Ctx.getIntWidth(T), T->isUnsignedFixedPointType()); + // For the purposes of the analysis and constraints, we treat atomics // as their underlying types. if (const AtomicType *AT = T->getAs<AtomicType>()) { T = AT->getValueType(); } assert(T->isIntegralOrEnumerationType() || Loc::isLocType(T)); return APSIntType(Ctx.getIntWidth(T), - !T->isSignedIntegerOrEnumerationType()); + T->isUnsignedIntegerOrEnumerationType()); } Your original test should be enough. In a follow-up patch, you could extend the cases and maybe uncover more crashes. I wouldn't want to block you. It's good enough. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D139759/new/ https://reviews.llvm.org/D139759 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits