Просмотр исходного кода

shader_ir: Address feedback to avoid UB in bit casting

ReinUsesLisp 7 лет назад
Родитель
Сommit
d4fae3a699
1 измененных файлов с 4 добавлено и 2 удалено
  1. 4 2
      src/video_core/shader/shader_ir.h

+ 4 - 2
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.