================ @@ -13846,6 +13880,37 @@ Sema::CheckReturnValExpr(Expr *RetValExp, QualType lhsType, CheckPPCMMAType(RetValExp->getType(), ReturnLoc); } +/// Diagnose comparison to NAN or INFINITY in fast math modes. +/// The comparison to NaN or INFINITY is always false in +/// fast modes: float evaluation will not result in inf or nan. +void Sema::CheckInfNaNFloatComparison(SourceLocation Loc, Expr *LHS, Expr *RHS, + BinaryOperatorKind Opcode) { + Expr *LeftExprSansParen = LHS->IgnoreParenImpCasts(); + Expr *RightExprSansParen = RHS->IgnoreParenImpCasts(); + + FPOptions FPO = LHS->getFPFeaturesInEffect(getLangOpts()); + bool NoHonorNaNs = FPO.getNoHonorNaNs(); + bool NoHonorInfs = FPO.getNoHonorInfs(); + llvm::APFloat Value(0.0); + bool IsConstant; + IsConstant = !LHS->isValueDependent() && ---------------- zahiraam wrote:
Done. https://github.com/llvm/llvm-project/pull/76873 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits