- Add bumper-highlight
- Upgrade to libclang of LLVM 16
- Merge dobby compilation database infrastructure
- Add support for declaration attribute 'weak'.
- Add isStrong/isWeak getter on declarations.
- Add support for parsing of anonymous bit fields. Field.Named -> Field.Leaf, because they can be anonymous (ident == "") now!
- Upgrade to Kotlin 1.8.20
- Completely incrementalize the linkanalysis, unifying it with the UnitClosureAnalysis.
- Fix bug where presumedLocation was relative in the model due to Clang
- Add NULL and free to IStdlib
- Fix function declaration type: make space for attributes on the function.
- Add smart constructors for operator expressions.
- Fix bug with
isDefinition
on global variables not accounting for 'extern' - Fix bug with wrong builtin type of
free
Stdlib function - Fix type dependency analysis; now differentiates between depending on declaration vs. definition.
- Add TypeContext to represent type requirements.
- Add TypeEnv.resolve(TypeContext): TypeResolutions to resolve type requirements to suitable definitions.
- Add TypeResolutions.toPreamble to compute source-level definitions to reproduce a type resolution in another unit.
- Add AST and pretty-printer for (most of) expressions and syntax
- Add TypeEnv to abstract type environments computed from (collections of) C units.
- Add model of normalized C types and functions to normalize types based on a type env.
- Add various utility functions on normalized types (e.g. isReturnable).
- Polishing the API of UnitState
- Extract exact include path from preprocessor output
- Add index model and analysis
- Add closure analysis to compute unambigous linking based on an index
- Now modeling (and reporting) presumed locations on Diagnostics
- AST for enumerators now contains symbol referencing enclosing enum.
- ClangDependencyAnalysis now correctly handles enumerator references.
- Renamed Declaration > UnitDeclaration, making space for GlobalDeclaration super class encompassing also enumerators.
Initial release