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

Call Graph Same Function Name #3

Open
yavuzkoroglu opened this issue Aug 28, 2023 · 0 comments
Open

Call Graph Same Function Name #3

yavuzkoroglu opened this issue Aug 28, 2023 · 0 comments
Labels
good first issue Good for newcomers question Further information is requested wontfix This will not be worked on

Comments

@yavuzkoroglu
Copy link
Collaborator

In C, it is possible to have two or more units (.c files) where every unit contains a function with the same name. In that case, it may be impossible to decide the target of a function call without compiling the code.

Currently, when such a call occurs, the Call Graph (CG) generator first looks for a callee in the same unit. If there is one, the CG generator makes a solid connection to that function. If not, then the CG generator connects the caller to all possible callees with a dashed line. When computing the Response For Unit (RFU) metric, which is the same as Response For Class (RFC) metric for Java, if the user asks for the transitive closure with the --RFU-Transitive option, all the dashed connections count as one no matter how many, but all the calls from these functions are summed up, which may inflate the final RFU value for a unit.

I am open to suggestions on how to resolve the target in case of same function name used in multiple units.

@yavuzkoroglu yavuzkoroglu added good first issue Good for newcomers question Further information is requested wontfix This will not be worked on labels Aug 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers question Further information is requested wontfix This will not be worked on
Projects
None yet
Development

No branches or pull requests

1 participant