Tested x86_64-pc-linux-gnu, applying to trunk.

-- 8< --

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.
---
 gcc/cp/decl.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

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;

base-commit: 53f20f992a7b0f18fec83ea696c466aa53a1293c
-- 
2.46.2

Reply via email to