On 08/08/2016 01:00 PM, Jakub Jelinek wrote:
Hi!

In cross to mingw we ICE on the following testcase, because fixup_cfg pass
adds __builtin_unreachable call without adding corresponding cgraph_edge
(the body of the parallel region doesn't return, so while GOMP_parallel
isn't a noreturn function, it will actually never return).

Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?

Or is there a better check on when we care about the cgraph edges being
maintained?

2016-08-08  Jakub Jelinek  <ja...@redhat.com>

        PR target/71910
        * tree-cfg.c (execute_fixup_cfg): Add node variable, use it.  Before 
inlining,
        add cgraph edge for the added __builtin_unreachable call.

        * g++.dg/gomp/pr71910.C: New test.
I don't particularly like intertwining the control-flow-graph bits with the call-graph bits, it seems wrong from a modularity standpoint.

But we need to examine the CFG to know when the call graph needs fixing. So, I guess this is OK. If we find more call graph stuff bleeding in here we'll probably want to look at some kind of refactoring.

jeff

Reply via email to