aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Bogner <mail@justinbogner.com>2014-08-15 17:58:56 +0000
committerJustin Bogner <mail@justinbogner.com>2014-08-15 17:58:56 +0000
commitd2308ea5fd583e8d342d9e8baa00486b57c6a9a9 (patch)
treede1fd85c42d8be4c0742bdd4f7208d611a483468
parentb2baffaffd914c58375a682b567415f17b93f5bd (diff)
downloadllvm-d2308ea5fd583e8d342d9e8baa00486b57c6a9a9.zip
llvm-d2308ea5fd583e8d342d9e8baa00486b57c6a9a9.tar.gz
llvm-d2308ea5fd583e8d342d9e8baa00486b57c6a9a9.tar.bz2
Revert "Turn off extern templates for most uses."
Turning off explicit template instantiation leads to a pretty significant build time and code size cost. We're better off dealing with ABI incompatibility issues that come up in a less heavy handed way. This reverts commit r189610. llvm-svn: 215740
-rw-r--r--libcxx/include/__config2
-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
6 files changed, 1 insertions, 10 deletions
diff --git a/libcxx/include/__config b/libcxx/include/__config
index ce235af..c9718cf 100644
--- a/libcxx/include/__config
+++ b/libcxx/include/__config
@@ -608,7 +608,7 @@ template <unsigned> struct __static_assert_check {};
#endif
#ifndef _LIBCPP_EXTERN_TEMPLATE
-#define _LIBCPP_EXTERN_TEMPLATE(...)
+#define _LIBCPP_EXTERN_TEMPLATE(...) extern template __VA_ARGS__;
#endif
#ifndef _LIBCPP_EXTERN_TEMPLATE2
diff --git a/libcxx/src/algorithm.cpp b/libcxx/src/algorithm.cpp
index 10c4c331..6d5cf7c 100644
--- a/libcxx/src/algorithm.cpp
+++ b/libcxx/src/algorithm.cpp
@@ -7,7 +7,6 @@
//
//===----------------------------------------------------------------------===//
-#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 e241394..260ec76 100644
--- a/libcxx/src/ios.cpp
+++ b/libcxx/src/ios.cpp
@@ -7,8 +7,6 @@
//
//===----------------------------------------------------------------------===//
-#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 e626528..f21e35d 100644
--- a/libcxx/src/locale.cpp
+++ b/libcxx/src/locale.cpp
@@ -7,8 +7,6 @@
//
//===----------------------------------------------------------------------===//
-#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 fde5212..fdaad29 100644
--- a/libcxx/src/string.cpp
+++ b/libcxx/src/string.cpp
@@ -7,8 +7,6 @@
//
//===----------------------------------------------------------------------===//
-#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 e4c9ed0..2d8db52 100644
--- a/libcxx/src/valarray.cpp
+++ b/libcxx/src/valarray.cpp
@@ -7,8 +7,6 @@
//
//===----------------------------------------------------------------------===//
-#define _LIBCPP_EXTERN_TEMPLATE(...) extern template __VA_ARGS__;
-
#include "valarray"
_LIBCPP_BEGIN_NAMESPACE_STD