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:26 pm (UTC)
From: [identity profile] blacklion.livejournal.com
Ну я просто к тому, что авторы gcc/g++ тоже, похоже, стандарт не дочитали.

Date: 2012-04-28 01:39 pm (UTC)
From: [identity profile] kiryl.livejournal.com
Сам ты не читал. Скажи -std=c++98 и будет тебе то что ты хочешь. -pedantic энфорсит указаный стандарт. gnu++98, по умолчанию. А про VLA есть гнушное расширение, которое gnu++98 включает.

Date: 2012-04-28 01:40 pm (UTC)
From: [identity profile] blacklion.livejournal.com
А что делает -ansi? Мне казалось оно как раз должно переключать стандарт, как и -std= но короче, на последний ansi. Нет?

Date: 2012-04-28 01:44 pm (UTC)
From: [identity profile] kiryl.livejournal.com
Да, это алиас к -std=c++98.

Вот про "не читали" не нужно было.

Date: 2012-04-28 01:45 pm (UTC)
From: [identity profile] blacklion.livejournal.com
Ну так вот у меня с -ansi -pedantic компилирует. Правда, с ворнингом.

Date: 2012-04-28 01:51 pm (UTC)
From: [identity profile] blacklion.livejournal.com
Хм. Забавно. Очень зависит от версии — таки некоторые версии (посвежее) с -pedantic дают ошибку, версии постарее — ворнинг.

Date: 2012-04-28 01:56 pm (UTC)
From: [identity profile] kiryl.livejournal.com
-Werror=vla

Date: 2012-04-28 02:28 pm (UTC)
From: [identity profile] ihar hrachyshka (from livejournal.com)
-ansi
In C mode, this is equivalent to -std=c90. In C++ mode, it is
equivalent to -std=c++98.

Date: 2012-04-28 01:43 pm (UTC)
From: [identity profile] blacklion.livejournal.com
Т.е. я был уверен, что -ansi для g++ это алиас -std=c++98, а для gcc — -std=c99. Значит это мне доку читать надо.

Date: 2012-04-28 02:15 pm (UTC)
From: [identity profile] theiced.livejournal.com
с си у них всё хорошо. а стандарт на крестики настолько говно что его и читать не имеет смысла.

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. 31st, 2025 04:34 am
Powered by Dreamwidth Studios