OSDN Git Service

2011-03-14 Benjamin Kosnik <bkoz@redhat.com>
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / src / future.cc
index ed3088d..d2bc323 100644 (file)
@@ -1,6 +1,6 @@
 // future -*- C++ -*-
 
-// Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+// Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -48,6 +48,9 @@ namespace
       case std::future_errc::promise_already_satisfied:
           __msg = "Promise already satisfied";
           break;
+      case std::future_errc::no_state:
+          __msg = "No associated state";
+          break;
       default:
           __msg = "Unknown error";
           break;
@@ -64,7 +67,9 @@ namespace
   }
 }
 
-_GLIBCXX_BEGIN_NAMESPACE(std)
+namespace std _GLIBCXX_VISIBILITY(default)
+{
+_GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   const error_category& future_category()
   { return __future_category_instance(); }
@@ -74,4 +79,31 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   const char* 
   future_error::what() const throw() { return _M_code.message().c_str(); }
 
-_GLIBCXX_END_NAMESPACE
+  __future_base::_Result_base::_Result_base() = default;
+
+  __future_base::_Result_base::~_Result_base() = default;
+
+  __future_base::_State_base::~_State_base() = default;
+
+_GLIBCXX_END_NAMESPACE_VERSION
+} // namespace std
+
+// XXX GLIBCXX_ABI Deprecated
+// gcc-4.6.0
+// <future> export changes
+#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) \
+    && defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE) \
+    && defined(_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT)
+
+namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
+{
+  const std::error_category* future_category = &__future_category_instance();
+}
+
+#define _GLIBCXX_ASM_SYMVER(cur, old, version) \
+   asm (".symver " #cur "," #old "@@@" #version);
+
+_GLIBCXX_ASM_SYMVER(_ZN9__gnu_cxx15future_categoryE, _ZSt15future_category, GLIBCXX_3.4.14)
+
+#endif
+