问题描述
如果我的代码正在为一个可能与其当前运行的平台不同的平台生成 LLVM SSA,我如何获得 FLT_MAX
或 FLT_EPSILON
之类的值(或双打相同的值) ,或任何其他浮点宽度)?
我猜一般来说,为我自己的系统获取这些值并使用它们是不正确的。将问题委托给 clang
或 gcc
也是不可接受的解决方案。
在生成 LLVM 代码时,我如何知道要为 FLT_MAX
发出什么值?
解决方法
FLT_MAX
/ FLT_EPSILON
是 C/C++ 特有的实体,与 LLVM 无关。因此,您需要求助于 C/C++ 编译器才能得出它。或者,您需要保留支持平台的列表,并为每个支持的平台硬编码这些值。