From 370f79e38991cf45e921a29bdb1a57c23447d6c7 Mon Sep 17 00:00:00 2001
From: Michael Widenius <monty@askmonty.org>
Date: Tue, 7 Jun 2011 10:29:08 +0300
Subject: [PATCH] Fixed strict alias problem by replacing = with memcpy()

---
 sql/sql_class.h | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/sql/sql_class.h b/sql/sql_class.h
index 7b1598ef7f..3535a41c21 100644
--- a/sql/sql_class.h
+++ b/sql/sql_class.h
@@ -2334,7 +2334,11 @@ public:
   {
     if (!stmt_arena->is_conventional())
       check_and_register_item_tree_change(place, new_value, mem_root);
-    *place= *new_value;
+    /*
+      We have to use memcpy instead of  *place= *new_value merge to
+      avoid problems with strict aliasing.
+    */
+    memcpy((char*) place, new_value, sizeof(*new_value));
   }
   void nocheck_register_item_tree_change(Item **place, Item *old_value,
                                          MEM_ROOT *runtime_memroot);
-- 
2.30.9