On Mon, Nov 23, 2015 at 12:45 PM, Eric Botcazou <ebotca...@adacore.com> wrote: >> 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 :-) > > I see, too bad that Interfaces.C doesn't define something along these lines. > > In practice I'm not sure it's a big issue, because presumably it's essentially > used to interface the C library and AFAIK we don't LTO the C library (yet). > And I presume that, if people start interfacing in Ada with C code doing heavy > pointer manipulation, we can also point them to Interfaces.C.Pointers. :-)
But can't you on the GENERIC side drop System.Address to void_ptr_node again and just not make use of the "heavy lifting" you were talking about? That is, why is that speciality of System.Address not a Ada FE thing only? Richard. > -- > Eric Botcazou