30.01.2024 15:20, Richard W.M. Jones :
With GCC 14 the code failed to compile on i686 (and was wrong for any
version of GCC):

../block/blkio.c: In function ‘blkio_file_open’:
../block/blkio.c:857:28: error: passing argument 3 of ‘blkio_get_uint64’ from 
incompatible pointer type [-Wincompatible-pointer-types]
   857 |                            &s->mem_region_alignment);
       |                            ^~~~~~~~~~~~~~~~~~~~~~~~
       |                            |
       |                            size_t * {aka unsigned int *}
In file included from ../block/blkio.c:12:
/usr/include/blkio.h:49:67: note: expected ‘uint64_t *’ {aka ‘long long 
unsigned int *’} but argument is of type ‘size_t *’ {aka ‘unsigned int *’}
    49 | int blkio_get_uint64(struct blkio *b, const char *name, uint64_t 
*value);
       |                                                         ~~~~~~~~~~^~~~~

Signed-off-by: Richard W.M. Jones <rjo...@redhat.com>
---
  block/blkio.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/block/blkio.c b/block/blkio.c
index 0a0a6c0f5fd..bc2f21784c7 100644
--- a/block/blkio.c
+++ b/block/blkio.c
@@ -68,7 +68,7 @@ typedef struct {
      CoQueue bounce_available;
/* The value of the "mem-region-alignment" property */
-    size_t mem_region_alignment;
+    uint64_t mem_region_alignment;

This seems like a stable material, is it not?

It's interesting gcc didn't warn about this one before, while it is
clearly a type mismatch..

/mjt

Reply via email to