diff options
author | Craig Topper <craig.topper@gmail.com> | 2017-05-31 19:01:22 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2017-05-31 19:01:22 +0000 |
commit | 0064858b0eefe43d74b4810559e041a995131589 (patch) | |
tree | d4e012a750affb6e732f92abcd8d4f37c4500e05 /clang/utils/TableGen/ClangOptionDocEmitter.cpp | |
parent | 2b8419a22d0fdb9b204ef0a0262a6ca22137b9a5 (diff) | |
download | bcm5719-llvm-0064858b0eefe43d74b4810559e041a995131589.tar.gz bcm5719-llvm-0064858b0eefe43d74b4810559e041a995131589.zip |
[TableGen] Clang changes to support Record::getValueAsString and getValueAsListOfStrings returning StringRef instead of std::string
This is the clang version of D33710.
Differential Revision: https://reviews.llvm.org/D33711
llvm-svn: 304326
Diffstat (limited to 'clang/utils/TableGen/ClangOptionDocEmitter.cpp')
-rw-r--r-- | clang/utils/TableGen/ClangOptionDocEmitter.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/clang/utils/TableGen/ClangOptionDocEmitter.cpp b/clang/utils/TableGen/ClangOptionDocEmitter.cpp index aa7502e2c85..59314510e0a 100644 --- a/clang/utils/TableGen/ClangOptionDocEmitter.cpp +++ b/clang/utils/TableGen/ClangOptionDocEmitter.cpp @@ -83,7 +83,7 @@ Documentation extractDocumentation(RecordKeeper &Records) { } // Pretend no-X and Xno-Y options are aliases of X and XY. - auto Name = R->getValueAsString("Name"); + std::string Name = R->getValueAsString("Name"); if (Name.size() >= 4) { if (Name.substr(0, 3) == "no-" && OptionsByName[Name.substr(3)]) { Aliases[OptionsByName[Name.substr(3)]].push_back(R); @@ -229,7 +229,7 @@ std::string getRSTStringWithTextFallback(const Record *R, StringRef Primary, } void emitOptionWithArgs(StringRef Prefix, const Record *Option, - ArrayRef<std::string> Args, raw_ostream &OS) { + ArrayRef<StringRef> Args, raw_ostream &OS) { OS << Prefix << escapeRST(Option->getValueAsString("Name")); std::pair<StringRef, StringRef> Separators = @@ -261,14 +261,15 @@ void emitOptionName(StringRef Prefix, const Record *Option, raw_ostream &OS) { } } - emitOptionWithArgs(Prefix, Option, Args, OS); + emitOptionWithArgs(Prefix, Option, std::vector<StringRef>(Args.begin(), Args.end()), OS); auto AliasArgs = Option->getValueAsListOfStrings("AliasArgs"); if (!AliasArgs.empty()) { Record *Alias = Option->getValueAsDef("Alias"); OS << " (equivalent to "; - emitOptionWithArgs(Alias->getValueAsListOfStrings("Prefixes").front(), - Alias, Option->getValueAsListOfStrings("AliasArgs"), OS); + emitOptionWithArgs( + Alias->getValueAsListOfStrings("Prefixes").front(), Alias, + AliasArgs, OS); OS << ")"; } } @@ -310,7 +311,7 @@ void emitOption(const DocumentedOption &Option, const Record *DocInfo, forEachOptionName(Option, DocInfo, [&](const Record *Option) { for (auto &Prefix : Option->getValueAsListOfStrings("Prefixes")) SphinxOptionIDs.push_back( - getSphinxOptionID(Prefix + Option->getValueAsString("Name"))); + getSphinxOptionID((Prefix + Option->getValueAsString("Name")).str())); }); assert(!SphinxOptionIDs.empty() && "no flags for option"); static std::map<std::string, int> NextSuffix; |