[BusyBox] Where do I report a compiler bug?
Rob Landley
rob at landley.net
Mon Oct 13 18:46:19 UTC 2003
On Monday 13 October 2003 08:59, Lars Kellogg-Stedman wrote:
> I don't believe this is a compiler bug. The C programming FAQ says that
> this behavior is undefined:
>
> From <http://www.eskimo.com/~scs/C-faq/q3.1.html>:
>
> [3.1] Why doesn't this code:
>
> a[i] = i++;
>
> work?
Sigh. Okay, it works properly if there's a sequencing point (&&, ||, for(;;),
etc... A quick grep even found a code example in linux-kernel that uses a
comma, which implies function arguments are happy too.)
It's kind of annoying that there's something special about lvalues, since I
can rely on "a=(get_bits(8)<<16)|(get_bits(8)<<8)||get_bits(8)" to work
properly, and that has the side effect of reading from a file which cares
rather a LOT about sequencing. Oh well...
> > > Are you sure this is a compiler bug? Or is it undefined behaviour?
> >
> > Yes, I'm sure it's a compiler bug.
Nobody ever said "sure" was the same thing as "right". :)
I'd already changed it to use "memmove" anyway, since gcc will probably inline
that and it'd be optimised assembly if so...
Rob
More information about the busybox
mailing list