Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Underapproximation in closeOverriddenVirtualCalls #83

Open
linuswagner opened this issue Feb 19, 2024 · 1 comment · May be fixed by #84
Open

Underapproximation in closeOverriddenVirtualCalls #83

linuswagner opened this issue Feb 19, 2024 · 1 comment · May be fixed by #84

Comments

@linuswagner
Copy link
Collaborator

@synopsis{fills out the call graph by adding the tuples for possible actual methods and constructors, and removing the corresponding calls to virtual methods and constructors.}
rel[loc caller, loc callee] closeOverriddenVirtualCalls(M3 comp) {
  return comp.callGraph 
    + comp.callGraph o comp.methodOverrides // add the overridden definitions
    - rangeR(comp.callGraph, comp.methodOverrides<0>); // remove the virtual intermediates
}

See this example: There can be implementations for virtual methods. Therefore, the last line in the function creates an underapproximation and seems to be misleading

@jurgenvinju
Copy link
Member

Good catch Linus. Let's remove the removal altogether until we can remove only virtual methods without bodies.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants