<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Корректирующий релиз набора компиляторов GCC 4.5.2</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/73416.html</link>
    <description>Вышел корректирующий релиз набора компиляторов GCC 4.5.2 (http://gcc.gnu.org/), в котором проведена работа по исправлению ошибок, регрессивных изменений и проблем с совместимостью. С момента выхода прошлой версии отмечено (http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&amp;resolution=FIXED&amp;target_milestone=4.5.2) 75 исправлений, большинство из которых связанно с устранением внесенных ранее регрессивных изменений. Исходные тексты компилятора можно загрузить с сайта проекта (ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.5.2/) или с его зеркал (http://gcc.gnu.org/mirrors.html).&lt;br&gt;&lt;br&gt;URL: http://gcc.gnu.org/&lt;br&gt;Новость: http://www.opennet.ru/opennews/art.shtml?num=29031&lt;br&gt;</description>

<item>
    <title>Корректирующий релиз набора компиляторов GCC 4.5.2 (Прохожий старый анонимус)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/73416.html#28</link>
    <pubDate>Tue, 21 Dec 2010 08:04:25 GMT</pubDate>
    <description>А почему не функция с переменным числом параметров ? Ну как-то так&lt;br&gt;&lt;br&gt;void mylog(const char *f, ...) &#123;&lt;br&gt;  static struct tm *curr;&lt;br&gt;  static time_t curr_t;&lt;br&gt;  static char w&#091;100&#093;;&lt;br&gt;  va_list args;&lt;br&gt;&lt;br&gt;  curr_t = time(NULL);&lt;br&gt;  curr = localtime(&amp;curr_t);&lt;br&gt;  strftime(w, 100, &quot;&#037;d-&#037;m-&#037;y &#037;T&quot;, curr);&lt;br&gt;  fprintf(stdout, &quot;&#037;s &quot;, w);&lt;br&gt;&lt;br&gt;  va_start (args, f);&lt;br&gt;&lt;br&gt;  vfprintf (stdout, f, args);&lt;br&gt;  va_end (args);&lt;br&gt;  fprintf(stdout, &quot;&#092;n&quot;);&lt;br&gt;  fflush(stdout);&lt;br&gt;&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;Потом сам вызов можно делать из макроса с автоматической подстановкой номера строки и имени файл. Для подключения функции нужен соответствующий хидер,а в нем разбор значения какой-нибудь DEBUG. В общем тут уже писали - на дворе 21 век и надо все-таки как-то соответствовать.&lt;br&gt;</description>
</item>

<item>
    <title>Корректирующий релиз набора компиляторов GCC 4.5.2 (anon2)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/73416.html#27</link>
    <pubDate>Mon, 20 Dec 2010 14:03:50 GMT</pubDate>
    <description>&amp;gt; Почему макрос, а не функция?&lt;br&gt;&lt;br&gt;Макрос имеет преимущества: __LINE__ и __FILE__.&lt;br&gt;Для отладки бывает полезно знать, по каким веткам работает код, особенно если это state-машина, да еще на кернеле.&lt;br&gt;Писать вызов функции&lt;br&gt;DUMP(k, __LINE__, __FILE__)&lt;br&gt;длиннее чем вызов макроса&lt;br&gt;DUMP(k)&lt;br&gt;&lt;br&gt;&amp;gt; замедление нестрашно&lt;br&gt;&lt;br&gt;никакого замедления: static inline функция практически эквивалентна макросу.&lt;br&gt;Можно еще добавить __attribute__((always_inline)) для полной уверенности :)&lt;br&gt;</description>
</item>

<item>
    <title>Корректирующий релиз набора компиляторов GCC 4.5.2 (Аноним)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/73416.html#26</link>
    <pubDate>Sun, 19 Dec 2010 14:37:47 GMT</pubDate>
    <description>Имхо, вы занимаетесь ерундой. Почему макрос, а не функция? Хотите сэкономить полтора машинных такта в 2010 году? Пишите отладочную функцию, во время отладки замедление нестрашно (если оно вообще будет заметно), а после удалите определение функции и сделайте пустой макрос. #ifdef в помощь&lt;br&gt;</description>
</item>

