Skip to contentSkip to conversation

kstrto*: converting strings to integers done (hopefully) right

PATCH In review Geert Uytterhoeven 2 participants 3 messages Mar 23, 2011 – Mar 26, 2011 1 message not in the archive Library code

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

#1 lore raw

lib/test-kstrtox.c

Quoted 2 lines · Linux Kernel Mailing List
lib/test-kstrtox.c new file +0 -0

On 32-bit m68k:

lib/test-kstrtox.c: In function ‘test_kstrtou64_ok’:
lib/test-kstrtox.c:318: warning: this decimal constant is unsigned only in ISO C90
lib/test-kstrtox.c:319: warning: this decimal constant is unsigned only in ISO C90
lib/test-kstrtox.c:320: warning: this decimal constant is unsigned only in ISO C90
lib/test-kstrtox.c:321: warning: this decimal constant is unsigned only in ISO C90
lib/test-kstrtox.c:322: warning: integer constant is too large for ‘long’ type lib/test-kstrtox.c:323: warning: integer constant is too large for ‘long’ type lib/test-kstrtox.c: In function ‘test_kstrtos64_ok’:
lib/test-kstrtox.c:372: warning: this decimal constant is unsigned only in ISO C90
lib/test-kstrtox.c:373: warning: this decimal constant is unsigned only in ISO C90
lib/test-kstrtox.c:374: warning: this decimal constant is unsigned only in ISO C90
lib/test-kstrtox.c:375: warning: this decimal constant is unsigned only in ISO C90
lib/test-kstrtox.c:376: warning: integer constant is too large for ‘long’ type lib/test-kstrtox.c:377: warning: integer constant is too large for ‘long’ type lib/test-kstrtox.c: In function ‘test_kstrtou32_ok’:
lib/test-kstrtox.c:421: warning: this decimal constant is unsigned only in ISO C90
lib/test-kstrtox.c:422: warning: this decimal constant is unsigned only in ISO C90
lib/test-kstrtox.c:423: warning: this decimal constant is unsigned only in ISO C90
lib/test-kstrtox.c:424: warning: this decimal constant is unsigned only in ISO C90

Probably you need a few more U/ULL suffixes.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds

#2 lore raw

PATCH 1/1 kstrtox: fix compile warnings in test

Fix the following warnings:

CC [M] lib/test-kstrtox.o
lib/test-kstrtox.c: In function 'test_kstrtou64_ok':
lib/test-kstrtox.c:318: warning: this decimal constant is unsigned only in ISO C90

	...

Noticed by Geert Uytterhoeven <[email protected]>

---

 lib/test-kstrtox.c |   32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)
lib/test-kstrtox.c +16 -16
@@ -315,12 +315,12 @@ static void __init test_kstrtou64_ok(void)
 		{"65537",	10,	65537},
 		{"2147483646",	10,	2147483646},
 		{"2147483647",	10,	2147483647},
-		{"2147483648",	10,	2147483648},
-		{"2147483649",	10,	2147483649},
-		{"4294967294",	10,	4294967294},
-		{"4294967295",	10,	4294967295},
-		{"4294967296",	10,	4294967296},
-		{"4294967297",	10,	4294967297},
+		{"2147483648",	10,	2147483648ULL},
+		{"2147483649",	10,	2147483649ULL},
+		{"4294967294",	10,	4294967294ULL},
+		{"4294967295",	10,	4294967295ULL},
+		{"4294967296",	10,	4294967296ULL},
+		{"4294967297",	10,	4294967297ULL},
 		{"9223372036854775806",	10,	9223372036854775806ULL},
 		{"9223372036854775807",	10,	9223372036854775807ULL},
 		{"9223372036854775808",	10,	9223372036854775808ULL},
@@ -369,12 +369,12 @@ static void __init test_kstrtos64_ok(void)
 		{"65537",	10,	65537},
 		{"2147483646",	10,	2147483646},
 		{"2147483647",	10,	2147483647},
-		{"2147483648",	10,	2147483648},
-		{"2147483649",	10,	2147483649},
-		{"4294967294",	10,	4294967294},
-		{"4294967295",	10,	4294967295},
-		{"4294967296",	10,	4294967296},
-		{"4294967297",	10,	4294967297},
+		{"2147483648",	10,	2147483648LL},
+		{"2147483649",	10,	2147483649LL},
+		{"4294967294",	10,	4294967294LL},
+		{"4294967295",	10,	4294967295LL},
+		{"4294967296",	10,	4294967296LL},
+		{"4294967297",	10,	4294967297LL},
 		{"9223372036854775806",	10,	9223372036854775806LL},
 		{"9223372036854775807",	10,	9223372036854775807LL},
 	};
