Re: [Gcl-devel] Re: (object (*)()) vs (long (*)())
Greetings! OK, you convinced me! I'm uploading now...
Take care,
Andreas Schwab <schwab@suse.de> writes:
> Camm Maguire <camm@enhanced.com> writes:
>
> |> Greetings, and thanks for your *very helpful* reply!
> |>
> |> OK, now it is clear to me what is going on. I calling all functions
> |> through a variable declared to return a pointer, and some functions
> |> are returning a long.
> |>
> |> I can fix the instances in the existing code fairly easily, but the
> |> issue is that the lisp compiler produces C code using these
> |> interchangeable declarations. At some point, I need to either have
> |> all compiled functions return the same union and use the existing
> |> function link helper functions (in funlink.c, et.al.), or to duplicate
> |> these functions to handle function variables returning long and modify
> |> the compiler to use these in the correct instances instead. As
> |> always, the implementation is much easier than the conception of the
> |> proper solution. Comments most welcome.
>
> The only proper solution is to make all functions use the same signature,
> and cast the return value at the call site. Otherwise you will get
> problems on other architectures as well.
>
> Andreas.
>
> --
> Andreas Schwab, SuSE Labs, schwab@suse.de
> SuSE Linux AG, Deutschherrnstr. 15-19, D-90429 Nürnberg
> Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
> "And now for something completely different."
>
>
--
Camm Maguire camm@enhanced.com
==========================================================================
"The earth is but one country, and mankind its citizens." -- Baha'u'llah
Reply to: