diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2016-09-12 06:38:31 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2016-09-12 06:38:31 +0000 |
commit | 4d206e7dc236dc6d22d2f6017701b42ef4cac59e (patch) | |
tree | ed88e041a683e2277c06650afe836f6c7cd8592f /utils | |
parent | 1f9518916380230722705777594598949072b1b4 (diff) |
Attempt #3 to placate MSVC.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@281197 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
-rw-r--r-- | utils/TableGen/ClangDiagnosticsEmitter.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/utils/TableGen/ClangDiagnosticsEmitter.cpp b/utils/TableGen/ClangDiagnosticsEmitter.cpp index 2f16261d76..22e51572b9 100644 --- a/utils/TableGen/ClangDiagnosticsEmitter.cpp +++ b/utils/TableGen/ClangDiagnosticsEmitter.cpp @@ -926,16 +926,18 @@ struct DiagText { void print(std::vector<std::string> &RST) override; }; - std::vector<std::unique_ptr<Piece>> Pieces; + // FIXME: This should be a unique_ptr, but I can't figure out how to get MSVC + // to not issue errors on that. + std::vector<std::shared_ptr<Piece>> Pieces; DiagText(); - DiagText(DiagText &&O) : Pieces(std::move(O.Pieces)) {} + DiagText(DiagText &&O) LLVM_NOEXCEPT : Pieces(std::move(O.Pieces)) {} DiagText(StringRef Text); DiagText(StringRef Kind, StringRef Text); template<typename P> void add(P Piece) { - Pieces.push_back(llvm::make_unique<P>(std::move(Piece))); + Pieces.push_back(std::make_shared<P>(std::move(Piece))); } void print(std::vector<std::string> &RST); }; @@ -1032,7 +1034,7 @@ DiagText::DiagText(StringRef Kind, StringRef Text) : DiagText(parseDiagText(Text Prefix.Role = Kind; Prefix.Text = Kind; Prefix.Text += ": "; - Pieces.insert(Pieces.begin(), llvm::make_unique<TextPiece>(std::move(Prefix))); + Pieces.insert(Pieces.begin(), std::make_shared<TextPiece>(std::move(Prefix))); } void escapeRST(StringRef Str, std::string &Out) { |