首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何捕捉GCC-6中的“复制者-秃鹰”

如何捕捉GCC-6中的“复制者-秃鹰”
EN

Stack Overflow用户
提问于 2016-05-17 17:50:04
回答 1查看 765关注 0票数 3

就像标题说的那样,对于那些已经知道从GCC-6开始的人来说,您可以使用下面的这个标志-Wduplicated-condif语句中捕获一个副本:

代码语言:javascript
复制
#include <stdio.h>

int main(void){
    int a = 5;

    if( a == 5){
        printf("First  condition is True, A = %d\n", a);
    }else if( a == 5 ){
        printf("Second condition is True, A = %d\n", a);
    }
}

产出如下:

代码语言:javascript
复制
program.c:8:17: warning: duplicated ‘if’ condition [-Wduplicated-cond]
     }else if( a == 5 ){
               ~~^~~~
program.c:6:11: note: previously used here
     if( a == 5){
         ~~^~~~

现在我知道以下几点:

else if( (a > 4) && (a < 6) )

不一样

else if( a == 5 )

但是,如果a == 5的话,我会检查相同的条件。

我的问题是,有没有机会抓住(避免)这种重复?

EN

回答 1

Stack Overflow用户

发布于 2016-05-18 06:40:23

-Wduplicated-cond确实抓住了这个案子。你必须显式地启用它。

main.cpp:在函数'int ()‘中: main.cpp:8:11:警告:复制的'if‘条件-重复-cond }如果( == 5 ){ ^~ main.cpp:6:5:注意:以前在这里使用过 如果(a == 5){

它最初是-Wall,但现在已经不是因为PR67819

考虑到新的警告当前中断了引导*,而且我看不出如何解决从引导失败派生的PR67819,因此我将从-Wall中移出--复制-cond,暂时跳过其中一个测试。我还在恢复genemit.c中的黑客攻击。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37283128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档