Menu

ネストしたif文への警告

Anonymous
2012-09-29
2012-11-08
  • Anonymous

    Anonymous - 2012-09-29

    AdLintの警告で,行番号がおかしいケースに遭遇しました.
    具体的には次のソースコードです.

    int screenshot(const int a, const int b, const int c)
    {
      int code = 0;
      if (a == 1)
      {
        if (b == 1)
        {
          code = 0;
        }
        else if (c == 1)
        {
          code = 0;
        }
      }
      else
      {
        code = 1;
      }
      return code;
    }
    

    これをAdLint 2.4.0で解析すると,変数aを判定する4行目について警告W1069が出ますが,これは変数bを判定する6行目の間違いではないかと思います.

    W,../ifelseif.c,4,3,W1069,この `if-else-if' 文には、末尾の `else' 節がありません。
    
     
    • Yutaka Yanoh

      Yutaka Yanoh - 2012-11-08

      ご報告ありがとうございます。

      申し訳ありません。AdLint の不具合でした。

      サンプルコードのように、完結していない if-else-if 文の並びが完結した if-else 文の内部に現れる場合、ご報告いただいた現象が発生することが分かりました。

      本件の対策を盛り込み、本日 AdLint 2.6.10 としてリリースしました。

      お手数おかけしますが、AdLint 2.6.10 にアップデートしていただき、再度ご確認をお願いいたします。

       

Anonymous
Anonymous

Add attachments
Cancel