Marshall Clow:  LWG Issue 2056: future_errc enums start with value 0 (invalid value for broken_promise).

llvm-svn: 190756
diff --git a/libcxx/src/future.cpp b/libcxx/src/future.cpp
index 7d9a5b5..70919ab 100644
--- a/libcxx/src/future.cpp
+++ b/libcxx/src/future.cpp
@@ -26,11 +26,15 @@
     return "future";
 }
 
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wswitch"
+
 string
 __future_error_category::message(int ev) const
 {
     switch (static_cast<future_errc>(ev))
     {
+    case future_errc(0):  // For backwards compatibility with C++11 (LWG 2056)
     case future_errc::broken_promise:
         return string("The associated promise has been destructed prior "
                       "to the associated state becoming ready.");
@@ -46,6 +50,8 @@
     return string("unspecified future_errc value\n");
 }
 
+#pragma clang diagnostic pop
+
 const error_category&
 future_category() _NOEXCEPT
 {