> > ../../gcc/ada/s-os_lib.adb:1007:16: note: return value type
> > mismatch
> >        function strerror (errnum : Integer) return System.Address;
> >                 ^
> > 
> > ../../gcc/ada/s-os_lib.adb:1007:16: note:
> > ???system__os_lib__errno_message__strerror??? was previously
> > declared here
> > 
> > Here we have function returning pointer WRT function returning integer:
> 
> This one is on purpose and cannot be easily changed.  Pointer types (or access
> types as called in Ada) are avoided as much as possible in the runtime because
> they drag the accessibility machinery, which is the machinery present in
> the
> language to eliminate dangling references and is heavy; so they are usually
> imported as System.Address instead.

This particular instance can probably be fixed, I'll give it a shot when I
get a chance. But you're right that the general issue is that System.Address
is often used as a void*

Arno

Reply via email to