summaryrefslogtreecommitdiffstats
path: root/libcxx/src
diff options
context:
space:
mode:
authorHoward Hinnant <hhinnant@apple.com>2013-08-29 20:56:53 +0000
committerHoward Hinnant <hhinnant@apple.com>2013-08-29 20:56:53 +0000
commit393068bb042c360d16805c847f7f46d310d07642 (patch)
tree21f409cff1595f393646cf0634ad475e62cdd780 /libcxx/src
parentf801f808ba8a5933c8321c6f7295312b394c664b (diff)
downloadbcm5719-llvm-393068bb042c360d16805c847f7f46d310d07642.tar.gz
bcm5719-llvm-393068bb042c360d16805c847f7f46d310d07642.zip
Turn off extern templates for most uses. It is causing more problems than it is worth. The extern templates will still be built into the dylib, mainly for ABI stability purposes. And the client can still turn these back on with a #define if desire. This fixes http://llvm.org/bugs/show_bug.cgi?id=17027. However there's no associated test for the test suite because http://llvm.org/bugs/show_bug.cgi?id=17027 needs mismatched dylib and headers to fire.
llvm-svn: 189610
Diffstat (limited to 'libcxx/src')
-rw-r--r--libcxx/src/algorithm.cpp1
-rw-r--r--libcxx/src/ios.cpp2
-rw-r--r--libcxx/src/locale.cpp2
-rw-r--r--libcxx/src/string.cpp2
-rw-r--r--libcxx/src/valarray.cpp2
5 files changed, 9 insertions, 0 deletions
diff --git a/libcxx/src/algorithm.cpp b/libcxx/src/algorithm.cpp
index 6d5cf7c0bc8..10c4c331259 100644
--- a/libcxx/src/algorithm.cpp
+++ b/libcxx/src/algorithm.cpp
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#define _LIBCPP_EXTERN_TEMPLATE(...) extern template __VA_ARGS__;
#include "algorithm"
#include "random"
#include "mutex"
diff --git a/libcxx/src/ios.cpp b/libcxx/src/ios.cpp
index 732a61bb239..754c2c95682 100644
--- a/libcxx/src/ios.cpp
+++ b/libcxx/src/ios.cpp
@@ -7,6 +7,8 @@
//
//===----------------------------------------------------------------------===//
+#define _LIBCPP_EXTERN_TEMPLATE(...) extern template __VA_ARGS__;
+
#include "ios"
#include "streambuf"
#include "istream"
diff --git a/libcxx/src/locale.cpp b/libcxx/src/locale.cpp
index ac1952151a0..49ffd8e0246 100644
--- a/libcxx/src/locale.cpp
+++ b/libcxx/src/locale.cpp
@@ -7,6 +7,8 @@
//
//===----------------------------------------------------------------------===//
+#define _LIBCPP_EXTERN_TEMPLATE(...) extern template __VA_ARGS__;
+
// On Solaris, we need to define something to make the C99 parts of localeconv
// visible.
#ifdef __sun__
diff --git a/libcxx/src/string.cpp b/libcxx/src/string.cpp
index 5a86911654d..a6685839dc1 100644
--- a/libcxx/src/string.cpp
+++ b/libcxx/src/string.cpp
@@ -7,6 +7,8 @@
//
//===----------------------------------------------------------------------===//
+#define _LIBCPP_EXTERN_TEMPLATE(...) extern template __VA_ARGS__;
+
#include "string"
#include "cstdlib"
#include "cwchar"
diff --git a/libcxx/src/valarray.cpp b/libcxx/src/valarray.cpp
index 2d8db52ac36..e4c9ed02462 100644
--- a/libcxx/src/valarray.cpp
+++ b/libcxx/src/valarray.cpp
@@ -7,6 +7,8 @@
//
//===----------------------------------------------------------------------===//
+#define _LIBCPP_EXTERN_TEMPLATE(...) extern template __VA_ARGS__;
+
#include "valarray"
_LIBCPP_BEGIN_NAMESPACE_STD
OpenPOWER on IntegriCloud