From: Jason Merrill Date: Sat, 5 Oct 2024 02:23:04 +0000 (-0400) Subject: c++: -Wmismatched-tags and modules X-Git-Tag: basepoints/gcc-16~5432 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bc0ca75123b5996773628981a8bab865440fdf3c;p=thirdparty%2Fgcc.git c++: -Wmismatched-tags and modules In Wmismatched-tags-6.C, we try to compare two declarations of the Cp alias template, and ICE trying to check whether they're in module purview. We need to check DECL_LANG_SPECIFIC like elsewhere in the compiler. gcc/cp/ChangeLog: * decl.cc (duplicate_decls): Only check PURVIEW_P if DECL_LANG_SPECIFIC. --- diff --git a/gcc/cp/decl.cc b/gcc/cp/decl.cc index 07fb9855cd2..0c5b5c06a12 100644 --- a/gcc/cp/decl.cc +++ b/gcc/cp/decl.cc @@ -2530,7 +2530,7 @@ duplicate_decls (tree newdecl, tree olddecl, bool hiding, bool was_hidden) /* Propagate purviewness and importingness as with set_instantiating_module. */ - if (modules_p ()) + if (modules_p () && DECL_LANG_SPECIFIC (new_result)) { if (DECL_MODULE_PURVIEW_P (new_result)) DECL_MODULE_PURVIEW_P (old_result) = true;