changeset 25895:8e9864b98846 v8.2.3481

patch 8.2.3481: failures when char is unsigned Commit: https://github.com/vim/vim/commit/2e258bd79f403bcccb1336bea70803957a83808f Author: James McCoy <jamessan@jamessan.com> Date: Tue Oct 5 19:44:04 2021 +0100 patch 8.2.3481: failures when char is unsigned Problem: Failures when char is unsigned. Solution: Use int8_T. Make a CI run with unsigned char. (James McCoy, closes #8936)
author Bram Moolenaar <Bram@vim.org>
date Tue, 05 Oct 2021 20:45:03 +0200
parents 389560a21382
children 3a3defdbc05c
files .github/workflows/ci.yml src/structs.h src/version.c
diffstat 3 files changed, 11 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -40,6 +40,7 @@ jobs:
             compiler: gcc
             coverage: true
             extra: testgui
+            uchar: true
           - features: huge
             compiler: clang
             extra: asan
@@ -111,10 +112,14 @@ jobs:
             ;;
           esac
 
+          CFLAGS=""
           if ${{ matrix.coverage == true }}; then
-            echo "CFLAGS=--coverage -DUSE_GCOV_FLUSH"
+            CFLAGS="$CFLAGS --coverage -DUSE_GCOV_FLUSH"
             echo "LDFLAGS=--coverage"
           fi
+          if ${{ matrix.uchar == true }}; then
+            CFLAGS="$CFLAGS -funsigned-char"
+          fi
           if ${{ contains(matrix.extra, 'testgui') }}; then
             echo "TEST=-C src testgui"
           fi
@@ -130,6 +135,7 @@ jobs:
           if ${{ contains(matrix.extra, 'vimtags') }}; then
             echo "TEST=-C runtime/doc vimtags VIMEXE=../../${SRCDIR}/vim"
           fi
+          echo "CFLAGS=$CFLAGS"
           ) >> $GITHUB_ENV
 
       - name: Set up system
--- a/src/structs.h
+++ b/src/structs.h
@@ -1406,8 +1406,8 @@ typedef struct type_S type_T;
 struct type_S {
     vartype_T	    tt_type;
     int8_T	    tt_argcount;    // for func, incl. vararg, -1 for unknown
-    char	    tt_min_argcount; // number of non-optional arguments
-    char	    tt_flags;	    // TTFLAG_ values
+    int8_T	    tt_min_argcount; // number of non-optional arguments
+    char_u	    tt_flags;	    // TTFLAG_ values
     type_T	    *tt_member;	    // for list, dict, func return type
     type_T	    **tt_args;	    // func argument types, allocated
 };
--- a/src/version.c
+++ b/src/version.c
@@ -758,6 +758,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3481,
+/**/
     3480,
 /**/
     3479,