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: `# if __FLT_EVAL_METHOD__ == -1` `# define __GLIBC_FLT_EVAL_METHOD 2` .... ``` # if __GLIBC_FLT_EVAL_METHOD == 0 || __GLIBC_FLT_EVAL_METHOD == 16 typedef float float_t; typedef double double_t; # elif __GLIBC_FLT_EVAL_METHOD == 1 typedef double float_t; typedef double double_t; # elif __GLIBC_FLT_EVAL_METHOD == 2 typedef long double float_t; typedef long double double_t; # elif __GLIBC_FLT_EVAL_METHOD == 32 typedef _Float32 float_t; typedef double double_t; ... ``` https://github.com/llvm/llvm-project/pull/137661 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits