On Thu, 9 Aug 2007, DJ Delorie wrote:
> Could someone provide a hint for me? I'm trying to put in "real"
> prototypes for a builtin function where the arguments don't follow the
> default promotion rules. Specifically, one of the arguments is a
> reference type (like C++'s "int&"). However, I'm bumping into two
> problems:
>
> 1. The compiler emits a compatibility warning:
>
> dj.c:4: warning: incompatible implicit declaration of built-in function
> 'mep_and'
>
> 2. The compiler seems to be using the implicit declaration instead of
> the builtin one, resulting in the builtin's arguments being
> incorrect, especially when optimizing:
>
> dj.c:4: error: non-lvalue passed to argument 1 of `mep_and'
>
> Is there a trick to this? I need this type of functionality because
> some builtins modify multiple values, so a simple return value is
> insufficient, plus this worked with older versions of gcc so our users
> are used to it syntax-wise.
I don't know about using reference types, but there are several math
builtins that "return" multiple values, the extra ones via pointer
arguments. E.g. see frexp, lgamma_r, modf, remquo and/or sincos.
--Kaveh
--
Kaveh R. Ghazi [EMAIL PROTECTED]