https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96394
--- Comment #2 from Sergei Trofimovich <slyfox at gcc dot gnu.org> --- My guess is it's somehow related to the fact that inliner did 'termvalid' inline (twice probably?): """ static int validate_chain_two_ops(node *tree, int (*termvalid)(node *), int op1, int op2) { int pos = 1; int nch = ((tree)->n_nchildren); int res = ((((nch) & 1) == 1) && (*termvalid)((&(tree)->n_child[0]))); for ( ; res && (pos < nch); pos += 2) { if ((((&(tree)->n_child[pos]))->n_type) != op1) res = validate_ntype((&(tree)->n_child[pos]), op2); if (res) res = (*termvalid)((&(tree)->n_child[pos + 1])); } return (res); } static int validate_shift_expr(node *tree) { return (validate_ntype(tree, 321) && validate_chain_two_ops(tree, validate_arith_expr, 34, 35)); } static int validate_arith_expr(node *tree) { return (validate_ntype(tree, 322) && validate_chain_two_ops(tree, validate_term, 14, 15)); } """ I can't craft short example from this as is. Is there a way to reduce with cvise/creduce both .c and .gcda files at the same time?