Added an empty member to the union of rtc::Optional, so that it is always initializable.

Added notry due to flaky android_dbg bot.

NOTRY=true
BUG=webrtc:6033

Review-Url: https://codereview.webrtc.org/2090223003
Cr-Original-Commit-Position: refs/heads/master@{#13343}
Cr-Mirrored-From: https://chromium.googlesource.com/external/webrtc
Cr-Mirrored-Commit: ea41694e08a31c4001e600773e47b4fc693cc539
diff --git a/base/optional.h b/base/optional.h
index 25cfbfe..e98ab2e 100644
--- a/base/optional.h
+++ b/base/optional.h
@@ -59,7 +59,7 @@
 class Optional final {
  public:
   // Construct an empty Optional.
-  Optional() : has_value_(false) {}
+  Optional() : has_value_(false), empty_('\0') {}
 
   // Construct an Optional that contains a value.
   explicit Optional(const T& value) : has_value_(true) {
@@ -189,6 +189,10 @@
  private:
   bool has_value_;  // True iff value_ contains a live value.
   union {
+    // empty_ exists only to make it possible to initialize the union, even when
+    // it doesn't contain any data. If the union goes uninitialized, it may
+    // trigger compiler warnings.
+    char empty_;
     // By placing value_ in a union, we get to manage its construction and
     // destruction manually: the Optional constructors won't automatically
     // construct it, and the Optional destructor won't automatically destroy