Skip to content

Question: how to determine that vstmt/vexpr RVAL contains a function call in GenProg AST  #34

@pdreiter

Description

@pdreiter

I’m stuck and I hope that perhaps that either of you might have some insight on the GenProg code with respect to the AST tree.
My goal is to determine the coverage-based call tree statically given a specific coverage point.

So far, I have been able to:

  1. fix some of the underlying issues with the cdiff.ml related content (returned data structure in fundec_to_ast/internal_structural_signature/map_union)
  2. reuse/extend the basic cdiff functionality to get the parent/child relationship of the AST tree
  3. correlate the cdiff numbering scheme to the sid scheme used in the covVisitor.

However, when reviewing the results, it looks like when the RVAL is a function call, this parent->child relationship isn’t caught.

I’ve been reviewing the cil.ml code and it looks like I could potentially analyze the RVAL in an overridden vexpr method to see if its of type TFun, but I thought I would check with you, the expert(s), to get your thoughts. I see something like the visitCilExpr (line 5121 of cil.ml) that is similar to what I’m thinking, but I’m a bit lost.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions