Как отключить анализ мертвого кода для препроцессора? - PullRequest
0 голосов
/ 27 февраля 2019

Как отключить анализ мертвого кода для препроцессора?Наш проект обладает некоторой макро-магией, которую Android Studio не понимает.Код там, где его не должно быть, выделен серым цветом.

#if SOMETHING
// Here code is gray, but it shouldn't be.
#else
....
#endif

Еще один убедительный пример - это.Он не выделяется серым цветом только для __arch64__, но проект компилируется для всех архитектур.

#if defined(__x86_64__)
        .. // x64 specific
#elif defined(__i386__)
        .. // RIP: x86_64 specific
#elif defined(__aarch64__)
        .. // etc..
#endif

Еще один убедительный пример - этот трюк.У нас есть файл unity_build.cpp, в который включены все переходные единицы.В каждой единице перехода есть магия препроцессора.

#ifndef MYPROJ_UNITY_BUILD
... // Transition unit code.
#endif

А в unity_build.cpp

#ifdef MYPROJ_UNITY_BUILD
    #undef MYPROJ_UNITY_BUILD
#else
    #define MYPROJ_UNITY_BUILD 1
#endif
#include "first-transition-unit.cpp"
#include "second-transition-unit.cpp"

Android Studio выделяет код в каждой единице перехода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...