今の開発現場は未だにC言語のビルド環境がGCCですが,今回はLLVM/Clangを使ってみました。 また, clang-format を WEBサービス (go-clang-formatter)にしてみました。 シンプルなので実験として Golang で書いています。 LLVM/Clang 特徴 最新の規格への対応が早い(C++11対応) GCCとの互換性が高い エラーメッセージが最小限かつ分かり易い プラグインによる拡張 BSD License(厳密には異なる) LLVM/Clang 構成 フロントエンド : Clangの機能。字句解析/構文解析(AST)を行い中間コード(LLVM IR)を生成する。 ミドルエンド : LLVM Coreの機能。LLVM IRを最適化して高速化・サイズを縮小化する。 バックエンド : CPUアーキテクチャに沿ったバイナリを生成する。 LLVM IRという