PredicateFix: Repairing Static Analysis Alerts with Bridging Predicates

Fuente: arXiv
Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Xiao, Yuan-An, Wang, Weixuan, Liu, Dong, Zhou, Junwei, Cheng, Shengyu, Xiong, Yingfei
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