LINUX.ORG.RU

сейчас придет Silvy и расскажет :) если не хочешь ждать - поищи сам в ее сообщениях

lester ★★★★
()
WARNINGS += -Wall -Wextra -Werror -pedantic-errors -Wformat=2 -Winit-self -Wstrict-overflow=5 \
            -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Waggregate-return           
CWARNINGS += -Wdeclaration-after-statement                                                     
CXXWARNINGS += -Weffc++ -Wstrict-null-sentinel -Wold-style-cast -Woverloaded-virtual -Wsign-promo

как-то так :)

и ещё -O2, без неё компилер не сильно вникает в код и пропускает некоторые ворнинги.

arsi ★★★★★
()
Ответ на: комментарий от arsi

Спасибо, дома погляжу маны на это и попробую.

Pavval ★★★★★
() автор топика
Ответ на: комментарий от arsi

чуть не забыл:

CFLAGS += -O2 -ansi -fno-strict-overflow -fstrict-aliasing $(WARNINGS) $(CWARNINGS) …
CXXFLAGS += -O2 -ansi -fno-strict-overflow -fstrict-aliasing $(WARNINGS) $(CXXWARNINGS) …

arsi ★★★★★
()
Ответ на: комментарий от arsi

autotools... Это было так давно и неправда..:)

Pavval ★★★★★
() автор топика
Ответ на: комментарий от mannaz

>Поэт

gpoem poem.txt -o poem.pdf -Wall

poem.txt:22: warning: Рифма хромает
poem.txt:43: warning: Рифма хромает
poem.txt:57: error: Ямб не защитан

Pavval ★★★★★
() автор топика
Ответ на: комментарий от Pavval

gpoem poem.txt -o poem.pdf -Wall -pedantic -Werror

poem.txt:22: warning as error: Рифма хромает
poem.txt:35: error: Сравнение солнца с бараном
poem.txt:43: warning as error: Рифма хромает
poem.txt:57: error: Ямб не защитан

Pavval ★★★★★
() автор топика
Ответ на: комментарий от mannaz

Я работал в нескольких проектах, в которых было условие: никаких ворнингов.
Юзалась MSVS и дефолтный уровень ворнингов. На самом деле оно было даже хорошо.

tia
()
Ответ на: комментарий от anonymous

>Прикрути к билдовой процедуре статический анализатор кода.

Кстати, что за анализаторы есть в лин?

Pavval ★★★★★
() автор топика
Ответ на: комментарий от tia

>На самом деле оно было даже хорошо.

+1. А еще это дает хоть какую-то надежду, что в другом компиляторе (версии) будет собираться.

Pavval ★★★★★
() автор топика
Ответ на: комментарий от Pavval

В компиляторе наоборот проблем не будет. Ну, чаще всего не будет, ибо сейчас почти все компиляторы C(да и CPP, вроде) справляются с самыми извращёнными проблемами.
Здесь дело ещё и в сборке на разных машинах и работе программы в разных условиях. Подумаешь возможны потери при касте из X в Y, а вот будут потери когда ты что-то такое «особенное» сделаешь и всё, крендец(я намекаю на то что ты скомпилишь, забьёшь на ворнинг, а потом будет перекомпиливать только один сырец, т.е. о ворнинге можешь и не вспомнить).
Ворнинги на то и ворнинги, что дают о себе знать не в компайл-тайм, а в ран-тайм.

tia
()
Ответ на: комментарий от lester

Нашел пока только Cppcheck. Надо не проприетарщину.

Pavval ★★★★★
() автор топика
Ответ на: комментарий от yoghurt

>Через анализатор прогони. Flexlint там какой нибудь

Надо не проприетарщину.

Pavval ★★★★★
() автор топика
Ответ на: комментарий от LamerOk

:) Нет, у меня есть девушка.

Pavval ★★★★★
() автор топика
Ответ на: комментарий от Pavval

практически. + есть подробный ман. Ворнинги дает очень дельные, рекоммендую

annulen ★★★★★
()
Ответ на: комментарий от Sylvia

> Intel C/C++

