Landing: a2bd06e89526

Project / Subsystem

gcc / analyzer

Date

2026-05-06

Author

David Malcolm

Commit

a2bd06e89526a69925157d0cbecb521fb2a360e0

Source

github

Perf win

No

Breaking

No

All attributes

project
gcc
subsystem
analyzer
patch_id
commit_hash
a2bd06e89526a69925157d0cbecb521fb2a360e0
source_type
github
headline
Analyzer: generating raw state for rewinding data flow
tldr
The analyzer now retains raw state when rewinding data flow, improving diagnostic accuracy without disabling state purging.
author
David Malcolm
outcome
committed
performance_win
false
breaking_change
false
series_id
series_parts
[]
tags
  • analyzer
  • data flow
  • diagnostics
  • bugfix
  • state purging
discussion_id_link
bugzilla_pr
date
2026-05-06T00:00:00.000Z

The analyzer now retains raw state when rewinding data flow for diagnostics. This fixes an issue where state purging would eliminate pertinent information, leading to inaccurate or incomplete diagnostics, especially in divide-by-zero scenarios. The patch extends diagnostic_manager::annotate_exploded_path to build region model instances without state purging or merging. This allows the analyzer to reliably rewind state and provide more accurate diagnostics, removing the need to disable state purging in certain test cases.