我最近尝试使用 clang 和 clang++ 构建一个项目。到目前为止,它仅是使用 GCC 构建的。
我看到的问题之一是以下形式的代码
if (expression)
{
var = var;
}
我认为这样做是为了在代码中留出一个位置,以便在调试版本中放置断点。在优化构建中,代码应该全部被优化掉。
我们使用 -Werror 进行构建,但使用
构建失败错误:将“int”类型变量的值显式分配给自身[-Werror,-Wself-assign]
我可以使用
-Wno-self-assign
或 -Wno-error=self-assign
或本地使用 消除警告/错误
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wself-assign"
var = var;
#pragma clang diagnostic pop
(可能在宏中)。
有人对没有副作用、可用于断点的代码有任何其他建议吗?
我用的就是这个。 它还会发出未使用的警告,使它们很容易找到。
int x = 3;