]> git.ipfire.org Git - thirdparty/gcc.git/commit
c++/modules: Ensure DECL_FRIEND_CONTEXT is streamed [PR119939]
authorNathaniel Shead <nathanieloshead@gmail.com>
Fri, 25 Apr 2025 14:10:34 +0000 (00:10 +1000)
committerNathaniel Shead <nathanieloshead@gmail.com>
Sun, 27 Apr 2025 12:55:16 +0000 (22:55 +1000)
commit1c5cf7cc82d3a2afa5d4fb90049456be408c2a7a
tree4c6ed1a0efd9238658fd7e1335ed753ec511e938
parentf962f594e9006651379dafc9ef039be9654e6291
c++/modules: Ensure DECL_FRIEND_CONTEXT is streamed [PR119939]

An instantiated friend function relies on DECL_FRIEND_CONTEXT being set
to be able to recover the template arguments of the class that
instantiated it, despite not being a template itself.  This patch
ensures that this data is streamed even when DECL_CLASS_SCOPE_P is not
true.

PR c++/119939

gcc/cp/ChangeLog:

* module.cc (trees_out::lang_decl_vals): Also stream
lang->u.fn.context when DECL_UNIQUE_FRIEND_P.
(trees_in::lang_decl_vals): Likewise.

gcc/testsuite/ChangeLog:

* g++.dg/modules/concept-11_a.H: New test.
* g++.dg/modules/concept-11_b.C: New test.

Signed-off-by: Nathaniel Shead <nathanieloshead@gmail.com>
gcc/cp/module.cc
gcc/testsuite/g++.dg/modules/concept-11_a.H [new file with mode: 0644]
gcc/testsuite/g++.dg/modules/concept-11_b.C [new file with mode: 0644]