diff options
author | Patrick Palka <ppalka@redhat.com> | 2024-02-13 14:26:40 -0500 |
---|---|---|
committer | Patrick Palka <ppalka@redhat.com> | 2024-02-13 14:26:40 -0500 |
commit | cb76d7e47693364861e63ea3bb274b1b5295a943 (patch) | |
tree | 9b8e802c807ae2491b5bd68dfd338ea1fad73b09 /gcc/print-rtl-function.cc | |
parent | ce67b75e918bcbd31ed32bc820f5233c72670feb (diff) | |
download | gcc-cb76d7e47693364861e63ea3bb274b1b5295a943.zip gcc-cb76d7e47693364861e63ea3bb274b1b5295a943.tar.gz gcc-cb76d7e47693364861e63ea3bb274b1b5295a943.tar.bz2 |
c++/modules: ICEs with modular fmtlib
Building modular fmtlib triggered two small modules bugs in C++23 and
C++26 mode respectively (due to libstdc++ header differences).
The first is that a TEMPLATE_DECL having DECL_LANG_SPECIFIC doesn't
necessarily imply that its DECL_TEMPLATE_RESULT has DECL_LANG_SPECIFIC.
So in add_specializations we need to use STRIP_TEMPLATE consistently;
this is a follow-up to r12-7187-gdb84f382ae3dc2.
The second is that get_originating_module_decl was ICEing on class-scope
enumerators injected via using-enum. I suppose we should handle them
like a class-scope entity rather than a non-using-enum enumerator.
gcc/cp/ChangeLog:
* module.cc (depset::hash::add_specializations): Use
STRIP_TEMPLATE consistently.
(get_originating_module_decl): Handle class-scope CONST_DECL.
gcc/testsuite/ChangeLog:
* g++.dg/modules/friend-6_a.C: New test.
* g++.dg/modules/using-enum-3_a.C: New test.
* g++.dg/modules/using-enum-3_b.C: New test.
Reviewed-by: Jason Merill <jason@redhat.com>
Diffstat (limited to 'gcc/print-rtl-function.cc')
0 files changed, 0 insertions, 0 deletions