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