Fixing static analysis alerts in source code with Large Language Models (LLMs) is becoming increasingly popular. However, LLMs often hallucinate and perform poorly for complex and less common alerts. Retrieval-augmented generation (RAG) aims to solve this problem by providing the model with a relevant example, but existing approaches face the challenge of unsatisfactory quality of such examples. To address this challenge, we utilize the predicates in the analysis rule, which serve as a bridge between the alert and relevant code snippets within a clean code corpus, called key examples. Based on this insight, we propose an algorithm to retrieve key examples for an alert automatically, and build PredicateFix as a RAG pipeline to fix alerts from two static code analyzers: CodeQL and GoInsight. Evaluation with multiple LLMs shows that PredicateFix increases the number of correct repairs by 27.1% ~ 69.3%, significantly outperforming other baseline RAG approaches.
@article{arxiv.2503.12205,
title = {PredicateFix: Repairing Static Analysis Alerts with Bridging Predicates},
author = {Yuan-An Xiao and Weixuan Wang and Dong Liu and Junwei Zhou and Shengyu Cheng and Yingfei Xiong},
journal= {arXiv preprint arXiv:2503.12205},
year = {2025}
}