.. title:: 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: .. code-block:: c++ #ifdef FOO #ifdef FOO // inner ifdef is considered redundant void f(); #endif #endif * Same for `#ifndef` .. `#endif` pairs. For example: .. code-block:: c++ #ifndef FOO #ifndef FOO // inner ifndef is considered redundant void f(); #endif #endif * `#ifndef` inside an `#ifdef` with the same condition: .. code-block:: c++ #ifdef FOO #ifndef FOO // inner ifndef is considered redundant void f(); #endif #endif * `#ifdef` inside an `#ifndef` with the same condition: .. code-block:: c++ #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: .. code-block:: c++ #define FOO 4 #if FOO == 4 #if FOO == 4 // inner if is considered redundant void f(); #endif #endif