[sisyphus] liblensfun vs g++

Victor Forsyuk force на altlinux.org
Чт Авг 20 18:48:20 MSD 2009


2009/8/20 Dmitry V. Levin <ldv на altlinux.org>

> 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.
>
>
Спасибо за патч! Приложу и, естественно, отправлю.

На мой взгляд эту проблему стоило бы донести и до gcc'шников. Даже если
формально это нельзя назвать регрессией, то в любом случае это добротнейшая
грабля, особенно в свете обнаруженной Сергеем Власовым неконсистентности
поведения в зависимости от количества констант...
----------- следующая часть -----------
Вложение в формате HTML было удалено...
URL: <http://lists.altlinux.org/pipermail/sisyphus/attachments/20090820/49d5cdb3/attachment.html>


Подробная информация о списке рассылки Sisyphus