Find something wrong in this description?  Help us fix it! 
Arche MoonNoir Arche Arche Bardoo MoonNoir Arche Bardoo Arche MoonNoir Bardoo Bardoo Bardoo MoonNoir MoonNoir Bardoo Arche q7ITSwZ Arche MoonNoir Arche Arche Bardoo MoonNoir Arche Bardoo Arche MoonNoir Bardoo Bardoo Bardoo MoonNoir MoonNoir Bardoo Arche q7ITSwZ Arche MoonNoir Arche Arche Bardoo MoonNoir Arche Bardoo Arche MoonNoir Bardoo Bardoo Bardoo MoonNoir MoonNoir Bardoo Arche q7ITSwZ Arche MoonNoir Arche Arche Bardoo MoonNoir Arche Bardoo Arche MoonNoir Bardoo Bardoo Bardoo MoonNoir MoonNoir Bardoo Arche q7ITSwZ Arche MoonNoir Arche Arche Bardoo MoonNoir Arche Bardoo Arche MoonNoir Bardoo Bardoo Bardoo MoonNoir MoonNoir Bardoo Arche q7ITSwZ Arche MoonNoir Arche Arche Bardoo MoonNoir Arche Bardoo Arche MoonNoir Bardoo Bardoo Bardoo MoonNoir MoonNoir Bardoo Arche q7ITSwZ

Why does PolySpace 5.1.1 (R2008a) show a red non-terminating loop (NTL) check in my code?

Arche MoonNoir Arche Arche Bardoo MoonNoir Arche Bardoo Arche MoonNoir Bardoo Bardoo Bardoo MoonNoir MoonNoir Bardoo Arche q7ITSwZ

Asked by MathWorks Support Team
on 27 Jun 2009

My C code looks as follows. When I run a PolySpace verification, the "for" keyword that is mentioned in the comments is marked red with a message that the loop never terminates. Also, I get another red check for a underflow error. I am using the option "-detect-unsigned-overflows".

int main () {
    int intC;
    unsigned int uintA, uintB, i = 0;
    uintA = 20;
    uintB = 30;
    intC = 10;
    // The following keyword "for" is marked with
    // a red NTL check.
    for(i; i < 10; i++) {
      // Subtraction marked with a red UNFL check
      // for a possible underflow.
      if ((uintA - uintB) < uintC) { // UNFL: 20 - 30
        //...
      }
    }
}

Tags

No tags entered yet.

Bardoo MoonNoir Bardoo MoonNoir Arche Arche Bardoo Bardoo Arche MoonNoir MoonNoir Bardoo Arche Arche MoonNoir Arche Bardoo
Leopard Red NappaBlack Rock Lizard Black Calvin Winter Edona Shiny PatentNatural Haircalf Klein 7p4vA

1 Answer

Answer by MathWorks Support Team MoonNoir Bardoo Arche Bardoo Bardoo Bardoo Arche MoonNoir Bardoo Arche Arche Arche MoonNoir Arche Bardoo MoonNoir MoonNoir on 27 Jun 2009
  Accepted Answer

The red NTL check is caused by the red underflow check (UNFL) within the loop. Correcting the code that causes the UNFL check or removing the option "-detect-unsigned-overflows" will cause the NTL check to disappear.

  0 Comments

Sign in to comment.