Index: llvm/trunk/utils/gdb-scripts/prettyprinters.py
===================================================================
--- llvm/trunk/utils/gdb-scripts/prettyprinters.py
+++ llvm/trunk/utils/gdb-scripts/prettyprinters.py
@@ -124,12 +124,13 @@
       return ('value', self.member.dereference())
 
   def children(self):
-    if not self.value['hasVal']:
+    if not self.value['Storage']['hasVal']:
       return self._iterator('', True)
-    return self._iterator(self.value['storage']['buffer'].address.cast(self.value.type.template_argument(0).pointer()), False)
+    return self._iterator(self.value['Storage']['storage']['buffer'].address.cast(
+        self.value.type.template_argument(0).pointer()), False)
 
   def to_string(self):
-    return 'llvm::Optional is %sinitialized' % ('' if self.value['hasVal'] else 'not ')
+    return 'llvm::Optional is %sinitialized' % ('' if self.value['Storage']['hasVal'] else 'not ')
 
 class DenseMapPrinter:
   "Print a DenseMap"