Вы не указываете, какой компилятор / прекомпилятор вы используете, но у большинства есть возможность сохранить результат препроцессора. Первое, что я проверю, будет то, что там генерируется.
По общему признанию, я бы предпочел сохранить код, который выглядит примерно так:
someFunc(value)
{
switch(value){
case 1:
case 2:
case 3:
return TRUE;
#ifdef SOMEMACRO
// Special build for SOMEMACRO Inc.
case 4:
case 5:
return TRUE;
#endif
default:
return FALSE;
}
}