コンテンツにスキップ

LLVM/clang-tidy

出典: フリー教科書『ウィキブックス(Wikibooks)』

はじめに

[編集]

clang-tidyは、Clangツールチェインの一部として提供される静的解析ツールであり、C++コードのバグ検出、スタイルチェック、リファクタリングを支援します。本ハンドブックでは、clang-tidy(1)の基本的な使い方から応用例までを解説します。

Clang-Tidyの概要

[編集]

Clang-Tidyとは

[編集]
  • clang-tidyは、コード品質向上のための静的解析ツール。
  • コーディングスタイルの適用、バグの検出、自動修正をサポート。
  • clang-apply-replacementsと組み合わせることで修正を自動適用可能。
  • ClangのASTを解析し、柔軟なカスタマイズが可能。

Clang-Tidyのインストール

[編集]

FreeBSDでのインストール

[編集]

FreeBSDのベースシステムにはclang-tidyは含まれていないので、パッケージをインストールします。

doas pkg install llvm

macOSでのインストール

[編集]
$ brew install llvm

Linuxでのインストール (例: Debian系)

[編集]
$ sudo apt install clang-tidy

基本的な使い方

[編集]

ソースコードの解析

[編集]
$ clang-tidy source.cpp --checks=* -warnings-as-errors=*

自動修正の適用

[編集]
$ clang-tidy -fix source.cpp --checks=modernize-*

修正提案のエクスポート

[編集]
$ clang-tidy -fix -export-fixes=fixes.yaml source.cpp

主要オプション

[編集]
主要オプション
オプション 説明
--checks=* 使用するチェックを指定
-fix 自動修正を適用
-export-fixes=FILE 修正提案をYAMLファイルにエクスポート
-warnings-as-errors=* 指定した警告をエラーとして扱う
-header-filter=REGEX 指定したヘッダーに適用

応用例

[編集]

プロジェクト全体への適用

[編集]
$ run-clang-tidy -fix -checks=* my_project/

CI/CDでのコード品質チェック

[編集]
$ clang-tidy source.cpp --checks=* > clang-tidy-report.txt

まとめ

[編集]

本ハンドブックでは、clang-tidyの基本的な使い方、主要オプション、応用例について解説しました。コードの品質向上やリファクタリングの効率化に活用できます。

参考資料

[編集]