On Fri, Mar 13, 2015 at 4:28 PM, Tom de Vries <tom_devr...@mentor.com> wrote: > On 13-03-15 13:36, Richard Biener wrote: >> >> On Fri, Mar 13, 2015 at 1:07 PM, Jakub Jelinek <ja...@redhat.com> wrote: >>> >>> On Fri, Mar 13, 2015 at 01:04:57PM +0100, Richard Biener wrote: >>>> >>>> Not really (I don't like -fdump-passes ...), but we need to make sure >>>> that -fdump-passes doesn't crash (because it runs very early and >>>> with cfun == NULL I think) >>> >>> >>> If it runs with cfun == NULL, then supposedly the gates that are >>> dependent >>> on current function should for -fdump-passes purposes also return true >>> if cfun == NULL (well, of course do all the unconditional checks). >>> Though of course, with optimize/target attributes this is harder, as >>> different functions can use different options. >> >> >> Yes, one reason why I think -fdump-passes is just broken >> implementation-wise. >> > > Atm fdump-passes doesn't run with cfun == NULL. > > From pass_manager::dump_passes: > ... > FOR_EACH_FUNCTION (n) > if (DECL_STRUCT_FUNCTION (n->decl)) > { > node = n; > break; > } > > if (!node) > return; > > push_cfun (DECL_STRUCT_FUNCTION (node->decl));
Um - this now picks a random function which may be one with an optimize or target attribute associated to it. Richard. > ... > > This was discussed here: > https://gcc.gnu.org/ml/gcc-patches/2011-06/msg00856.html > > Thanks, > - Tom