[U-Boot] [PATCH] lib/crc16: use non-C99 loop style

Thomas Petazzoni thomas.petazzoni at bootlin.com
Wed Feb 13 21:57:28 UTC 2019

Commit 51c2345bd24837f9f67f16268da6dc71573f1325 ("Roll CRC16-CCITT
into the hash infrastructure") has modified the crc16 code by adding a
C99-style loop where the loop iterator is declared inside the for()
statement. This breaks the build with old compiler such as gcc 4.7,
that do not default to C99:

./tools/../lib/crc16.c: In function 'crc16_ccitt':
./tools/../lib/crc16.c:70:2: error: 'for' loop initial declarations are only allowed in C99 mode
./tools/../lib/crc16.c:70:2: note: use option -std=c99 or -std=gnu99 to compile your code

Switching to the regular coding style used in the rest of U-Boot
allows to fix this build issue.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
 lib/crc16.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lib/crc16.c b/lib/crc16.c
index f46ba727c9..89d2cff131 100644
--- a/lib/crc16.c
+++ b/lib/crc16.c
@@ -67,7 +67,9 @@ static const uint16_t crc16_tab[] = {
 uint16_t crc16_ccitt(uint16_t cksum, const unsigned char *buf, int len)
-	for (int i = 0;  i < len;  i++)
+	int i;
+	for (i = 0;  i < len;  i++)
 		cksum = crc16_tab[((cksum>>8) ^ *buf++) & 0xff] ^ (cksum << 8);
 	return cksum;

More information about the U-Boot mailing list