Releases: Fraunhofer-AISEC/cpg
Releases · Fraunhofer-AISEC/cpg
3.2.0
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 GraphEOG
where a condition evaluation leads to a branch. The value represents the result of the evaluation:true
orfalse
.
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 ofgetParametersPropertyEdge()
, e.g.get
to allow access to the in-memory representation of the PropertyEdge-feature.
3.1.0
3.0.0
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 overaddDeclaration
.
2.3.0
Graph Changes
Changed
MemberExpressions
are nowDeclaredReferenceExpressions
that additionally include a base expression. Thus the old member expression has been removed and replaced by standardrefersTo
edges.MemberExpression
base is now aDeclaredReferenceExpression
that is subsequently connected to the field or variable it refers to, as opposed to the node-switching magic that had happened beforeStaticReferenceExpression
is gone. Its replacement is thestaticAccess
flag insideDeclaredReferenceExpression
. This is cleaner than before, asStaticReferenceExpressions
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 aDeclaredReferenceExpression
is no longer a collection, but rather a single reference to aValueDeclaration
. - The
refersTo
collection of aDeclaredReferenceExpression
is no longer limited toValueDeclaration
but also accepts Declarations. This is due to the fact that bases ofMemberExpressions
can refer toRecordDeclarations
. 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
Fixes
- Field
annotations
ofNode
is nevernull
2.2.0
v2.2.0 Restored documented behaviour of loadIncludes (#182)
2.1.1
Merge pull request #168 from Fraunhofer-AISEC/cdt-9.11 CDT 9.11
2.1.0
Merge pull request #163 from Fraunhofer-AISEC/julian/type-hierarchy-java Type hierarchy (for Java)
2.0.1
v2.0.1 Only publish tags with 'v'