http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48835
--- Comment #13 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2011-06-14 11:27:24 UTC --- > Why not patch the frontend to magically make System.Address a pointer type for > the backend to deal with? That way, no functions have to be changed, and > potential other targets with “weird” calling conventions immediately share in > the benefit. Let's be clear: changing the Ada front-end because of weird ABIs on little-used platforms is pretty much out of question; this issue only arises on m68k AFAIK. > As for the “compatibility trick”, it works the other way around, only when a > pointer-returning function is called expecting integers. Here, we have an > integer-returning function by mistake. Right, that's precisely why I proposed the attribute.