All notable changes to codeanalyzer-clang are documented here. The format follows
Keep a Changelog, and this project adheres to
Semantic Versioning.
- Initial C/C++ backend analyzer for CodeLLM-DevKit, built on LLVM/Clang via libclang
(
clang.cindex). Emits the canonical CLDKClangApplicationcontract (analysis.json). - Level 1 — symbol table: translation units, classes/structs/unions, methods, free functions,
constructors/destructors, fields, globals, enums, typedefs, macros,
#includes, and doc comments, with precise spans and C/C++ flags (virtual,pure_virtual,const,static,inline,variadic, storage class, access specifier, templates, namespaces). Cross-file (out-of-line) method definitions are attached to their class. - Level 2 — resolver call graph: identity-only edges resolved directly from the Clang AST
(
cursor.referenced), withprovenance=["clang"]. Handles constructors, member/virtual dispatch, and flags indirect (function-pointer) calls. - Neo4j projection (
--emit neo4j|schema): a self-containedgraph.cyphersnapshot or an incremental Bolt push, plus a versioned, machine-readable schema contract. Theneo4jdriver is an optional extra. - Caching: content-hash per-file cache under
.codeanalyzer-clang/. - CLI (
canclang): the full CLDK flag surface with strict flag validation. - Pluggable
analysis/(pass registry) +frameworks/(entrypoint-finder base) extension layer. - Level-2 SVF (LLVM-IR points-to) backend scaffolded behind
--svf(stubbed in this release).