OverflowingBinaryOperator
имеет для этой цели предикаты hasNoUnsignedWrap
и hasNoSignedWrap
.
Более конкретно, учитывая некоторую инструкцию ii
:
if (OverflowingBinaryOperator *op = dyn_cast<OverflowingBinaryOperator>(ii)) {
if (op->hasNoUnsignedWrap())
errs() << " has nuw\n";
else if (op->hasNoSignedWrap())
errs() << " has nsw\n";
}
}