In the analysis performed by OptAnalyzer, when the skip_unoptimized_throw_blocks configuration is enabled, dynamic dispatch on throw code path is supposed to be ignored. However, cached reports of non-inlined callees on the throw code path were not ignored, leading to confusion (#643). This commit addresses the issue by overloading the propagation of reports from callees in abstract interpretation.
While the issue has been resolved, the resulting code is quite hacky, and improvements to these interfaces are certainly desirable.
In the analysis performed by
OptAnalyzer
, when theskip_unoptimized_throw_blocks
configuration is enabled, dynamic dispatch onthrow
code path is supposed to be ignored. However, cached reports of non-inlined callees on thethrow
code path were not ignored, leading to confusion (#643). This commit addresses the issue by overloading the propagation of reports from callees in abstract interpretation.While the issue has been resolved, the resulting code is quite hacky, and improvements to these interfaces are certainly desirable.