https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91572
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- The problem is that the type of the GIMPLE_ASM constraint strings isn't noted by free lang data type discovery. Either: --- gcc/tree.c.jj 2019-08-27 12:26:37.436912167 +0200 +++ gcc/tree.c 2019-08-28 17:57:13.823742284 +0200 @@ -5848,7 +5848,10 @@ find_decls_types_r (tree *tp, int *ws, v class free_lang_data_d *fld = (class free_lang_data_d *) data; if (TREE_CODE (t) == TREE_LIST) - return NULL_TREE; + { + walk_tree (&TREE_PURPOSE (t), find_decls_types_r, fld, &fld->pset); + return NULL_TREE; + } /* Language specific nodes will be removed, so there is no need to gather anything under them. */ or: --- gcc/tree.c.jj 2019-08-27 12:26:37.436912167 +0200 +++ gcc/tree.c 2019-08-28 18:02:58.669748627 +0200 @@ -12307,6 +12307,7 @@ walk_tree_1 (tree *tp, walk_tree_fn func case TREE_LIST: WALK_SUBTREE (TREE_VALUE (*tp)); + WALK_SUBTREE (TREE_PURPOSE (*tp)); WALK_SUBTREE_TAIL (TREE_CHAIN (*tp)); break; fixes this, the latter change looks more correct to me, but it will be as well more risky.