secure-software-engineering / phasar

A LLVM-based static analysis framework.
Other
927 stars 140 forks source link

Better EdgeFunctions #578

Closed fabianbs96 closed 1 year ago

fabianbs96 commented 1 year ago

Story

PhASAR's API for implementing IDE analyses requires implementing EdgeFunctions. However, when implementing such an ananlysis, we tend to implement the same few edge functions over and over again as there are insufficient defaults. Additionally, the deep integration with std::shared_ptr is unintuitive and error-prone. Finally, we use llvm::dyn_cast for runtime type-checking everywhere in PhASAR, only for EdgeFunctions we use dynamic_cast instead. This is unintuitive as well and difficult to teach.

Improve this.

Prerequisites

Out Of Scope

Acceptance Criteria

The following acceptance criteria are defined regarding the result of this story: Clarify what the final result should be, not how to accomplish it.

Related Stories

Follow-up Stories