metaclass: (Default)
[personal profile] metaclass
В бабуинанедолбеанедебиане gcc -O2 при компиляции примера работы с libev кидает кучу warnings типа "testev.c:58: warning: dereferencing type-punned pointer will break strict-aliasing rules"

Автор на вопросы на эту тему псит, как команда из 100500 айседов и авторов firebird вместе взятых, в стиле "вы тупые, используйте компилятор C для компиляции C, идите нахрен, это всего лишь warning".

http://comments.gmane.org/gmane.comp.lib.ev/907
http://lists.schmorp.de/pipermail/libev/2010q1/000912.html

собственно патчик: http://lists.schmorp.de/pipermail/libev/attachments/20100218/3c4aaf8c/attachment.txt

Date: 2012-04-28 01:33 pm (UTC)
From: [identity profile] blackyblack.livejournal.com
Автор читает лекции про си, но так и не объясняет, нахрена писать такой код. Наверное это мега оптимизация...

Date: 2012-04-28 01:42 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Автор, по-моему, все таки не прав, а вот gcc прав. Структуры формально разные.

Date: 2012-04-28 01:45 pm (UTC)
From: [identity profile] blackyblack.livejournal.com
Дак я верю, что gcc прав. Нахрена делать то так? Для таких вещей memcpy есть.

Date: 2012-04-28 02:20 pm (UTC)
From: [identity profile] metaclass.livejournal.com
для таких вещей есть более гуманный вариант: положить общую часть структуры в виде собственно поля в начале всех "унаследованных" структур, что не вызывает warning.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 30th, 2025 10:15 pm
Powered by Dreamwidth Studios