> See PR48835. The Ada situation is even worse, it doesn't even try to > cast the (wrongly declared) function to the correct type before calling > it.
How could it, since it doesn't know the correct type of the function? The way out is to change the type of the function on the Ada side, as explained in: https://gcc.gnu.org/ml/gcc-patches/2012-02/msg00556.html so this is largely unrelated to the problem at stake in this thread. As for PR ada/48835, the incentive to bite the bullet was low until recently, but it turns out that the polymorphism pointer/address is also problematic for LTO on all architectures so we'll probably give it a try for GCC 7. -- Eric Botcazou