From 49a33c0057d871647886bde81c0bdfa9ed9c65f1 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Sat, 14 Nov 2020 11:21:25 +0300 Subject: [PATCH] =?utf8?q?=D0=A1=D0=BA=D0=BE=D1=80=D0=BE=D1=81=D1=82=D1=8C?= =?utf8?q?=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=8B=20LLVM=2011=20=D0=B8=20?= =?utf8?q?=D0=B5=D0=B3=D0=BE=20=D0=B8=D0=BD=D1=81=D1=82=D1=80=D1=83=D0=BC?= =?utf8?q?=D0=B5=D0=BD=D1=82=D0=B0=D1=80=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Обновился с LLVM 6 до 11. LSP демон стал работать значительно быстрее, меньше каких-то непонятных warning-ов выдаёт. В 543ea92f9b81c1c8adead550e7ce0cf3cc665240 писал про то, что скорость прежних задач не должна падать -- тут они справились! А вот всякие clang-tidy стали работать медленнее... но при этом находят больше серьёзных недочётов и в (ещё не протестированном) коде нашли утечки памяти (отсутствие free) и кое где отсутствующие break. За это можно простить, тем более что оно не интерактивное. Вообще LLVM/Clang инструментарий очень нравится и насколько понимаю в GNU GCC нифига подобного ничего нет. И clang-format, который 100% форматирует весь мой код. scan-build ПОТРЯСАЮЩЕ находящий серьёзные ошибки, которые и во время ревью человек то нифига не заметит (хитрые goto/if из-за которых потеряется значение переменной). clang-tidy выдающий и false positive, но также и полезные вещи типа утечек памяти или неинициализированные значения. clangd LSP -- как linter отличен! Куча -Weverything проверок (которые даже в doxygen docstring-и умеют залезать) и sanitizer-ов, которые в 99% случаев находили некорректности работы с памятью, переполнения чисел или ошибок из-за их знаковости. Вовсю моё программирование на C опирается на эти инструменты. Единственное что я ставил дополнительно это: https://include-what-you-use.org/ С помощью которой я легко корректно и правильно организую include-ы, ведь задача очень не приятна для человека. -- 2.48.1