From 664fa4ea067726774f0896b26464affa230c2a50 Mon Sep 17 00:00:00 2001
From: ReinUsesLisp <reinuseslisp@airmail.cc>
Date: Wed, 18 Mar 2020 04:03:02 -0300
Subject: [PATCH 1/2] astc: Fix clang build issues

---
 src/video_core/textures/astc.cpp | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/src/video_core/textures/astc.cpp b/src/video_core/textures/astc.cpp
index 404708d92..062b4f252 100644
--- a/src/video_core/textures/astc.cpp
+++ b/src/video_core/textures/astc.cpp
@@ -577,7 +577,7 @@ static TexelWeightParams DecodeBlockInfo(InputBitStream& strm) {
     }
 
     default:
-        assert(!"Don't know this layout...");
+        assert(false && "Don't know this layout...");
         params.m_bError = true;
         break;
     }
@@ -713,7 +713,7 @@ public:
             }
         }
 
-        assert(!"We shouldn't get here.");
+        assert(false && "We shouldn't get here.");
         return 0;
     }
 
@@ -893,7 +893,7 @@ static void DecodeColorValues(u32* out, u8* data, const u32* modes, const u32 nP
             } break;
 
             default:
-                assert(!"Unsupported trit encoding for color values!");
+                assert(false && "Unsupported trit encoding for color values!");
                 break;
             } // switch(bitlen)
         }     // case IntegerEncoding::Trit
@@ -937,7 +937,7 @@ static void DecodeColorValues(u32* out, u8* data, const u32* modes, const u32 nP
             } break;
 
             default:
-                assert(!"Unsupported qus32 encoding for color values!");
+                assert(false && "Unsupported quint encoding for color values!");
                 break;
             } // switch(bitlen)
         }     // case IntegerEncoding::Qus32
@@ -998,7 +998,7 @@ static u32 UnquantizeTexelWeight(const IntegerEncodedValue& val) {
         } break;
 
         default:
-            assert(!"Invalid trit encoding for texel weight");
+            assert(false && "Invalid trit encoding for texel weight");
             break;
         }
     } break;
@@ -1024,7 +1024,7 @@ static u32 UnquantizeTexelWeight(const IntegerEncodedValue& val) {
         } break;
 
         default:
-            assert(!"Invalid qus32 encoding for texel weight");
+            assert(false && "Invalid quint encoding for texel weight");
             break;
         }
     } break;
@@ -1352,7 +1352,7 @@ static void ComputeEndpos32s(Pixel& ep1, Pixel& ep2, const u32*& colorValues,
     } break;
 
     default:
-        assert(!"Unsupported color endpos32 mode (is it HDR?)");
+        assert(false && "Unsupported color endpoint mode (is it HDR?)");
         break;
     }
 
@@ -1367,7 +1367,7 @@ static void DecompressBlock(const u8 inBuf[16], const u32 blockWidth, const u32
 
     // Was there an error?
     if (weightParams.m_bError) {
-        assert(!"Invalid block mode");
+        assert(false && "Invalid block mode");
         FillError(outBuf, blockWidth, blockHeight);
         return;
     }
@@ -1378,19 +1378,19 @@ static void DecompressBlock(const u8 inBuf[16], const u32 blockWidth, const u32
     }
 
     if (weightParams.m_bVoidExtentHDR) {
-        assert(!"HDR void extent blocks are unsupported!");
+        assert(false && "HDR void extent blocks are unsupported!");
         FillError(outBuf, blockWidth, blockHeight);
         return;
     }
 
     if (weightParams.m_Width > blockWidth) {
-        assert(!"Texel weight grid width should be smaller than block width");
+        assert(false && "Texel weight grid width should be smaller than block width");
         FillError(outBuf, blockWidth, blockHeight);
         return;
     }
 
     if (weightParams.m_Height > blockHeight) {
-        assert(!"Texel weight grid height should be smaller than block height");
+        assert(false && "Texel weight grid height should be smaller than block height");
         FillError(outBuf, blockWidth, blockHeight);
         return;
     }
@@ -1400,7 +1400,7 @@ static void DecompressBlock(const u8 inBuf[16], const u32 blockWidth, const u32
     assert(nPartitions <= 4);
 
     if (nPartitions == 4 && weightParams.m_bDualPlane) {
-        assert(!"Dual plane mode is incompatible with four partition blocks");
+        assert(false && "Dual plane mode is incompatible with four partition blocks");
         FillError(outBuf, blockWidth, blockHeight);
         return;
     }

From 716d6aee30fc49858b73ef20750e5636fd43f7ae Mon Sep 17 00:00:00 2001
From: ReinUsesLisp <reinuseslisp@airmail.cc>
Date: Wed, 18 Mar 2020 04:03:18 -0300
Subject: [PATCH 2/2] input_common/udp: Fix clang build issues

---
 src/input_common/udp/udp.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/input_common/udp/udp.cpp b/src/input_common/udp/udp.cpp
index ca99cc22f..8c6ef1394 100644
--- a/src/input_common/udp/udp.cpp
+++ b/src/input_common/udp/udp.cpp
@@ -3,6 +3,7 @@
 // Refer to the license.txt file included.
 
 #include <mutex>
+#include <optional>
 #include <tuple>
 
 #include "common/param_package.h"
@@ -44,7 +45,7 @@ public:
     std::unique_ptr<Input::TouchDevice> Create(const Common::ParamPackage& params) override {
         {
             std::lock_guard guard(status->update_mutex);
-            status->touch_calibration.emplace();
+            status->touch_calibration = DeviceStatus::CalibrationData{};
             // These default values work well for DS4 but probably not other touch inputs
             status->touch_calibration->min_x = params.Get("min_x", 100);
             status->touch_calibration->min_y = params.Get("min_y", 50);