forked from OSchip/llvm-project
Fix a FIXME about MSVC 2013 in the diagnostic doc generation code
Ultimately it boiled down to adding a move constructor. llvm-svn: 281408
This commit is contained in:
parent
7398b178f1
commit
003bb09e78
|
@ -928,13 +928,14 @@ struct DiagText {
|
|||
void print(std::vector<std::string> &RST) override;
|
||||
};
|
||||
struct SelectPiece : Piece {
|
||||
SelectPiece() {}
|
||||
SelectPiece(SelectPiece &&O) LLVM_NOEXCEPT : Options(std::move(O.Options)) {
|
||||
}
|
||||
std::vector<DiagText> Options;
|
||||
void print(std::vector<std::string> &RST) override;
|
||||
};
|
||||
|
||||
// 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;
|
||||
std::vector<std::unique_ptr<Piece>> Pieces;
|
||||
|
||||
DiagText();
|
||||
DiagText(DiagText &&O) LLVM_NOEXCEPT : Pieces(std::move(O.Pieces)) {}
|
||||
|
@ -943,7 +944,7 @@ struct DiagText {
|
|||
DiagText(StringRef Kind, StringRef Text);
|
||||
|
||||
template<typename P> void add(P Piece) {
|
||||
Pieces.push_back(std::make_shared<P>(std::move(Piece)));
|
||||
Pieces.push_back(llvm::make_unique<P>(std::move(Piece)));
|
||||
}
|
||||
void print(std::vector<std::string> &RST);
|
||||
};
|
||||
|
@ -1040,7 +1041,8 @@ DiagText::DiagText(StringRef Kind, StringRef Text) : DiagText(parseDiagText(Text
|
|||
Prefix.Role = Kind;
|
||||
Prefix.Text = Kind;
|
||||
Prefix.Text += ": ";
|
||||
Pieces.insert(Pieces.begin(), std::make_shared<TextPiece>(std::move(Prefix)));
|
||||
Pieces.insert(Pieces.begin(),
|
||||
llvm::make_unique<TextPiece>(std::move(Prefix)));
|
||||
}
|
||||
|
||||
void escapeRST(StringRef Str, std::string &Out) {
|
||||
|
|
Loading…
Reference in New Issue