Fix Linux Subzero build

Bug: b/135744933
Change-Id: I6b37091c6390e5c3c67a608b85ecd3d9aef07580
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/37028
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Antonio Maiorano <amaiorano@google.com>
diff --git a/third_party/llvm-subzero/include/llvm/ADT/SmallVector.h b/third_party/llvm-subzero/include/llvm/ADT/SmallVector.h
index b958821..c1c5c81 100644
--- a/third_party/llvm-subzero/include/llvm/ADT/SmallVector.h
+++ b/third_party/llvm-subzero/include/llvm/ADT/SmallVector.h
@@ -306,7 +306,7 @@
   void push_back(const T &Elt) {
     if (LLVM_UNLIKELY(this->EndX >= this->CapacityX))
       this->grow();
-    memcpy(this->end(), &Elt, sizeof(T));
+    memcpy(reinterpret_cast<void *>(this->end()), &Elt, sizeof(T));
     this->setEnd(this->end()+1);
   }
 
diff --git a/third_party/subzero/src/IceRangeSpec.cpp b/third_party/subzero/src/IceRangeSpec.cpp
index 6a7d329..7cf6934 100644
--- a/third_party/subzero/src/IceRangeSpec.cpp
+++ b/third_party/subzero/src/IceRangeSpec.cpp
@@ -77,7 +77,7 @@
   D->IsExplicit = true;
   // A range is identified by starting with a digit or a ':'.
   if (Token[0] == RangeSpec::DELIM_RANGE || std::isdigit(Token[0])) {
-    uint32_t First, Last;
+    uint32_t First = 0, Last = 0;
     getRange(Token, &First, &Last);
     if (Last == RangeSpec::RangeMax) {
       D->AllFrom = std::min(D->AllFrom, First);
diff --git a/third_party/subzero/src/IceTargetLoweringX86BaseImpl.h b/third_party/subzero/src/IceTargetLoweringX86BaseImpl.h
index 250ae56..00734fd 100644
--- a/third_party/subzero/src/IceTargetLoweringX86BaseImpl.h
+++ b/third_party/subzero/src/IceTargetLoweringX86BaseImpl.h
@@ -5795,7 +5795,7 @@
       AddressWasOptimized = true;
       Reason = nullptr;
       SkipLastFolding = nullptr;
-      memset(&Skip, 0, sizeof(Skip));
+      memset(reinterpret_cast<void*>(&Skip), 0, sizeof(Skip));
     }
 
     NewAddrCheckpoint = NewAddr;