valgrind vs. clang (баг clang?)

IDE, VCS и прочее

Модератор: Модераторы разделов

Ответить
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

valgrind vs. clang

Сообщение Bizdelnick »

Играюсь с valgrind. Обнаружил интересную штуку: если собрать GNU make при помощи clang, в нём вылезает куча ошибок Conditional jump or move depends on uninitialised value(s). Пример можно посмотреть тут: https://travis-ci.org/mikhirev/make_pcre/jobs/62932882
Если make собран с помощью gcc, такого не происходит. Количество ошибок зависит от флагов оптимизации, с которыми собран make: c -O2 имеем:

Shell

==17270== ERROR SUMMARY: 20591 errors from 37 contexts (suppressed: 0 from 0)

С -O1:

Shell

==17651== ERROR SUMMARY: 30193 errors from 45 contexts (suppressed: 0 from 0)

причём возникают они при обработке других частей мейкфайла (точнее, сообщения о них вклиниваются в другие места нормального вывода make).
Если make собрать с -O0, то ошибок нет. Правильно ли я понимаю, что это однозначно указывает на баг clang? Или это у valgrind паранойя? Ведь результат выполнения make полностью корректный.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
lastpriot
Сообщения: 218
ОС: FreeBSD

Re: valgrind vs. clang

Сообщение lastpriot »

собрать make с флагом -fno-strict-aliasing

update: странно, даже export CFLAGS="" при сборке make решает проблему...
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: valgrind vs. clang

Сообщение Bizdelnick »

Ничего не изменилось.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
lastpriot
Сообщения: 218
ОС: FreeBSD

Re: valgrind vs. clang

Сообщение lastpriot »

сори, так и есть, export сбросил флаги
Спасибо сказали:
Ответить