From d2a1610dcea39c03fae86e93ae27bbbc603a2bd1 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Mon, 11 Apr 2011 16:31:11 +0200 Subject: [PATCH] QmlDebug: Fix crash on Mac OS X Work-around for what seems to be an optimization bug in i686-apple-darwin9-gcc-4.2.1 . Without it, for i = 1 i - 1 != 0 . Task-number: QTCREATORBUG-4107 Reviewed-by: hjk --- src/libs/utils/crumblepath.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/libs/utils/crumblepath.cpp b/src/libs/utils/crumblepath.cpp index 712c573847..a9c68c19c1 100644 --- a/src/libs/utils/crumblepath.cpp +++ b/src/libs/utils/crumblepath.cpp @@ -363,8 +363,13 @@ void CrumblePath::resizeButtons() nextElementPosition.rx() += button->width() - ArrowBorderSize; button->show(); - if (i > 0) - button->stackUnder(d->m_buttons[i - 1]); + if (i > 0) { + // work-around for a compiler / optimization bug in i686-apple-darwin9-g + // without volatile, the optimizer (-O2) seems to do the wrong thing (tm + // the d->m_buttons array with an invalid argument. + volatile int prevIndex = i - 1; + button->stackUnder(d->m_buttons[prevIndex]); + } } } } -- 2.11.0