# Extra Clang Tools 21.1.8 documentation

## clang-tidy - readability-redundant-preprocessor

# readability-redundant-preprocessor

Finds potentially redundant preprocessor directives. At the moment the following cases are detected:

- #ifdef .. #endif pairs which are nested inside an outer pair with the same condition. For example:

    #ifdef FOO
    #ifdef FOO // inner ifdef is considered redundant
    void f();
    #endif
    #endif

- Same for #ifndef .. #endif pairs. For example:

    #ifndef FOO
    #ifndef FOO // inner ifndef is considered redundant
    void f();
    #endif
    #endif

- #ifndef inside an #ifdef with the same condition:

    #ifdef FOO
    #ifndef FOO // inner ifndef is considered redundant
    void f();
    #endif
    #endif

- #ifdef inside an #ifndef with the same condition:

    #ifndef FOO
    #ifdef FOO // inner ifdef is considered redundant
    void f();
    #endif
    #endif

- #if .. #endif pairs which are nested inside an outer pair with the same condition. For example:

    #define FOO 4
    #if FOO == 4
    #if FOO == 4 // inner if is considered redundant
    void f();
    #endif
    #endif