This doc was originally forked from https://github.com/ingve/awesome-clang and then maintained by me. However I prefer a monorepo for both LLVM and Clang, so moved here.
- Project site: http://clang.llvm.org, and its doxygen docs
- Clang @ LLVM Discourse
- Clang @ StackOverflow
- Clang @ reddit
- Clang @ GitHub
- Open Projects
- 🐉 Clang Compiler User’s Manual
- 🐉 Clang Driver Configuration files, see also GCC spec files and the tutorial
- 🐉 “Clang” CFE Internals Manual - good start for Clang frontend developers
- 🐉 Clang Toolchain - Toolchains when using Clang compiler driver
- 🐉 Introduction to the Clang AST - a gentle introduction to the mysteries of the Clang AST.
- 🐉 Matching the Clang AST - how to use Clang’s LibASTMatchers to match interesting nodes of the AST and execute code that uses the matched nodes.
- 🐉 AST Matcher Reference - AST matchers implemented by Clang.
- 🐉 Modules - C++ modules
- https://github.com/banach-space/clang-tutor - A collection of out-of-tree Clang plugins for teaching and learning
- https://github.com/ronnie88597/Notes/tree/master/clang
- 📹 Create your own Refactoring Tool in Clang - Richard Thompson's presentation from C++Now 2014.
- 📹 Refactoring C++ with Clang - Chandler Carruth's talk from C++Now 2012.
- 📹 Automatic C++ source code generation with clang - Sergei Sadovnikov's ACCU 2017 talk.
- 📹 Customising clang tidy to modernise your legacy C++ code - Mike Crowe @ Meeting C++ 2024.
- Quick overview of how Clang works internally - cppdepend's quick introduction
- C Support in Clang and C Defect Report Support in Clang
- C++ Support in Clang and C++ Defect Report Support in Clang
- Data flow analysis: an informal introduction - Clang's docs about data flow analysis, etc
- libclang: - C Interface to Clang.
- Introduction to libclang
- Skipping library code in gdb with help from libClang - using libClang’s Python bindings.
- LibTooling - library to support writing standalone tools based on Clang
- clang-check - Error checking and AST dumping based on LibTooling
- scan-build - Clang Static Analyzer
- scan-view - Clang Static Analysis Viewer
- clang-tidy - Lint-like checks and beyondslides
- clangd - clangd language server (for LSP)
- clang-format
- clang-format docs - A tool to format C/C++/Java/JavaScript/Objective-C/Protobuf code.
- style options - clang-format style options.
- configurator - clang-format configurator.
- clang-tidy - clang-based C++ linter tool.
- pp-trace - tool that traces preprocessor activity.
- Clang Static Analyzer - a source code analysis tool that finds bugs in C, C++, and Objective-C programs.
- scan-build -Running the analyzer from the command line (inactively maintained for cross-translation-unit analysis)
- Static Analysis with clang
- clang-analyzer-guide An easy guide to Clang Static Analyzer extension.
- AddressSanitizer - a fast memory error detector.
- ClangIR - A new (MLIR based) high-level IR for clang
- Checked C - an extension to C that lets programmers write C code that is guaranteed by the compiler to be type-safe
- C++ Insights - a clang-based tool which does source to source transformation. Its goal is it to make things visible which normally, and intentionally, happen behind the scenes. Live/online demo available.
- CodeChecker - an analyzer tooling, defect database and viewer extension for the Clang Static Analyzer and Clang Tidy
- QT Clazy - Qt-oriented static code analyzer based on the Clang framework (as a plugin and a standalone tool on top of libtooling)
- trailofbits/VAST - VAST: MLIR for Program Analysis
- trailofbits/PASTA - Peter's Amazing Syntax Tree Analyzer
- naivesystems/analyze - NaiveSystems' analyzer (community version),
- kythe/Kythe - a pluggable, (mostly) language-agnostic ecosystem for building tools that work with code
- ccls - a C++ language server, similar to clangd
- sourcegraph/scip-clang - SCIP indexer for C and C++
- sourcegraph/lsif-clang - LSIF generator for C, C++ and Objective C
- Clang Power Tools - Visual Studio extension with Clang/LLVM tools (
clang++
,clang-tidy
andclang-format
). - rtags - A c/c++ client/server indexer for c/c++/objc[++]
- llvm-clang-samples - Examples of LLVM and Clang written by Dr. Eli Bendersky
- clang-llvm-tutorial - clang & llvm examples
- Bear - A tool that generates a compilation database for clang tooling
- compiledb -- Tool for generating Clang's JSON Compilation Database files for make-based build systems.
- codebrowser - Woboq CodeBrowser
- oclint - A static source code analysis tool to improve quality and reduce defects for C, C++ and Objective-C
- CppNameLint - a naming convention linter of C/C++ source code Based on libtooling
- irony-mode - A C/C++ minor mode for Emacs powered by libclang.
- c99-to-c89 - Tool to convert C99 code to MSVC-compatible C89.
- ClangKit - Objective-C frontend to LibClang.
- cppast - Library to parse and work with the C++ AST (based on libclang, to be archived)
- lloccount - C/C++ Logical Lines Of Code Counter.
- libclangmm - C++-wrapper for libclang (developed for juCi++) (based on libclang, archived)
- Customizable Naming Convention Checker - similar to clang-format, but for naming conventions only.
- standardese - A (work-in-progress) nextgen Doxygen for C++ (based on libclang)
- C++Now 2017: clang-useful
- clang-experiments
- SCRT/avcleaner - C/C++ source obfuscator for antivirus bypass (based on libtooling)
- https://github.com/aras-p/ClangBuildAnalyzer - Clang build analysis tool using -ftime-trace
- ClangQL - Query C++ codebases using SQLite, based on Clangd indexing results