Details

    • Type: Language-Specification
    • Status: Active
    • Resolution: Unresolved
    • Labels:
    • Impact:
      Unknown 'null' severity
    • Likelihood:
      Unknown 'null' severity
    • Legacy Key:
      ElseIfWithoutElse

      Description

      Noncompliant Code Example

      if (x == 0) {
        doSomething();
      } else if (x == 1) {
        doSomethingElse();
      }
      

      Compliant Solution

      if (x == 0) {
        doSomething();
      } else if (x == 1) {
        doSomethingElse();
      } else {
        error();
      }
      

      Exceptions

      When all branches of an if-else if end with return, break or throw, the code that comes after the if implicitly behaves as if it was in an else clause. This rule will therefore ignore that case.

      See

      • MISRA C:2004, 14.10 - All if...else if constructs shall be terminated with an else clause.
      • MISRA C++:2008, 6-4-2 - All if...else if constructs shall be terminated with an else clause.
      • MISRA C:2012, 15.7 - All if...else if constructs shall be terminated with an else statement
      • CERT, MSC01-C. - Strive for logical completeness
      • CERT, MSC57-J. - Strive for logical completeness

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              massimo.paladin Massimo PALADIN
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: