ICC особенно агрессивен с встраиванием, и во многих случаях, когда функция объявляется как inline
(и особенно, если она __forceinline
'd на MSVC), она на самом деле выдает ошибку на этапе компиляции, если она невозможно вставить его (очевидно, в зависимости от настроек компиляции вашего проекта).
Тем не менее, честно говоря, честно, единственный способ, которым вы сможете сделать то, что вам нужно, это подключить отладчик, приостановить приложение в MSVC, переключиться в представление ASM и выполнить поиск вызовов для функции, имя которой вы ищете. (Вы говорите, C / C ++, это имеет значение, которое, как и в случае с C ++, вам придется искать искаженное имя). Если вы найдете вызовы функции (call _myFunc
), она не будет встроена.
В противном случае, если вы знаете, где искать, просмотрите ASM, чтобы найти функцию caller , и проверьте ее источник, чтобы убедиться, что вызов callee либо есть, либо нет не там.
Это может звучать довольно устрашающе, но на самом деле это достаточно просто и всего на расстоянии ctrl+f
.