【C言語】
if文のthen節とelse節が同じになったらリファクタリング時

■if文のthen節とelse節が同じ

warning: this condition has identical branches
[-Wduplicated-branches]

//gcc -Wduplicated-branches 
//gcc -Wall -Wextra では出ない
#include <stdio.h>
int duplicateBranch(int argc,char *argv[]){
    if(argc == 1){
        puts(argv[0]);  
        return 1;
    }else{ 
        puts(argv[0]);  
        return 1;
    }
}
int main(int argc,char *argv[]){
    duplicateBranch(argc,argv);
}

デバッグで行を追加したり削除したりを繰り返すと、
時々then節とelse節が同じになってしまう事があります。
この警告が出るとそろそろリファクタリング時かもしれません。


■if文の第1条件と第2条件が同じ

warning: duplicated ‘if’ condition
[-Wduplicated-cond]

//gcc -Wduplicated-condで警告
//gcc -Wall -Wextra では出ない
#include <stdio.h>
int duplicatedCond(int argc,char *argv[]){
    if(argc == 1){
        puts(argv[0]);  
        return 1;
    } else if(argc == 1){
        puts(argv[0]);  
        return 1;
    } else{
        return 0 ;
    }
}
int main(int argc,char *argv[0]){
    duplicatedCond(argc,argv);    
}

第1条件と第2条件が同じなので意味がありません。
第2条件が無駄か別の条件が必要だった可能性があります。