Skip to content

Releases: Fraunhofer-AISEC/cpg

3.2.0

28 Nov 11:48
a249b8c
Compare
Choose a tag to compare

Graph Changes

Added

  • Property INDEX for edges part of a list to preserve information where ordering has semantic or syntactic information
  • Property BRANCH for edges part of the Evaluation Order Graph EOG where a condition evaluation leads to a branch. The value represents the result of the evaluation: true or false.

API Changes

Added

  • For Backward compatibility all functions that previously returned Nodes, e.g. getParameters() now unwrap the node on the Property Edge on the other side of the Edge that was previously member of the list. Instead function were added that return the List of of getParametersPropertyEdge(), e.g. get to allow access to the in-memory representation of the PropertyEdge-feature.

3.1.0

16 Oct 19:46
b752d4a
Compare
Choose a tag to compare

Fixes

  • Hotfix: Do not use URI in LocationConverter (#256)

3.0.0

24 Sep 19:50
8f5f461
Compare
Choose a tag to compare

Graph Changes

Changed

  • A definition edge for fields as not only methods can have definitions and declarations.

API Changes

Changed

  • Moving Declarations to .graph.declarations, statements to .graph.statements and expressions to .graph.statement.expressions for easier overview of the whole CPG structure.
  • Introduces a new configuration options for so called "unity" builds, combine all translation units together into one to reduce the amount of headers that need to be processed.
  • Adds a DefinitionHolder Interface for Nodes to implement that then have to customize where Declarations are added over addDeclaration.

2.3.0

31 Aug 15:54
85433e2
Compare
Choose a tag to compare

Graph Changes

Changed

  • MemberExpressions are now DeclaredReferenceExpressions that additionally include a base expression. Thus the old member expression has been removed and replaced by standard refersTo edges.
  • MemberExpression base is now a DeclaredReferenceExpression that is subsequently connected to the field or variable it refers to, as opposed to the node-switching magic that had happened before
  • StaticReferenceExpression is gone. Its replacement is the staticAccess flag inside DeclaredReferenceExpression. This is cleaner than before, as StaticReferenceExpressions had no further use other than the meaning of this new flag.
  • Calls to unknown functions/methods leads to creation of empty function/method declarations whose name, return type and signature matches the corresponding call expression. No new record declarations or translation units are created.

API Changes

Changed

  • The refersTo field of a DeclaredReferenceExpression is no longer a collection, but rather a single reference to a ValueDeclaration.
  • The refersTo collection of a DeclaredReferenceExpression is no longer limited to ValueDeclaration but also accepts Declarations. This is due to the fact that bases of MemberExpressions can refer to RecordDeclarations.
  • DeclaredReferenceExpression.setRefersTo(Declaration) can now also handle null values for convenience. They are simply discarded if null
  • Converted IVisitable to an interface

2.2.1

14 Aug 20:06
943ea94
Compare
Choose a tag to compare

Fixes

  • Field annotations of Node is never null

2.2.0

31 Jul 10:02
220b27e
Compare
Choose a tag to compare
v2.2.0

Restored documented behaviour of loadIncludes (#182)

2.1.1

16 Jul 15:59
fd198bd
Compare
Choose a tag to compare
Merge pull request #168 from Fraunhofer-AISEC/cdt-9.11

CDT 9.11

2.1.0

16 Jul 08:47
ff3dd6d
Compare
Choose a tag to compare
Merge pull request #163 from Fraunhofer-AISEC/julian/type-hierarchy-java

Type hierarchy (for Java)

2.0.1

26 Jun 09:11
fdfa930
Compare
Choose a tag to compare
v2.0.1

Only publish tags with 'v'

2.0.0

19 May 13:33
Compare
Choose a tag to compare
[Gradle Release Plugin] - creating tag:  '2.0.0'.