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