[tarantool-patches] [PATCH v1 1/1] box: fix compilation with old gcc

Kirill Shcherbatov kshcherbatov at tarantool.org
Mon Sep 9 18:11:46 MSK 2019


LTO build fails on warning message:
In file included from /tarantool/src/lib/core/diag.h:33:0,
                 from /tarantool/src/box/engine.h:36,
                 from /tarantool/src/box/memtx_engine.h:40,
                 from /tarantool/src/box/memtx_engine.c:31:
/tarantool/src/box/memtx_engine.c: In function
'metmx_tuple_chunk_delete':
/tarantool/src/trivia/util.h:201:49: error: initialization from
incompatible pointer type [-Werror]
  const typeof( ((type *)0)->member  ) *__mptr = (ptr); \
                                                 ^
/tarantool/src/box/memtx_engine.c:1115:3: note: in expansion of macro
'container_of'
   container_of((typeof(tuple_chunk->data) *)data,
   ^
/tarantool/src/trivia/util.h:201:49: error: (near initialization for
'tuple_chunk') [-Werror]
  const typeof( ((type *)0)->member  ) *__mptr = (ptr); \
                                                 ^
/tarantool/src/box/memtx_engine.c:1115:3: note: in expansion of macro
'container_of'
   container_of((typeof(tuple_chunk->data) *)data,
---
 src/box/memtx_engine.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/box/memtx_engine.c b/src/box/memtx_engine.c
index f6a33282c..6a6cc584f 100644
--- a/src/box/memtx_engine.c
+++ b/src/box/memtx_engine.c
@@ -1112,7 +1112,7 @@ metmx_tuple_chunk_delete(struct tuple_format *format, const char *data)
 {
 	struct memtx_engine *memtx = (struct memtx_engine *)format->engine;
 	struct tuple_chunk *tuple_chunk =
-		container_of((typeof(tuple_chunk->data) *)data,
+		container_of((const char (*)[0])data,
 			     struct tuple_chunk, data);
 	uint32_t sz = tuple_chunk_sz(tuple_chunk->data_sz);
 	smfree(&memtx->alloc, tuple_chunk, sz);
-- 
2.23.0





More information about the Tarantool-patches mailing list