2022-09-07 18:26:23

by Bart Van Assche

[permalink] [raw]
Subject: [PATCH] lib: Improve the is_signed_type() kunit test

Since the definition of is_signed_type() has been moved from
<linux/overflow.h> to <linux/compiler.h>, include the latter header file
instead of the former. Additionally, add a test for the type 'char'.

Cc: Isabella Basso <[email protected]>
Cc: Rasmus Villemoes <[email protected]>
Signed-off-by: Bart Van Assche <[email protected]>
---
lib/is_signed_type_kunit.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/lib/is_signed_type_kunit.c b/lib/is_signed_type_kunit.c
index f2eedb1f0935..207207522925 100644
--- a/lib/is_signed_type_kunit.c
+++ b/lib/is_signed_type_kunit.c
@@ -5,7 +5,7 @@
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt

#include <kunit/test.h>
-#include <linux/overflow.h>
+#include <linux/compiler.h>

enum unsigned_enum {
constant_a = 3,
@@ -21,6 +21,11 @@ static void is_signed_type_test(struct kunit *test)
KUNIT_EXPECT_EQ(test, is_signed_type(bool), false);
KUNIT_EXPECT_EQ(test, is_signed_type(signed char), true);
KUNIT_EXPECT_EQ(test, is_signed_type(unsigned char), false);
+#ifdef __CHAR_UNSIGNED__
+ KUNIT_EXPECT_EQ(test, is_signed_type(char), false);
+#else
+ KUNIT_EXPECT_EQ(test, is_signed_type(char), true);
+#endif
KUNIT_EXPECT_EQ(test, is_signed_type(int), true);
KUNIT_EXPECT_EQ(test, is_signed_type(unsigned int), false);
KUNIT_EXPECT_EQ(test, is_signed_type(long), true);


2022-09-07 23:13:48

by Kees Cook

[permalink] [raw]
Subject: Re: [PATCH] lib: Improve the is_signed_type() kunit test

On Wed, 7 Sep 2022 11:03:29 -0700, Bart Van Assche wrote:
> Since the definition of is_signed_type() has been moved from
> <linux/overflow.h> to <linux/compiler.h>, include the latter header file
> instead of the former. Additionally, add a test for the type 'char'.
>
>

Applied to for-next/hardening, thanks!

[1/1] lib: Improve the is_signed_type() kunit test
https://git.kernel.org/kees/c/9d684f6d2d87

--
Kees Cook