The general Function::hasAddressTaken has two issues that make it
inappropriate for our purposes:
- it is sensitive to dead constant users (PR43858 / crbug.com/1019970), leading to different codegen when debu info is enabled
- it considers direct calls via a function cast to be address escapes
The first is fixable, but the second is not, because IPO clients rely on
this behavior. They assume this function means that all call sites are
analyzable for IPO purposes.
So, implement our own analysis, which gets closer to finding functions
that may be indirect call targets.
Even if we did decide CFG should protect indirectbr, the target would be the block in question, not the function. So this FIXME isn't really in the right place.