From 5dc108754ad40d3b1d024f9bd7cca0595ef1a1db Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Sat, 14 Mar 2020 02:13:05 +0300 Subject: [PATCH] Fix "Dereferencing type-punned pointer will break strict aliasing rules..." --- btree.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/btree.h b/btree.h index 49310a2..f8749bb 100644 --- a/btree.h +++ b/btree.h @@ -554,10 +554,12 @@ class btree_node { return params_type::key(fields_.values[i]); } reference value(int i) { - return reinterpret_cast(fields_.values[i]); + mutable_value_type *ptr = (mutable_value_type*)&fields_.values[i]; + return reinterpret_cast(*ptr); } const_reference value(int i) const { - return reinterpret_cast(fields_.values[i]); + value_type *ptr = (value_type*)&fields_.values[i]; + return reinterpret_cast(*ptr); } mutable_value_type* mutable_value(int i) { return &fields_.values[i];