# Extra Clang Tools 8 documentation

## clang-tidy - bugprone-too-small-loop-variable

# bugprone-too-small-loop-variable

Detects those `for` loops that have a loop variable with a “too small” type which means this type can’t represent all values which are part of the iteration range.

    int main() {
      long size = 294967296l;
      for (short i = 0; i < size; ++i) {}
    }

This `for` loop is an infinite loop because the `short` type can’t represent all values in the `[0..size]` interval.

In a real use case size means a container’s size which depends on the user input.

    int doSomething(const std::vector& items) {
      for (short i = 0; i < items.size(); ++i) {}
    }

This algorithm works for small amount of objects, but will lead to freeze for a a larger user input.