The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

PVS-Studio доступен для бесплатного использования открытыми ..., opennews (??), 03-Дек-16, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


120. "PVS-Studio доступен для бесплатного использования открытыми ..."  +1 +/
Сообщение от pavlinux (ok), 04-Дек-16, 22:02 
Да я что-то make совсем забыл


.SUFFIXES: .i .o .cpp .c

# ни такая

%.i: %.cpp
        $(CXX) $(CXXFLAGS) -E $< -o $@
%.i: %.c
        $(CC) $(CFLAGS) -E $< -o $@

# ни такая

(%.i): %.cpp
        $(CXX) $(CXXFLAGS) -E $< -o $*.i
(%.i): %.c
        $(CC) $(CFLAGS) -E $< -o $*.i

# конструкции не работают.

Ответить | Правка | Наверх | Cообщить модератору

121. "PVS-Studio доступен для бесплатного использования открытыми ..."  –1 +/
Сообщение от Andrey_Karpov (ok), 04-Дек-16, 22:56 
Предлагаю посмотреть хороший пример интеграции в Make из документации: http://www.viva64.com/en/m/0036/#ID0EVIBG Недеемся, это поможет.
Ответить | Правка | Наверх | Cообщить модератору

123. "PVS-Studio доступен для бесплатного использования открытыми ..."  +1 +/
Сообщение от pavlinux (ok), 04-Дек-16, 23:26 
590    warn    V560 A part of conditional expression is always true: __s2_len > 0.
590    warn    V560 A part of conditional expression is always true: __s2_len > 1.
590    warn    V560 A part of conditional expression is always true: __s2_len > 2.
595    warn    V560 A part of conditional expression is always true: __s2_len > 0.
595    warn    V560 A part of conditional expression is always true: __s2_len > 1.
595    warn    V560 A part of conditional expression is always true: __s2_len > 2.



if (__builtin_expect((!(__extension__ (__builtin_constant_p (len) && ((__builtin_constant_p ((char *) prev) && strlen ((char *) prev) < ((size_t) (len))) || (__builtin_constant_p (code) && strlen (code) < ((size_t) (len)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ((char *) prev) && __builtin_constant_p (code) && (__s1_len = __builtin_strlen ((char *) prev), __s2_len = __builtin_strlen (code), (!((size_t)(const void *)(((char *) prev) + 1) - (size_t)(const void *)((char *) prev) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((code) + 1) - (size_t)(const void *)(code) == 1) || __s2_len >= 4)) ? __builtin_strcmp ((char *) prev, code) : (__builtin_constant_p ((char *) prev) && ((size_t)(const void *)(((char *) prev) + 1) - (size_t)(const void *)((char *) prev) == 1) && (__s1_len = __builtin_strlen ((char *) prev), __s1_len < 4) ? (__builtin_constant_p (code) && ((size_t)(const void *)((code) + 1) - (size_t)(const void *)(code) == 1) ? __builtin_strcmp ((char *) prev, code) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (code); int __result = (((const unsigned char *) (const char *) ((char *) prev))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ((char *) prev))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ((char *) prev))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ((char *) prev))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (code) && ((size_t)(const void *)((code) + 1) - (size_t)(const void *)(code) == 1) && (__s2_len = __builtin_strlen (code), __s2_len < 4) ? (__builtin_constant_p ((char *) prev) && ((size_t)(const void *)(((char *) prev) + 1) - (size_t)(const void *)((char *) prev) == 1) ? __builtin_strcmp ((char *) prev, code) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ((char *) prev); int __result = (((const unsigned char *) (const char *) (code))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (code))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (code))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (code))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ((char *) prev, code)))); }) : strncmp ((char *) prev, code, len))) && ((end - start) < 4)),0))

Доктор, я буду жить? :)

Ответить | Правка | Наверх | Cообщить модератору

124. "PVS-Studio доступен для бесплатного использования открытыми ..."  +/
Сообщение от Andrey_Karpov (ok), 04-Дек-16, 23:45 
Вот именно поэтому адаптировать анализатор под новую платформу не так просто. Сложность не в портировании кода анализатора, а в адекватной поддержка вот таких конструкций. В данном случае мы наблюдаем, что оптимизирующий компилятор раскрывает какую-нибудь функцию типа strcmp() в подобную кашу.

Вообще, анализатор должен был убрать ключ оптимизации и получить более вменяемый i-файл. Но видимо, что-то пошло не так. Сложно сказать, так как я не вижу картину происходящего в целом. Прошу написать нам на почту и мы вместе поможем настроить запуск анализатора правильно.

P.S. Вот именно по этому и нужна поддержка. Все случаи не предусмотреть и анализатор надо до настроить. Это нормально, так как это сложный инструмент, который может делать больно.

Ответить | Правка | Наверх | Cообщить модератору

139. "PVS-Studio доступен для бесплатного использования открытыми ..."  +1 +/
Сообщение от Square1 (?), 07-Дек-16, 22:58 
> P.S. Вот именно по этому и нужна поддержка. Все случаи не предусмотреть
> и анализатор надо до настроить. Это нормально, так как это сложный
> инструмент, который может делать больно.

Инструмент, который надо донастраивать сходу - называется "полуфабрикат" либо "недоделка".
Инструмент который фактически НЕ РАБОТАЕТ без поддержки - называется "ведро гаек" а не автомобиль...

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру