> > So there is indeed no point in trying to fix one or two cases, and we should > > instead instruct LTO somehow to treat System.Address is compatible with > > void* otherwise we'll run into endless troubles on that since using > > System.Address as void* is very common practice in Ada code. > > Maybe we could apply this special treatment only to the void_ptr subtype of > Interfaces.C.Extensions and require its use when interfacing with C.
No, Interfaces.C.Extensions is non portable, so almost no Ada code out there is using it. As I said, existing Ada code is using System.Address all the time, so requiring any code change in this area is just a non starter. We'd rather require that people don't use LTO with Ada rather than tell them to use Interfaces.C.Extensions, that would be more constructive :-) Arno