merge from gcc

This commit is contained in:
DJ Delorie 2009-07-25 11:28:20 +00:00
parent 6e88169156
commit bdc0e08dbc
3 changed files with 20 additions and 2 deletions

View File

@ -313,7 +313,7 @@ extern double physmem_total (void);
extern double physmem_available (void);
/* Compute the 32-bit CRC of a block of memory. */
extern unsigned int crc32 (const unsigned char *, int, unsigned int);
extern unsigned int xcrc32 (const unsigned char *, int, unsigned int);
/* These macros provide a K&R/C89/C++-friendly way of allocating structures
with nice encapsulation. The XDELETE*() macros are technically

View File

@ -1,3 +1,8 @@
2009-07-24 Ian Lance Taylor <iant@google.com>
PR bootstrap/40854
* crc32.c (xcrc32): Rename from crc32.
2009-07-24 Ian Lance Taylor <iant@google.com>
* crc32.c: New file.

View File

@ -150,12 +150,25 @@ protocol for the @samp{qCRC} command. In order to get the same
results as gdb for a block of data, you must pass the first CRC
parameter as @code{0xffffffff}.
This CRC can be specified as:
Width : 32
Poly : 0x04c11db7
Init : parameter, typically 0xffffffff
RefIn : false
RefOut : false
XorOut : 0
This differs from the "standard" CRC-32 algorithm in that the values
are not reflected, and there is no final XOR value. These differences
make it easy to compose the values of multiple blocks.
@end deftypefn
*/
unsigned int
crc32 (const unsigned char *buf, int len, unsigned int init)
xcrc32 (const unsigned char *buf, int len, unsigned int init)
{
unsigned int crc = init;
while (len--)