Skip to content

Latest commit

 

History

History
27 lines (23 loc) · 1.66 KB

File metadata and controls

27 lines (23 loc) · 1.66 KB

Changelog

All notable changes to codeanalyzer-clang are documented here. The format follows Keep a Changelog, and this project adheres to Semantic Versioning.

[0.1.0]

Added

  • Initial C/C++ backend analyzer for CodeLLM-DevKit, built on LLVM/Clang via libclang (clang.cindex). Emits the canonical CLDK ClangApplication contract (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), with provenance=["clang"]. Handles constructors, member/virtual dispatch, and flags indirect (function-pointer) calls.
  • Neo4j projection (--emit neo4j|schema): a self-contained graph.cypher snapshot or an incremental Bolt push, plus a versioned, machine-readable schema contract. The neo4j driver 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).