================ @@ -141,6 +141,16 @@ static void diagnoseNonConstexprBuiltin(InterpState &S, CodePtr OpPC, S.CCEDiag(Loc, diag::note_invalid_subexpr_in_const_expr); } +// Same implementation as Compiler::getRoundingMode. +static llvm::RoundingMode getRoundingMode(const InterpState &S, const Expr *E) { + FPOptions FPO = E->getFPFeaturesInEffect(S.Ctx.getLangOpts()); + + if (FPO.getRoundingMode() == llvm::RoundingMode::Dynamic) + return llvm::RoundingMode::NearestTiesToEven; + + return FPO.getRoundingMode(); +} + ---------------- ckoparkar wrote:
I realized I can just call `getRoundingMode` from `Interp.h`. I'll update my patch and add some tests as well. https://github.com/llvm/llvm-project/pull/152919 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits