Landing: 7b804275b251

Project / Subsystem

gcc / middle-end

Date

2026-05-04

Author

Richard Biener

Commit

7b804275b251cabc9699717713f3870b89ab3395

Source

github

Perf win

No

Breaking

No

All attributes

project
gcc
subsystem
middle-end
patch_id
commit_hash
7b804275b251cabc9699717713f3870b89ab3395
source_type
github
headline
Preserve edge flags in cleanup_control_expr_graph.
tldr
The cleanup_control_expr_graph function now preserves edge flags like EDGE_IRREDUCIBLE_LOOP, instead of clearing them unintentionally.
author
Richard Biener
outcome
committed
performance_win
false
breaking_change
false
series_id
series_parts
[]
tags
  • middle-end
  • cfg
  • bugfix
discussion_id_link
bugzilla_pr
date
2026-05-04T00:00:00.000Z

The cleanup_control_expr_graph function was clearing all edge flags, including EDGE_IRREDUCIBLE_LOOP, when setting EDGE_FALLTHRU. It now only clears EDGE_TRUE_VALUE and EDGE_FALSE_VALUE, preserving other important flags. A new testcase, gcc.dg/torture/pr125156.c, was added to ensure the correct behavior.