Landing: c31d01c3eaec
Project / Subsystem
gcc / c++/modules
Date
2026-04-29
Author
Patrick Palka
Commit
c31d01c3eaecfce32659d5e6acaf0cd858ef0569
Source
github
Perf win
No
Breaking
No
All attributes
- project
- gcc
- subsystem
- c++/modules
- patch_id
- —
- commit_hash
- c31d01c3eaecfce32659d5e6acaf0cd858ef0569
- source_type
- github
- headline
- C++ Modules: Fix merging of member functions
- tldr
- Declaration merging now considers whether a member function has an implicit or explicit object parameter to avoid ICEs.
- author
- Patrick Palka
- outcome
- committed
- performance_win
- false
- breaking_change
- false
- series_id
- —
- series_parts
- []
- tags
-
- • c++
- • modules
- • bugfix
- discussion_id_link
- —
- bugzilla_pr
- —
- date
- 2026-04-29T00:00:00.000Z
The C++ module merging process in GCC could ICE during declaration merging of static member functions. The merge key lacked sufficient information to differentiate between overloads differing only by the presence of an object parameter. This patch adds iobj_p and xobj_p bits to the merge key to resolve this ambiguity, fixing the ICE. New test cases are added.