From 9e0434d38d7ca475a87cfb08136896d4d88d8927 Mon Sep 17 00:00:00 2001
From: Timo Heister <timo.heister@gmail.com>
Date: Tue, 14 Feb 2023 17:03:23 -0500
Subject: [PATCH] fix wrong sign of char in MF

On ARM char defaults to unsigned char, which will break the matrix free
face loop. Fix this by being explicit.

Fixes:
/home/ubuntu/dealii-9.4.2/include/deal.II/matrix_free/face_setup_internal.h:522:35:
warning: comparison is always false due to limited range of data type
[-Wtype-limits]
---
 include/deal.II/matrix_free/face_setup_internal.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/deal.II/matrix_free/face_setup_internal.h b/include/deal.II/matrix_free/face_setup_internal.h
index 0c188a6389..727d61a40b 100644
--- a/include/deal.II/matrix_free/face_setup_internal.h
+++ b/include/deal.II/matrix_free/face_setup_internal.h
@@ -379,8 +379,8 @@ namespace internal
               // those faces, a value -1 means that the process with the lower
               // rank gets it, whereas a value 0 means that the decision can
               // be made in an arbitrary way.
-              unsigned int      n_faces_lower_proc = 0, n_faces_higher_proc = 0;
-              std::vector<char> assignment(other_range.size(), 0);
+              unsigned int n_faces_lower_proc = 0, n_faces_higher_proc = 0;
+              std::vector<signed char> assignment(other_range.size(), 0);
               if (inner_face.second.shared_faces.size() > 0)
                 {
                   // identify faces that go to the processor with the higher
-- 
2.39.5