URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 65615
[ Назад ]

Исходное сообщение
"Обзор возможностей CLang по выявлению ошибок в программах"

Отправлено opennews , 06-Апр-10 21:33 
В статье "Amazing feats of Clang Error Recovery (http://blog.llvm.org/2010/04/amazing-feats-of-clang-error-re...)" представлены примеры расширенных возможностей CLang (http://clang.llvm.org/) (совместимый с GCC фронтэнд к LLVM для языков C/C++) по выявлению ошибок в программах на этапе компиляции. Например, при опечатке в имени переменной clang не просто напишет, что такая переменная не определена, а выявит факт опечатки и предложит правильный вариант. Также отмечены возможности по разрешению конфликтов, выявлению некорректного использования разных типов данных и объектов, использованию при вызове методов символа "." вместо "->" и оператора ":" вместо "::".

URL: http://blog.llvm.org/2010/04/amazing-feats-of-clang-error-re...
Новость: https://www.opennet.ru/opennews/art.shtml?num=26116


Содержание

Сообщения в этом обсуждении
"Обзор возможностей CLang по выявлению ошибок в программах"
Отправлено Aesthetus Animus , 06-Апр-10 21:33 
Не считаю, что это на самом деле надо.

"Обзор возможностей CLang по выявлению ошибок в программах"
Отправлено Below , 06-Апр-10 22:09 
Почему?

"Обзор возможностей CLang по выявлению ошибок в программах"
Отправлено Аноним , 06-Апр-10 22:32 
ух! а gcc так умеет?

"Обзор возможностей CLang по выявлению ошибок в программах"
Отправлено мимопроходил , 06-Апр-10 22:40 
по ссылке сходить примеры посмотреть никак?

"Обзор возможностей CLang по выявлению ошибок в программах"
Отправлено Damon , 06-Апр-10 22:47 
> ух! а gcc так умеет?

Что именно? Выявлять ошибки и ругаться? Да умеет.
Вообще, смысл статьи не в том, что llvm, что-то выявляет, а gcc нет (и тот и другой выпадают с ошибкой), а в том, что (по мнению автора) llvm дает внятное пояснение, где конкретно ошибка, а gcc утверждает, что ошибка "где-то рядом" (почти (С)).
Пример:


$ cat t.c
struct foo { int x; }

typedef int bar;
$ clang t.c
t.c:1:22: error: expected ';' after struct
struct foo { int x; }
                     ^
                     ;
$ gcc t.c
t.c:3: error: two or more data types in declaration specifiers
[\code]


"Обзор возможностей CLang по выявлению ошибок в программах"
Отправлено Damon , 06-Апр-10 22:51 
>Вообще, смысл статьи не в том, что llvm, что-то выявляет, а gcc

Тьфу, не llvm, а Clang ессно. Очепятался...


"Обзор возможностей CLang по выявлению ошибок в программах"
Отправлено мимопроходил , 06-Апр-10 22:41 
Весч конечно полезная, если нет IDE

"Обзор возможностей CLang по выявлению ошибок в программах"
Отправлено Ян Злобин , 07-Апр-10 04:15 
>Весч конечно полезная, если нет IDE

А какие IDE это умеют?  У меня, например, Анюта просто показывает то, что говорит GCC.


"Обзор возможностей CLang по выявлению ошибок в программах"
Отправлено мимпроходил , 07-Апр-10 12:47 
я имел в виду что обычно ошибки синтаксиса/несовпадения имен переменных IDE подсвечивает - например NetBeans C/C++ это точно умел, крайнее время на C/C++ одни нетривиальные задачи которые пишу в vim.

"Обзор возможностей CLang по выявлению ошибок в программах"
Отправлено Аноним , 13-Апр-10 19:09 
QtCreator, Code::Blocks, Codelite etc это тоже умеют :).

"Обзор возможностей CLang по выявлению ошибок в программах"
Отправлено dq0s4y71 , 07-Апр-10 12:30 
Ребята изобрели lint?

"Обзор возможностей CLang по выявлению ошибок в программах"
Отправлено Аноним , 07-Апр-10 13:53 
С IDE или без, это точно очень полезные фичи! Мне эти "нехватает =" ну никак не помогают! А уж исправлять опечатки - тем более классно (мало ль, где я исходник правил).
Вот ещё бы D к llvm прикрутили, я б ваще помер от оргазма! :)