Serosh-commits wrote: > I haven't looked at the results for numerical correctness, so far I've just > been making sure that expressions are non-constexpr when they produce signals. > > The AST-based constexpr evaluator does such a bad job of producing this > behavior that I haven't noted all of its failures; it looks to me that the > helper method you expect to cause bailout on exception behavior doesn't > actually do that. So for the most part, the comments are focused on the > bytecode interpreter, which catches some but not all of the cases.
i too think that the AST evaluator's `checkFloatingPointResult` is wrong there . It has this early return before chceking ```cpp if (Info.InConstantContext) return true; ``` which completely skips checking `St` for exceptions which is the only problem i am seeing which i fixed it in my helper I actually originally added this exact same early return to my new `CheckFloatResult` helper in `InterpBuiltin.cpp` just to be consistent with the AST evaluator, but thanks to Hubert he pointed pointed it out(https://github.com/llvm/llvm-project/pull/194327#discussion_r3290705989) that it defeats the whole purpose of the function (we *need* to catch exceptions when evaluating constant expression i think wee can simply just move the hard exception check above that early return in `ExprConstant.cpp` let me know what u think about this ?? https://github.com/llvm/llvm-project/pull/194327 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
