【发布时间】:2015-01-12 04:53:58
【问题描述】:
有谁知道如何让 Xcode 6 中的 Apple LLVM 编译器在函数参数与原型不匹配时发出警告?使用默认设置,以下内容不会产生警告:
void test(int *x)
{
printf("%d",*x);
}
void caller()
{
int x = 5;
test(x);
}
我在设置中尝试了“需要函数原型”,但是当函数没有与声明不同的原型时,它只会抱怨。无论我是否有单独的原型,都会出现上述问题。它似乎也不关心参数的数量是否与声明或原型匹配。另外,我尝试了 -Wstrict-prototypes 但没有效果。这几乎看起来像一个错误。
更新:我刚刚在不同的 Mac 上使用不同的 Xcode 项目进行了尝试,但我收到了预期的警告。所以,另一个系统出现了问题。我会将其归咎于该项目,但我在 2 个不相关的项目中看到了相同的行为。这两个项目都是几年前创建的,并且已经通过 Xcode 的各种迭代进行了自动升级,但适用的项目确实如此。有问题的系统正在运行 Yosemite,而没有问题的系统正在运行 Mavericks。相同的 Xcode 6.1.1。有问题的系统现在不在手边,否则我会比较 2 个全新的相同项目的行为。
【问题讨论】:
-
-Wint-conversion? -
-Wall默认启用-Wconversion。