В статье "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
Не считаю, что это на самом деле надо.
Почему?
ух! а gcc так умеет?
по ссылке сходить примеры посмотреть никак?
> ух! а 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]
>Вообще, смысл статьи не в том, что llvm, что-то выявляет, а gccТьфу, не llvm, а Clang ессно. Очепятался...
Весч конечно полезная, если нет IDE
>Весч конечно полезная, если нет IDEА какие IDE это умеют? У меня, например, Анюта просто показывает то, что говорит GCC.
я имел в виду что обычно ошибки синтаксиса/несовпадения имен переменных IDE подсвечивает - например NetBeans C/C++ это точно умел, крайнее время на C/C++ одни нетривиальные задачи которые пишу в vim.
QtCreator, Code::Blocks, Codelite etc это тоже умеют :).
Ребята изобрели lint?
С IDE или без, это точно очень полезные фичи! Мне эти "нехватает =" ну никак не помогают! А уж исправлять опечатки - тем более классно (мало ль, где я исходник правил).
Вот ещё бы D к llvm прикрутили, я б ваще помер от оргазма! :)