On Mon, Oct 21, 2024 at 04:06:53PM +0800, Gary Lin wrote: > There is a testcase to test the values larger than 'int' but smaller > than 'long'. However, for some architectures, 'long' and 'int' are the > same, and the compiler may issue a warning like this: > > grub-core/tests/asn1/tests/Test_overflow.c:48:50: error: left shift of > negative value [-Werror=shift-negative-value] > unsigned long num = ((long) GRUB_UINT_MAX) << 2; > ^~ > > To avoid the unnecessary error, the testcase is opted out when > GRUB_LONG_MAX is not larger than GRUB_INT_MAX.
I would say instead: To avoid unnecessary error the testcase is enabled only when GRUB_LONG_MAX is larger than GRUB_INT_MAX. Please fix similar sentence below. > Signed-off-by: Daniel Axtens <d...@axtens.net> > Signed-off-by: Gary Lin <g...@suse.com> Otherwise Reviewed-by: Daniel Kiper <daniel.ki...@oracle.com>... > --- > ...e-a-testcase-when-long-and-int-are-t.patch | 47 +++++++++++++++++++ > 1 file changed, 47 insertions(+) > create mode 100644 > grub-core/lib/libtasn1-patches/0013-asn1_test-exclude-a-testcase-when-long-and-int-are-t.patch > > diff --git > a/grub-core/lib/libtasn1-patches/0013-asn1_test-exclude-a-testcase-when-long-and-int-are-t.patch > > b/grub-core/lib/libtasn1-patches/0013-asn1_test-exclude-a-testcase-when-long-and-int-are-t.patch > new file mode 100644 > index 000000000..e3fde7639 > --- /dev/null > +++ > b/grub-core/lib/libtasn1-patches/0013-asn1_test-exclude-a-testcase-when-long-and-int-are-t.patch > @@ -0,0 +1,47 @@ > +From 737bef13796f6dbeb4178d42bdb1f3e496971d52 Mon Sep 17 00:00:00 2001 > +From: Gary Lin <g...@suse.com> > +Date: Mon, 7 Oct 2024 11:33:19 +0800 > +Subject: [PATCH 13/13] asn1_test: exclude a testcase when long and int are > the > + same > + > +There is a testcase to test the values larger than 'int' but smaller > +than 'long'. However, for some architectures, 'long' and 'int' are the > +same, and the compiler may issue a warning like this: > + > +grub-core/tests/asn1/tests/Test_overflow.c:48:50: error: left shift of > negative value [-Werror=shift-negative-value] > + unsigned long num = ((long) GRUB_UINT_MAX) << 2; > + ^~ > + > +To avoid the unnecessary error, the testcase is opted out when > +GRUB_LONG_MAX is not larger than GRUB_INT_MAX. > + > +Signed-off-by: Daniel Axtens <d...@axtens.net> > +Signed-off-by: Gary Lin <g...@suse.com> > +--- > + grub-core/tests/asn1/tests/Test_overflow.c | 3 ++- > + 1 file changed, 2 insertions(+), 1 deletion(-) > + > +diff --git a/grub-core/tests/asn1/tests/Test_overflow.c > b/grub-core/tests/asn1/tests/Test_overflow.c > +index 65843abf6..fdeff5634 100644 > +--- a/grub-core/tests/asn1/tests/Test_overflow.c > ++++ b/grub-core/tests/asn1/tests/Test_overflow.c > +@@ -43,7 +43,7 @@ test_overflow (void) > + > + /* Test that values larger than int but smaller than long are > + rejected. This limitation was introduced with libtasn1 2.12. */ > +- if (GRUB_LONG_MAX > GRUB_INT_MAX) > ++#if (GRUB_LONG_MAX > GRUB_INT_MAX) > + { > + unsigned long num = ((long) GRUB_UINT_MAX) << 2; > + unsigned char der[20]; > +@@ -61,6 +61,7 @@ test_overflow (void) > + return 1; > + } > + } > ++#endif > + > + /* Test that values larger than would fit in the input string are > + rejected. This problem was fixed in libtasn1 2.12. */ Daniel _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel