summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/include/llvm/Support/Registry.h17
-rw-r--r--llvm/lib/CodeGen/GCMetadataPrinter.cpp4
-rw-r--r--llvm/lib/CodeGen/GCStrategy.cpp4
3 files changed, 8 insertions, 17 deletions
diff --git a/llvm/include/llvm/Support/Registry.h b/llvm/include/llvm/Support/Registry.h
index da8667b6649..2d18df55138 100644
--- a/llvm/include/llvm/Support/Registry.h
+++ b/llvm/include/llvm/Support/Registry.h
@@ -116,15 +116,14 @@ namespace llvm {
};
};
- // Use this macro to stamp out definitions for required static symbols in an
- // appropriate source file. This is required to avoid getting multiple
- // definitions of the Registry's fields in different translation or linkage
- // units.
-#define DEFINE_REGISTRY(T) \
- template <> \
- typename Registry<T>::node *Registry<T>::Head = nullptr; \
- template <> \
- typename Registry<T>::node *Registry<T>::Tail = nullptr;
+
+ // Since these are defined in a header file, plugins must be sure to export
+ // these symbols.
+ template <typename T>
+ typename Registry<T>::node *Registry<T>::Head;
+
+ template <typename T>
+ typename Registry<T>::node *Registry<T>::Tail;
} // end namespace llvm
#endif // LLVM_SUPPORT_REGISTRY_H
diff --git a/llvm/lib/CodeGen/GCMetadataPrinter.cpp b/llvm/lib/CodeGen/GCMetadataPrinter.cpp
index 8003219de39..bb8cfa1cc80 100644
--- a/llvm/lib/CodeGen/GCMetadataPrinter.cpp
+++ b/llvm/lib/CodeGen/GCMetadataPrinter.cpp
@@ -17,7 +17,3 @@ using namespace llvm;
GCMetadataPrinter::GCMetadataPrinter() {}
GCMetadataPrinter::~GCMetadataPrinter() {}
-
-// Stamp out the registry of GCMetadataPrinter objects so that pulgins can load
-// new Strategies.
-DEFINE_REGISTRY(GCMetadataPrinter)
diff --git a/llvm/lib/CodeGen/GCStrategy.cpp b/llvm/lib/CodeGen/GCStrategy.cpp
index 073d4b54d30..554d326942e 100644
--- a/llvm/lib/CodeGen/GCStrategy.cpp
+++ b/llvm/lib/CodeGen/GCStrategy.cpp
@@ -20,7 +20,3 @@ GCStrategy::GCStrategy()
: UseStatepoints(false), NeededSafePoints(0), CustomReadBarriers(false),
CustomWriteBarriers(false), CustomRoots(false), InitRoots(true),
UsesMetadata(false) {}
-
-// Stamp out the registry of GCStrategy objects so that pulgins can load new
-// Strategies.
-DEFINE_REGISTRY(GCStrategy)
OpenPOWER on IntegriCloud