[clang] [clang] Remove FEM_Indeterminable (PR #137661)

Zahira Ammarguellat via cfe-commits cfe-commits at lists.llvm.org
Wed Apr 30 06:36:52 PDT 2025


zahiraam wrote:

> > > > > > @zahiraam @AaronBallman a different option would be to add a signed vs unsigned storage option to the `OPTION` and `BENIGN_ENUM_LANGOPT` macros so we can store negative enumerations safely
> > > > > 
> > > > > 
> > > > > I think I would prefer this solution. We need to be able to set the evaluation method to a value (-1) when it can't be known from the target or when the value of `ffp-eval-method` is inconsistent with the target.
> > > > 
> > > > 
> > > > Could we shift all the values, so `FEM_Indeterminable` is `0`?
> > > 
> > > 
> > > I don't think so. In practice on Linux systems, they use `__FLT_EVAL_METHOD__` to control the type of `float_t` and `double_t`. Things like this:
> > 
> > 
> > Oh shoot, I forgot this was tied to `__FLT_EVAL_METHOD__`
> 
> As far as I can make out this isn't an automatic mapping, so we can always just set it correctly, but more importantly, I cannot see how it is not currently broken - loading FEM_Indeterminate should not (in principle) be sign extending.
> 
> How do I get clang into the FEM_Indeterminate mode? As far as I can make out, we currently have a single test for `__FLT_EVAL_METHOD__ == -1` and it does not get run/checked

See issue https://github.com/llvm/llvm-project/issues/137600

https://github.com/llvm/llvm-project/pull/137661


More information about the cfe-commits mailing list