On Wed, Aug 19, 2009 at 12:33:21PM +0400, Damir wrote: > On Wed, Aug 19, 2009 at 12:27:44PM +0400, Sergey Vlasov wrote: > > On Wed, Aug 19, 2009 at 04:41:07AM +0400, Dmitry V. Levin wrote: > > > Поведение g++ изменилось между 4.3 и 4.4; если это не regression, то, > > > видимо, надо патчить liblensfun (см. патч). > > > > Что интересно - такое поведение компилятора наблюдается только для > > enum с двумя константами; при добавлении третьей константы проверки на > > недопустимое для enum значение не исчезают. > > Скорее всего, там switch заменяется на просто if else. Это всё понятно. Непонятно, это g++ regression или вольная трактовка undefined behavior? В любом случае рекомендую Виктору приложить патч на liblensfun и отправить его upstream. -- ldv