<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Раздел полезных советов: Как указать GCC выводить предупрежд...</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/60202.html</link>
    <description>При сборке ниже представленного некорректного кода, gcc не выдает никаких предупреждений даже с -Wall, при этом указатель он приводит к unsigned, поэтому результат сравнения всегда ложен.&lt;br&gt;&lt;br&gt;   if ((fp = fopen(file, &quot;w&quot;)) &amp;lt; 0)&lt;br&gt;&lt;br&gt;Если написать:&lt;br&gt;&lt;br&gt;   unsigned int a;&lt;br&gt;   if (a &amp;lt; 0)&lt;br&gt;   return 1;&lt;br&gt;   return 0;&lt;br&gt;&lt;br&gt;&lt;br&gt;gcc опять не ругается и даже с -O0 генерирует код, который не делает никаких сравнений, а сразу возвращает результат. То есть знает, что сравнение бессмысленное, но молчит.&lt;br&gt;&lt;br&gt;Для того, чтобы gcc начал выводить предупреждения нужно указать -Wextra, тогда буде выведено:&lt;br&gt;&lt;br&gt;   warning: comparison of unsigned expression &amp;lt; 0 is always false&lt;br&gt;&lt;br&gt;&lt;br&gt;URL: http://k001.livejournal.com/725123.html&lt;br&gt;Обсуждается: http://www.opennet.ru/tips/info/2200.shtml&lt;br&gt;</description>

<item>
    <title>Как указать GCC выводить предупреждения для бессмысленных ср... (Аноним)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/60202.html#11</link>
    <pubDate>Sat, 05 Sep 2015 18:43:09 GMT</pubDate>
    <description>Алё, Дима, ты где здесь &quot;непроинициализированные локальные переменные&quot; увидел? Иди портфель собирай, критик юный.&lt;br&gt;</description>
</item>

<item>
    <title>Как указать GCC выводить предупреждения для бессмысленных сравнений (Саша)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/60202.html#9</link>
    <pubDate>Mon, 26 Oct 2009 18:25:37 GMT</pubDate>
    <description>как с меня прикольная заметка :)&lt;br&gt;</description>
</item>

<item>
    <title>Раздел полезных советов: Как указать GCC выводить предупрежд... (pavlinux)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/60202.html#8</link>
    <pubDate>Sat, 24 Oct 2009 15:29:10 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;   return 1; &lt;br&gt;&amp;gt;   return 0; &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;gcc опять не ругается и даже с -O0 генерирует код, который не &lt;br&gt;&amp;gt;делает никаких сравнений, а сразу возвращает результат. То есть знает, что &lt;br&gt;&amp;gt;сравнение бессмысленное, но молчит. &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Для того, чтобы gcc начал выводить предупреждения нужно указать -Wextra, тогда буде &lt;br&gt;&amp;gt;выведено: &lt;br&gt;&lt;br&gt;ISO/ICE9899  стр. 44 на предмет разницы unsigned в K&amp;R, C89 и С99&lt;br&gt;&lt;br&gt;Так что &lt;br&gt;&lt;br&gt;# gcc -std=c99 -W -Werror test.c &lt;br&gt;&lt;br&gt;И будет вам счастье, специально для программеров на Жаве, добавляем -Werror.&lt;br&gt;За Вас, жавероф, Sun Microsystem уже подумал, тут надо самим. :)&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;  &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Как указать GCC выводить предупреждения для бессмысленных ср... (pavlinux)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/60202.html#7</link>
    <pubDate>Sat, 24 Oct 2009 14:50:22 GMT</pubDate>
    <description>&amp;gt;идиотизм какой-то . В Java сделано лучше. Такой код просто не скомпилируется, &lt;br&gt;&amp;gt;т.к. по спецификации запрещено применять непроинициализированные локальные переменные &lt;br&gt;&lt;br&gt;s/непроинициализированные/не инициализированные/&#092;g;&lt;br&gt;</description>
</item>

<item>
    <title>Как указать GCC выводить предупреждения для бессмысленных ср... (Карбофос)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/60202.html#6</link>
    <pubDate>Sat, 24 Oct 2009 11:56:52 GMT</pubDate>
    <description>прежде, чем заявлять, что &quot;в ява сделано лучше&quot;, нужно знать, какой код генерирует gcc&lt;br&gt;кто тебе сказал, что бессмысленные выражения будут в бинарнике?&lt;br&gt;</description>
</item>

<item>
    <title>Как указать GCC выводить предупреждения для бессмысленных сравнений (Дима)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/60202.html#5</link>
    <pubDate>Sat, 24 Oct 2009 11:26:59 GMT</pubDate>
    <description>идиотизм какой-то . В Java сделано лучше. Такой код просто не скомпилируется, т.к. по спецификации запрещено применять непроинициализированные локальные переменные&lt;br&gt;</description>
</item>

<item>
    <title>Как указать GCC выводить предупреждения для бессмысленных сравнений (pavlinux)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/60202.html#4</link>
    <pubDate>Fri, 23 Oct 2009 15:32:26 GMT</pubDate>
    <description>Из серии - плохой компилятор знает больше, чем хороший программист.&lt;br&gt;</description>
</item>

<item>
    <title>Как указать GCC выводить предупреждения для бессмысленных ср... (Аноним)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/60202.html#3</link>
    <pubDate>Fri, 23 Oct 2009 08:23:18 GMT</pubDate>
    <description>При -fno-delete-null-pointer-checks такое сработает ?&lt;br&gt;</description>
</item>

<item>
    <title>Как указать GCC выводить предупреждения для бессмысленных ср... (анон)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/60202.html#2</link>
    <pubDate>Fri, 23 Oct 2009 08:19:48 GMT</pubDate>
    <description>Иногда бывает нужно при написании антиотладки, анти-аверов и т.д.&lt;br&gt;</description>
</item>

</channel>
</rss>
