diff options
Diffstat (limited to 'gcc/cgraph.c')
-rw-r--r-- | gcc/cgraph.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/cgraph.c b/gcc/cgraph.c index a6a16e6..568486e 100644 --- a/gcc/cgraph.c +++ b/gcc/cgraph.c @@ -1409,7 +1409,14 @@ cgraph_remove_node (struct cgraph_node *node) void cgraph_mark_address_taken_node (struct cgraph_node *node) { - gcc_assert (!node->global.inlined_to); + /* Indirect inlining can figure out that all uses of the address are + inlined. */ + if (node->global.inlined_to) + { + gcc_assert (cfun->after_inlining); + gcc_assert (node->callers->indirect_inlining_edge); + return; + } /* FIXME: address_taken flag is used both as a shortcut for testing whether IPA_REF_ADDR reference exists (and thus it should be set on node representing alias we take address of) and as a test whether address |