Lines Matching refs:Checks
192 // We usually don't need overflow checks for binops with widened operands.
248 void EmitBinOpCheck(ArrayRef<std::pair<Value *, SanitizerMask>> Checks,
757 /// Create a binary op that checks for overflow.
1167 // Each of these checks needs to return 'false' when an issue was detected.
1169 llvm::SmallVector<std::pair<llvm::Value *, SanitizerMask>, 2> Checks;
1170 // So we can 'and' all the checks together, and still get 'false',
1171 // if at least one of the checks detected an issue.
1175 Checks.emplace_back(Check.second);
1185 Checks.emplace_back(Check.second);
1193 // EmitCheck() will 'and' all the checks together.
1194 CGF.EmitCheck(Checks, SanitizerHandler::ImplicitConversion, StaticArgs,
1524 /// operation). The check passes if all values in \p Checks (which are \c i1),
1527 ArrayRef<std::pair<Value *, SanitizerMask>> Checks, const BinOpInfo &Info) {
1570 CGF.EmitCheck(Checks, Check, StaticData, DynamicData);
1759 // TODO: Should we emit bounds checks with SanitizerKind::ArrayBounds?
3147 SmallVector<std::pair<llvm::Value *, SanitizerMask>, 2> Checks;
3150 Checks.push_back(std::make_pair(Builder.CreateICmpNE(Ops.RHS, Zero),
3168 Checks.push_back(
3172 if (Checks.size() > 0)
3173 EmitBinOpCheck(Checks, Ops);
3521 // Checks that (a) the operation is fusable, and (b) -ffp-contract=on.
3868 SmallVector<std::pair<Value *, SanitizerMask>, 2> Checks;
3873 Checks.push_back(
3908 Checks.push_back(std::make_pair(
3913 assert(!Checks.empty());
3914 EmitBinOpCheck(Checks, Ops);
5052 llvm::SmallVector<std::pair<llvm::Value *, SanitizerMask>, 2> Checks;
5072 Checks.emplace_back(Valid, SanitizerKind::PointerOverflow);
5108 Checks.emplace_back(ValidGEP, SanitizerKind::PointerOverflow);
5111 assert(!Checks.empty() && "Should have produced some checks.");
5116 EmitCheck(Checks, SanitizerHandler::PointerOverflow, StaticArgs, DynamicArgs);