On Thu, Jan 29, 2015 at 04:21:15PM +0100, Richard Biener wrote: > On Thu, Jan 29, 2015 at 4:12 PM, Richard Biener > >> Did you check whether other targets have function descriptors (seem > >> to remember the Itanic here at least)?
Yes, ia64 and hppa64 use function descriptors. I don't know of any others. > > thus when the function address-taking happens in the same function > > as the call there will be no aliasing as it points to nothing (points-to > > doesn't track function decls). And if it's flowing in from the outside > > you get "all globals". > > > > This means that you still will be able to create a testcase that is > > miscompiled with exposing the address-taking to points-to analysis. I'm sorry, I don't see how to. (I'm not disagreeing, just ignorant.) One thing to consider is that a function address is potentially pointing at read-only memory. eg. -z relro on current ld.bfd makes powerpc64 .opd read-only. So people can't twiddle a "real" function descriptor. The only case that matter for ppc64 are where people build their own function descriptor, as is done in glibc. > > And it means that indirect calls to const functions are severely > > pessimized (not that it matters?) as they effectively become pure calls. That might be a problem but see my other email comparing gcc object files. -- Alan Modra Australia Development Lab, IBM