@@ -418,10 +418,10 @@ static void __init test_kstrtou32_ok(void)
 		{"65537",	10,	65537},
 		{"2147483646",	10,	2147483646},
 		{"2147483647",	10,	2147483647},
-		{"2147483648",	10,	2147483648},
-		{"2147483649",	10,	2147483649},
-		{"4294967294",	10,	4294967294},
-		{"4294967295",	10,	4294967295},
+		{"2147483648",	10,	2147483648U},
+		{"2147483649",	10,	2147483649U},
+		{"4294967294",	10,	4294967294U},
+		{"4294967295",	10,	4294967295U},
 	};
 	TEST_OK(kstrtou32, u32, "%u", test_u32_ok);
 }
author Acked-by on v1 1/1
#3 lore raw

Re: [PATCH] kstrtox: fix compile warnings in test

Quoted 10 lines · Alexey Dobriyan

Fix the following warnings:

 CC [M]  lib/test-kstrtox.o
lib/test-kstrtox.c: In function 'test_kstrtou64_ok':
lib/test-kstrtox.c:318: warning: this decimal constant is unsigned only in ISO C90
       ...

Noticed by Geert Uytterhoeven <[email protected]>

Quoted 50 lines

---

 lib/test-kstrtox.c |   32 ++++++++++++++++----------------

 1 file changed, 16 insertions(+), 16 deletions(-)
lib/test-kstrtox.c +12 -13
@@ -315,12 +315,12 @@ static void __init test_kstrtou64_ok(void)
                {"65537",       10,     65537},
                {"2147483646",  10,     2147483646},
                {"2147483647",  10,     2147483647},
-               {"2147483648",  10,     2147483648},
-               {"2147483649",  10,     2147483649},
-               {"4294967294",  10,     4294967294},
-               {"4294967295",  10,     4294967295},
-               {"4294967296",  10,     4294967296},
-               {"4294967297",  10,     4294967297},
+               {"2147483648",  10,     2147483648ULL},
+               {"2147483649",  10,     2147483649ULL},
+               {"4294967294",  10,     4294967294ULL},
+               {"4294967295",  10,     4294967295ULL},
+               {"4294967296",  10,     4294967296ULL},
+               {"4294967297",  10,     4294967297ULL},
                {"9223372036854775806", 10,     9223372036854775806ULL},
                {"9223372036854775807", 10,     9223372036854775807ULL},
                {"9223372036854775808", 10,     9223372036854775808ULL},
@@ -369,12 +369,12 @@ static void __init test_kstrtos64_ok(void)
                {"65537",       10,     65537},
                {"2147483646",  10,     2147483646},
                {"2147483647",  10,     2147483647},
-               {"2147483648",  10,     2147483648},
-               {"2147483649",  10,     2147483649},
-               {"4294967294",  10,     4294967294},
-               {"4294967295",  10,     4294967295},
-               {"4294967296",  10,     4294967296},
-               {"4294967297",  10,     4294967297},
+               {"2147483648",  10,     2147483648LL},
+               {"2147483649",  10,     2147483649LL},
+               {"4294967294",  10,     4294967294LL},
+               {"4294967295",  10,     4294967295LL},
+               {"4294967296",  10,     4294967296LL},
+               {"4294967297",  10,     4294967297LL},
                {"9223372036854775806", 10,     9223372036854775806LL},
                {"9223372036854775807", 10,     9223372036854775807LL},
        };
@@ -418,10 +418,10 @@ static void __init test_kstrtou32_ok(void)
                {"65537",       10,     65537},
                {"2147483646",  10,     2147483646},
                {"2147483647",  10,     2147483647},
-               {"2147483648",  10,     2147483648},

lib/test-kstrtox.c static void __init test_kstrtou32_ok(void) · line 427

Quoted 10 lines
lib/test-kstrtox.c +4 -3
-               {"2147483649",  10,     2147483649},
-               {"4294967294",  10,     4294967294},
-               {"4294967295",  10,     4294967295},
+               {"2147483648",  10,     2147483648U},
+               {"2147483649",  10,     2147483649U},
+               {"4294967294",  10,     4294967294U},
+               {"4294967295",  10,     4294967295U},
        };
        TEST_OK(kstrtou32, u32, "%u", test_u32_ok);
  }

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds ���{.n�+�������+%�����ݶ��w��{.n�+����{��G�����{ay�ʇڙ�,j��f���h��������z_�(�階�ݢj"���m������G������?����&���~��iO��z��v�^�m���� ������?�I