<item>
    <title>Корректирующий релиз набора компиляторов GCC 4.5.2 (Анонимбус)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/73416.html#25</link>
    <pubDate>Sat, 18 Dec 2010 20:30:45 GMT</pubDate>
    <description>&amp;gt;&amp;gt; оператора ## нет в стандарте с89&lt;br&gt;&amp;gt;хотя нет, есть.&lt;br&gt;&lt;br&gt;А даже если и так. Ещё лет 10 под C89 писать будете? Имея ввиду экзотические возможные условия героического псевдопортирования? А ведь на дворе 2011-ый год уже...&lt;br&gt;</description>
</item>

<item>
    <title>Корректирующий релиз набора компиляторов GCC 4.5.2 (anon2)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/73416.html#24</link>
    <pubDate>Sat, 18 Dec 2010 16:05:13 GMT</pubDate>
    <description>&amp;gt; оператора ## нет в стандарте с89 &lt;br&gt;&lt;br&gt;хотя нет, есть.&lt;br&gt;Но помню с ним были какие-то проблемы, в частности компилятор от MS с ним работает немного по-другому нежели gcc.&lt;br&gt;</description>
</item>

<item>
    <title>Корректирующий релиз набора компиляторов GCC 4.5.2 (anon2)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/73416.html#23</link>
    <pubDate>Sat, 18 Dec 2010 15:51:26 GMT</pubDate>
    <description>&amp;gt;     struct A *tmp_##x = x; &#092; &lt;br&gt;&lt;br&gt;оператора ## нет в стандарте с89&lt;br&gt;&lt;br&gt;&amp;gt; зачем вообще временная переменная?&lt;br&gt;&lt;br&gt;чтобы поведение кода не изменилось после замены макроса на функцию.&lt;br&gt;Например DUMP(k++) увеличил k только один раз.&lt;br&gt;&lt;br&gt;&amp;gt; Вы же не будете для каждого типа структур писать свой DUMP()?&lt;br&gt;&lt;br&gt;Конечно буду. Поскольку у разных структур свой набор полей.&lt;br&gt;</description>
</item>

<item>
    <title>Корректирующий релиз набора компиляторов GCC 4.5.2 (anon2)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/73416.html#22</link>
    <pubDate>Sat, 18 Dec 2010 15:36:33 GMT</pubDate>
    <description>&amp;gt;&amp;gt; -Winit-self&lt;br&gt;&lt;br&gt;спасибо за опцию.&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt; Это undefined behavior&lt;br&gt;&lt;br&gt;нет, это ошибка в программе.&lt;br&gt;Кстати, gcc ее обнаруживает, но только не во вложенном блоке.&lt;br&gt;&lt;br&gt;$cat y.c&lt;br&gt;int bar(int k)&lt;br&gt;&#123;&lt;br&gt;        int k = k;&lt;br&gt;        return k;&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;$gcc y.c&lt;br&gt;y.c : In function &apos;bar&apos;:&lt;br&gt;y.c :3: error: &apos;k&apos; redeclared as different kind of symbol&lt;br&gt;y.c :1: note: previous definition of &apos;k&apos; was here&lt;br&gt;&lt;br&gt;$cat z.c&lt;br&gt;int bar(int k)&lt;br&gt;&#123;&#123;&lt;br&gt;        int k = k;&lt;br&gt;        return k;&lt;br&gt;&#125;&#125;&lt;br&gt;&lt;br&gt;$gcc z.c&lt;br&gt;без ошибок.&lt;br&gt;</description>
</item>

<item>
    <title>Корректирующий релиз набора компиляторов GCC 4.5.2 (ram_scan)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/73416.html#21</link>
    <pubDate>Sat, 18 Dec 2010 14:13:11 GMT</pubDate>
    <description>Независимо от степени одаренности программиста компилятор за такие фокусы должен больно бить по рукам, голове и жопе, а не сегфолтиться.&lt;br&gt;&lt;br&gt;В моей практике сегфолтился один из достаточно экзотических компиляторов, если в методе описать дектруктор но забыть про конструктор (конструктор там быть обязан всегда).&lt;br&gt;</description>
</item>

<item>
    <title>Корректирующий релиз набора компиляторов GCC 4.5.2 (bircoph)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/73416.html#18</link>
    <pubDate>Sat, 18 Dec 2010 04:25:48 GMT</pubDate>
    <description>Наконец-то баг с графитом и cairo исправили, молодцы.&lt;br&gt;</description>
</item>

</channel>
</rss>
