https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70594
--- Comment #29 from Jakub Jelinek <jakub at gcc dot gnu.org> --- The different order of copy_node_stat happens during tree_function_versioning -> remap_blocks -> remap_block -> remap_decls -> remap_decl -> copy_decl_no_change -> copy_node_stat, and the BLOCK_VARS are already ordered differently there: BLOCK #0 SUPERCONTEXT: XXXXX_yyparse SUBBLOCKS: BLOCK #621 BLOCK #623 VARS: yynewstate yysetstate yybackup yyacceptlab yyabortlab yyssa yyssp yyn yyresult vs. BLOCK #0 SUPERCONTEXT: XXXXX_yyparse SUBBLOCKS: BLOCK #676 BLOCK #678 VARS: yybackup yyacceptlab yyabortlab yynewstate yysetstate yystate yyerrstatus yyssa yyss yyssp yyvsa yyvs yyvsp yystacksize yyn yyresult yytoken yyval yylen (the first one is from -g0, the latter -g2). Let me debug where the order comes from.