From 71ab500a2f26a029c9bb843b7ef8e9c4f0327108 Mon Sep 17 00:00:00 2001 From: Luciano Lo Giudice Date: Wed, 23 Feb 2022 16:01:58 -0300 Subject: [PATCH] rgw,test: Fix build errors in 32 bit platforms When building on 32 bit platforms (tested on armhf), 2 errors were detected: The first involves the compiler being unable to disambiguate a call to deserialize an integer (apparently because there isn't a specialization for it). The second involves invalid usage of the builtin reinterpret_cast. Signed-off-by: Luciano Lo Giudice --- src/rgw/store/dbstore/sqlite/sqliteDB.cc | 7 +++++-- src/test/libcephfs/ceph_pthread_self.h | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/rgw/store/dbstore/sqlite/sqliteDB.cc b/src/rgw/store/dbstore/sqlite/sqliteDB.cc index 649c644bebfa1..3727293d9daed 100644 --- a/src/rgw/store/dbstore/sqlite/sqliteDB.cc +++ b/src/rgw/store/dbstore/sqlite/sqliteDB.cc @@ -580,10 +580,13 @@ static int list_lc_head(const DoutPrefixProvider *dpp, DBOpInfo &op, sqlite3_stm if (!stmt) return -1; + int64_t start_date; + op.lc_head.index = (const char*)sqlite3_column_text(stmt, LCHeadIndex); op.lc_head.head.set_marker((const char*)sqlite3_column_text(stmt, LCHeadMarker)); - SQL_DECODE_BLOB_PARAM(dpp, stmt, LCHeadStartDate, op.lc_head.head.get_start_date(), sdb); + SQL_DECODE_BLOB_PARAM(dpp, stmt, LCHeadStartDate, start_date, sdb); + op.lc_head.head.get_start_date() = start_date; return 0; } @@ -2803,7 +2806,7 @@ int SQLInsertLCHead::Bind(const DoutPrefixProvider *dpp, struct DBOpParams *para SQL_BIND_TEXT(dpp, stmt, index, params->op.lc_head.head.get_marker().c_str(), sdb); SQL_BIND_INDEX(dpp, stmt, index, p_params.op.lc_head.start_date, sdb); - SQL_ENCODE_BLOB_PARAM(dpp, stmt, index, params->op.lc_head.head.get_start_date(), sdb); + SQL_ENCODE_BLOB_PARAM(dpp, stmt, index, static_cast(params->op.lc_head.head.start_date), sdb); out: return rc; diff --git a/src/test/libcephfs/ceph_pthread_self.h b/src/test/libcephfs/ceph_pthread_self.h index 4c0c98f6ee3f7..9e3cdfa99e20f 100644 --- a/src/test/libcephfs/ceph_pthread_self.h +++ b/src/test/libcephfs/ceph_pthread_self.h @@ -25,7 +25,7 @@ static uint64_t ceph_pthread_self() { static_assert(std::is_convertible_v || std::is_pointer_v, "we need to use pthread_self() for the owner parameter"); - return reinterpret_cast(me); + return static_cast(me); } #endif -- 2.39.5