I. Introduction
Ddiscovering vulnerabilities is a classic yet challenging problem. Constantly analyzing large amounts of source code, in particular, has been a major focus of software engineering research. Among the various paradigms of security analysis tools [17], [71], [140], static application security testing (SAST) tools [69], [91] have become one of the mainstream due to their high flexibility for analyzing software without running it and their typically greater comprehensiveness when compared to dynamic application security testing (DAST) tools [16], [140].