Make zeroing more portable.

Bug:35849499
Test: None required.
Change-Id: Iadee02a253b491f192c4a8b1cf3e57125ad866a6
diff --git a/keystore/blob.cpp b/keystore/blob.cpp
index e9e6387..a33334e 100644
--- a/keystore/blob.cpp
+++ b/keystore/blob.cpp
@@ -42,11 +42,13 @@
 
 DEFINE_OPENSSL_OBJECT_POINTER(EVP_CIPHER_CTX);
 
-#ifdef __clang__
+#if defined(__clang__)
 #define OPTNONE __attribute__((optnone))
-#else  // not __clang__
+#elif defined(__GNUC__)
 #define OPTNONE __attribute__((optimize("O0")))
-#endif  // not __clang__
+#else
+#error Need a definition for OPTNONE
+#endif
 
 class ArrayEraser {
   public:
@@ -54,7 +56,7 @@
     OPTNONE ~ArrayEraser() { std::fill(mArr, mArr + mSize, 0); }
 
   private:
-    uint8_t* mArr;
+    volatile uint8_t* mArr;
     size_t mSize;
 };