https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126017

--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
This seems to work:
--- a/gcc/tree.h        2026-08-21 14:40:07.157109500 +0200
+++ b/gcc/tree.h        2026-09-14 22:17:55.532155773 +0200
@@ -6343,7 +6343,15 @@ more_call_expr_args_p (const call_expr_a
 inline bool
 is_lang_specific (const_tree t)
 {
-  return TREE_CODE (t) == LANG_TYPE || TREE_CODE (t) >= NUM_TREE_CODES;
+  if (TREE_CODE (t) >= NUM_TREE_CODES)
+    return true;
+  /* Return false for C++ std::meta::info type.  */
+  else if (TREE_CODE (t) == LANG_TYPE
+          && (TYPE_IDENTIFIER (t) == NULL_TREE
+              || !id_equal (TYPE_IDENTIFIER (t), "decltype(^^int)")))
+    return true;
+  else
+    return false;
 }

 /* Valid builtin number.  */
--- a/gcc/lto-streamer-out.cc   2026-07-20 09:57:50.693934604 +0200
+++ b/gcc/lto-streamer-out.cc   2026-09-14 21:45:18.077056366 +0200
@@ -564,7 +564,6 @@ lto_is_streamable (tree expr)
      name version in lto_output_tree_ref (see output_ssa_names).  */
   return !is_lang_specific (expr)
         && code != SSA_NAME
-        && code != LANG_TYPE
         && code != MODIFY_EXPR
         && code != INIT_EXPR
         && code != TARGET_EXPR

Reply via email to