On 2012-09-24 11:36, O. Hartmann wrote:
I have a problem and I guess there is a simple solution - at least, I hope.

I try to compile a "in spe" port which contains some C code that is
definitely Kernighan & Ritchie standard like:

--
my_func(win)
Window win;
{
        [...]
        if ( current->win.data == (lux_data *)NULL ) return;
        [...]
}
--

There is no declaration of the return type of the function, I guess it
is implicitely void in older standards, but is treated as non void
function in CLANG - and there the error comes in.

Declarations with no type default to int, the infamous "implicit int"
rule, which apparently is very hard to get rid of. :)  I'm not even sure
the committees managed to ditch it in C11...

In any case, in very old C, the 'void' type did not exist; you simply
ignored the return value of such a function.


I can compile the code without any problems with GCC 4.6 - without any
change of compiling standard or anything like that, it simply compiles.

I tried to apply "CFLAGS+= -std=[c89|gnu89]" when compiling with CLANG
since GCC defaults to gnu89 while CLANG defaults to c99 standard, but
this didn't help.

Unfortunately you did not post the actual error message.  What was it?
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to