From d4fae3a69972fe9685b6b4f1b3c272fc2558d681 Mon Sep 17 00:00:00 2001
From: ReinUsesLisp <reinuseslisp@airmail.cc>
Date: Fri, 21 Dec 2018 03:13:05 -0300
Subject: [PATCH] shader_ir: Address feedback to avoid UB in bit casting

---
 src/video_core/shader/shader_ir.h | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/video_core/shader/shader_ir.h b/src/video_core/shader/shader_ir.h
index b91ef246f8..8ad2a366fe 100644
--- a/src/video_core/shader/shader_ir.h
+++ b/src/video_core/shader/shader_ir.h
@@ -4,6 +4,7 @@
 
 #pragma once
 
+#include <cstring>
 #include <map>
 #include <set>
 #include <string>
@@ -606,8 +607,9 @@ private:
     }
     /// Creates a f32 immediate
     Node Immediate(f32 value) {
-        // TODO(Rodrigo): Replace this with bit_cast when C++20 releases
-        return Immediate(*reinterpret_cast<const u32*>(&value));
+        u32 integral;
+        std::memcpy(&integral, &value, sizeof(u32));
+        return Immediate(integral);
     }
 
     /// Generates a node for a passed register.
-- 
GitLab