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





Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.