awslabs / ar-go-tools

ar-go-tools (Argot) is a collection of analysis tools for Go
Apache License 2.0
25 stars 1 forks source link

Handling of reflection #96

Open victornicolet opened 1 month ago

victornicolet commented 1 month ago

Some handling of functions of the reflect library in the pointer analysis conflict with our use of summaries to avoid issued with reflection. For example, calls to (reflect.Value).Call are eliminated (inlined) by the pointer analysis and do not appear in the callgraph. Despite us having a summary that overapproximates the dataflows in this function, our dataflow analysis is unsound because the summary is never used. We need to find a way to have both pointer analysis and dataflow analysis work with the parts of the reflect library we can approximate (although in general, we do not support reflection).