PredicateFix: Repairing Static Analysis Alerts with Bridging Predicates
Fuente:
arXiv
Gespeichert in:
| Hauptverfasser: | , , , , , |
|---|---|
| Format: | Preprint |
| Veröffentlicht: |
2025
|
| Schlagworte: | |
| Online-Zugang: | |
| Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
| _version_ | 1866909881283379200 |
|---|---|
| author | Xiao, Yuan-An Wang, Weixuan Liu, Dong Zhou, Junwei Cheng, Shengyu Xiong, Yingfei |
| author_facet | Xiao, Yuan-An Wang, Weixuan Liu, Dong Zhou, Junwei Cheng, Shengyu Xiong, Yingfei |
| contents | 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. |
| format | Preprint |
| id |
arxiv_https___arxiv_org_abs_2503_12205 |
| institution | arXiv |
| publishDate | 2025 |
| record_format | arxiv |
| spellingShingle | PredicateFix: Repairing Static Analysis Alerts with Bridging Predicates Xiao, Yuan-An Wang, Weixuan Liu, Dong Zhou, Junwei Cheng, Shengyu Xiong, Yingfei Software Engineering 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. |
| title | PredicateFix: Repairing Static Analysis Alerts with Bridging Predicates |
| topic | Software Engineering |
| url | https://arxiv.org/abs/2503.12205 |