Что может быть причиной этого, если условие пропускается, даже если условие внутри — Истина?

Я отлаживаю проект C ++ (Плагин для Adobe InDesign) для ошибки в OSX 10.9.5 с использованием XCode 4.6.2. Я столкнулся с очень странной проблемой в следующем коде: оператор if в следующем коде пропускается, даже если условие внутри него является действительным / истинным. Когда элемент управления достигает этого условия if, значение insertSinglePageElement равно 1, insertSinglePageElement является переменной bool16.
Он должен возвращать true, но код внутри блока if пропускается.

Кроме того, Xcode позволяет вам видеть соответствующий код сборки? Если да, то как?

bool16 insertSinglePageElement = kTrue;
...
//code
...
if(insertSinglePageElement == kTrue)
{
msgs = insertPageElementToPage(pe, pageData->grid, &pageName, pageData->presentationID, IDPageElementMap, true);

} else {
//Else Block

введите описание изображения здесь

введите описание изображения здесь

На изображениях выше показано значение переменной и отладчик, показывающий пропуск кода во втором изображении на один шаг от первого.

0

Решение

Причиной этой проблемы было то, что блок ИСТИНА, который XCode4.6.2 (использующий Apple LLVM 4.2) показал как истинный, был неверным. После включения оптимизации, X-Code начал показывать ее как False.

0

Другие решения