possible egcs c compiler bug
Franz Sirl
Franz.Sirl-kernel at lauterbach.com
Thu May 20 07:26:37 EST 1999
Am Wed, 19 May 1999 schrieb Thomas C. Allison:
>I have found what *appears* to be a bug in the C compiler. I have experienced
>this bug in R4 (regardless of the compiler/library installed) as well as in
>the latest (i.e. all the latest packages through 5/15/1999) pre-R5
>installation. I include a short program below which illustrates the problem
>I am having. The code compiles without error on my i386 machine
>running RHL 5.2. The version of EGCS on the PC is 1.0.3 versus 1.1.2 on my
>PowerMac, so I don't know if this is a PPC problem or an EGCS problem.
>Any input is greatly appreciated.
>
>The code is as follows:
>
>test.c:
>
> #include <stdio.h>
> #include <stdarg.h>
>
> static int myFunction(va_list inList)
> {
> va_list newList;
> newList = inList;
> }
>
>When I try to compile the code
>
> % gcc -c test.c
>
>I get the following error message
>
> test.c: In function `myFunction':
> test.c:7: incompatible types in assignment
>
>Any ideas?
That is simply unportable code. va_list maybe of any underlying type, and is in
this case an array. If you want portable code, use:
static int myFunction(va_list inList)
{
va_list newList;
__va_copy(newList, inList);
}
If you use varargs extensively in your application, I strongly recommend you to
use egcs-*1.1.2-12c or later on DRR1/preR5, which fixes some annoying bugs
in the ppc-linux varargs handling.
Franz.
[[ This message was sent via the linuxppc-dev mailing list. Replies are ]]
[[ not forced back to the list, so be sure to Cc linuxppc-dev if your ]]
[[ reply is of general interest. Please check http://lists.linuxppc.org/ ]]
[[ and http://www.linuxppc.org/ for useful information before posting. ]]
More information about the Linuxppc-dev
mailing list