[sisyphus] Странности при переходе объединении двух целых в вещественное на x86_64

Alexey Rusakov ktirf на altlinux.org
Пт Авг 7 13:17:57 MSD 2009


В Птн, 07/08/2009 в 12:02 +0300, Roman Savochenko пишет:
> Kirill A. Shutemov wrote:
> > 2009/8/7 Roman Savochenko <rom_as на diyaorg.dp.ua>:
> >   
> >> Kirill A. Shutemov wrote:
> >>     
> >>>>> И во всех трёх вариантах нарушили strict aliasing. Используйте union.
> >>>>>           
> >>>>  ним работает, но это не решение, поскольку приведенные мною обороты
> >>>> распространены и я не уверен что подобных проблем нет в других частях
> >>>> моей,
> >>>> в общем-то не маленькой, программы.
> >>>>
> >>>>         
> >>> Есть повод исправить код.
> >>>
> >>>       
> >> Я не считаю его ошибочным.
> >>     
> > Strict aliasing rule -- часть стандарта C99. Если вы хотите писать
> > быстрый переносимый
> > код, то вам стоит следовать этому правилу.
> >   
> Ничего про стандартность тут 
> http://en.wikipedia.org/wiki/Aliasing_(computing) не увидил. А про то 
> что существуют конфликты с оптимизаторами там есть.
Смотрите внимательнее:
"...the ISO standard for the C programming language (including its newer
C99 edition) specifies that it is illegal (with some exceptions) for
pointers of different types to reference the same memory location."

-- 
  Alexey "Ktirf" Rusakov
  GNOME Project
  ALT Linux Team
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 197 байтов
Описание: Эта часть сообщения подписана цифровой подписью
Url     : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20090807/44737332/attachment.bin>


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