# Extra Clang Tools 18.1.8 documentation

## clang-tidy - cppcoreguidelines-avoid-do-while

# cppcoreguidelines-avoid-do-while

Warns when using `do-while` loops. They are less readable than plain `while` loops, since the termination condition is at the end and the condition is not checked prior to the first iteration. This can lead to subtle bugs.

This check implements ES.75 from the C++ Core Guidelines.

Examples:

    int x;
    do {
        std::cin >> x;
        // ...
    } while (x < 0);

## Options

IgnoreMacros

  Ignore the check when analyzing macros. This is useful for safely defining function-like macros:

      #define FOO_BAR(x) \
      do { \
        foo(x); \
        bar(x); \
      } while(0)

  Defaults to false.