gpt4 book ai didi

c++ - 如何确定可以传递给编译器选项的最小值和最大值?

转载 作者:行者123 更新时间:2023-11-28 05:33:21 24 4
gpt4 key购买 nike

有没有办法确定我可以传递给编译器选项的最小值和最大值。例如:

-fconstexpr-depth=n

-falign-jumps[=n]

n 的最小值和最大值是多少?或者更好的办法是知道所有中间值的整个值范围是多少。

我知道这可以而且将取决于我要编译的代码。但我想对于一些编译器选项,最大和最小输入值可以独立于要编译的代码来确定。

最佳答案

假设您询问的是 GCC(它来自标签)。

以这种方式在 gcc/c-family/c.opt 中定义的 fconstexpr-depth 选项:

fconstexpr-depth=
C++ ObjC++ Joined RejectNegative UInteger Var(max_constexpr_depth) Init(512)
-fconstexpr-depth=<number> Specify maximum constexpr recursion depth.

您可以立即看到:GCC 选项描述没有明确的值限制。只是默认值 (512) 和此选项值绑定(bind)到的 max_constexpr_depth 变量。让我们在源代码中查找它...

static bool
push_cx_call_context (tree call)
{
..... some code .....
if (call_stack.length () > (unsigned) max_constexpr_depth)
return false;
return true;
}

如您所见,该变量的使用没有任何限制检查。所以正确答案:根本没有限制。您可能超过 5000 或 5000000 没人关心,每个人都假设您知道自己在做什么。

当然,没有限制,编译器无法向您报告它们。

关于c++ - 如何确定可以传递给编译器选项的最小值和最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38897509/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com