к сожалению, он проприетарный и за него хотят денег Т_Т

из альтернатив в наличии есть только sun-cc, который великолепно оптимизирует, но при этом болт кладёт на всякие там стандарты (volatile, например, игнорирует абсолютно).

arsi ★★★★★
()
Ответ на: комментарий от arsi

>к сожалению, он проприетарный и за него хотят денег Т_Т

Да вроде бесплатный для некоммерческого. Разве нет?

Pavval ★★★★★
() автор топика
Ответ на: комментарий от arsi

>к сожалению, он проприетарный и за него хотят денег Т_Т

отнюдь, только для венды он проприетарный, и то есть триал на 30 дней,
для Linux (для некоммерческого использования) - бесплатно.


sun-cc


так себе альтернативка.. хотя я палочкой его долго не тыкала

Sylvia ★★★★★
()
Ответ на: комментарий от Pavval

да, сайт у интела путаный и некоммерческую версию там получается найти не сразу
ссылка - http://software.intel.com/en-us/articles/non-commercial-software-download/


тыкать в - Intel® C++ Compiler Professional Edition for Linux*


адрес почты можно ( и лучше ) фальшивый (спам шлют!)

Sylvia ★★★★★
()
Ответ на: комментарий от Pavval

в icc.cfg и icpc.cfg лучше вписать

-long_double -pragma-optimization-level=GCC -gcc -gcc-name=/usr/local/gcc-4.2/bin/cc -gxx-name=/usr/local/gcc-4.2/bin/c++ -gcc-version=420

указывать соответственно путь к GCC, лучше 4.2, но можно и другую

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

о_О

пойду скачаю…

пару лет назад скачивал/устанавливал, так он меня честно предупредил, что работать будет только определённое количество дней (точно не помню, но то ли 60, то ли 90…). под линуксом, естественно.

> так себе альтернативка..

некоторые вещи он оптимизирует лучше гцц4 («оптимизировал», давно их не сравнивал, полгода почти). иногда игнорирует стандарты в угоду оптимизации, что мне не понравилось, потому и забросил его.

arsi ★★★★★
()
Ответ на: комментарий от Sylvia

>адрес почты можно ( и лучше ) фальшивый (спам шлют!)

если галочку снять, не будут

annulen ★★★★★
()
Ответ на: комментарий от Sylvia

> адрес почты можно ( и лучше ) фальшивый (спам шлют!)

да ладно, раз в месяц на мероприятия всякие приглашают %)

arsi ★★★★★
()
Ответ на: комментарий от Sylvia

я никогда путь не указывал, работает однако

annulen ★★★★★
()
Ответ на: комментарий от arsi

наверное не ту версию скачивали )

по кодогенерации да, он агрессивен, сильно использует inline и векторизацию, есть еще флаг эвристического распаралелливания (типа графита) -parallel , хорошо кстати тоже вскрывает проблемы с не совсем идеально написаным кодом

препроцессор у ICC построже и выдает значительно большее количество предупреждений и ремарок, по сравнению с GCC

Sylvia ★★★★★
()
Ответ на: комментарий от annulen

нет.
на почту отправляют серийник и .lic файл для локальной регистрации,

но на странице загрузки серийку тоже пишут, этого достаточно, чтобы активировать при установке.

Sylvia ★★★★★
()
Ответ на: комментарий от annulen

-ip
-ipo

да, но ipo обычно требует использовать
xiar и xild вместо ar и ld соответственно, если проект собирается по частям с использованием статических библиотек, не всегда это удобно.


Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

>xiar и xild вместо ar и ld соответственно

разве? у меня в качестве линкера ld стоит, и тем не менее с ипо все собирается.

annulen ★★★★★
()
Ответ на: комментарий от annulen

там скорее не линкер а ar (xiar)
если проект собирается через статические ( .a ) библиотеки, то ar генерирует не библиотеку а мусор, т.к. при компиляции обьектные .o файлы не содержат кода , а по сути представляют собой заглушку, т.к. весь код соберется одним этапом непосредственно перед компоновкой в финальный бинарник

Sylvia ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.