On February 7, 2019 11:37:29 PM GMT+01:00, Jakub Jelinek <ja...@redhat.com> wrote: >Hi! > >I've noticed pre_and_rev_post_order_compute_fn is one of (apparently >many) >functions that take a struct function * argument and accept any >function, as >long as it is cfun. For a patch I've been working on I actually need >it >to handle other functions as well and in this case it is trivial to >fix. >I've seen several others e.g. in graph.c, though some of those are >harder to >deal with, as some there are calls to functions that don't have a >variant >with struct function * argument and assume cfun implicitly. > >Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
EH... OK. Richard. >2019-02-07 Jakub Jelinek <ja...@redhat.com> > > * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of > cfun everywhere. > >--- gcc/cfganal.c.jj 2019-01-01 12:37:17.915962514 +0100 >+++ gcc/cfganal.c 2019-02-07 20:47:29.035520143 +0100 >@@ -951,10 +951,10 @@ pre_and_rev_post_order_compute_fn (struc > bool include_entry_exit) > { > int pre_order_num = 0; >- int rev_post_order_num = n_basic_blocks_for_fn (cfun) - 1; >+ int rev_post_order_num = n_basic_blocks_for_fn (fn) - 1; > > /* Allocate stack for back-tracking up CFG. */ >- auto_vec<edge_iterator, 20> stack (n_basic_blocks_for_fn (cfun) + >1); >+ auto_vec<edge_iterator, 20> stack (n_basic_blocks_for_fn (fn) + 1); > > if (include_entry_exit) > { >@@ -968,7 +968,7 @@ pre_and_rev_post_order_compute_fn (struc > rev_post_order_num -= NUM_FIXED_BLOCKS; > > /* Allocate bitmap to track nodes that have been visited. */ >- auto_sbitmap visited (last_basic_block_for_fn (cfun)); >+ auto_sbitmap visited (last_basic_block_for_fn (fn)); > > /* None of the nodes in the CFG have been visited yet. */ > bitmap_clear (visited); > > Jakub