Re: [announce] new tree: "fix all build warnings, on all configs"

From: H. Peter Anvin
Date: Mon Oct 20 2008 - 12:51:20 EST


Linus Torvalds wrote:

The old code was correct. Your code is shit. And you didn't fix _anything_.

case 5:
*(int *)to = *(int *)from;
- *((short *)to + 3) = *((short *)from + 3);
+ *((char *)(to + 3)) = *((char *)(from + 3));
return to;

Are you just making changes by randomly inserting and deleting characters until you don't see warnings? Or what?

That thing is supposed to be a 5-byte memcpy. Not a "take a random byte from a random location and move it to another random location". That would be "randcpy()", not "memcpy()".


That is not a 5-byte memcopy. In *either* version!

In the "before" case, it copies bytes 0, 1, 2, 3, 6 and 7.
In the "after" case, it copies bytes 0, 1 and 2.

Presumably it *should* be:

*((char *)to + 4) = *((char *)from + 4);

-hpa
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/