serge-sans-paille updated this revision to Diff 480363. serge-sans-paille added a comment.
fix test / compile errors CHANGES SINCE LAST ACTION https://reviews.llvm.org/D139274/new/ https://reviews.llvm.org/D139274 Files: clang/lib/Driver/ToolChains/Gnu.cpp llvm/include/llvm/Option/OptTable.h llvm/lib/Option/OptTable.cpp llvm/unittests/Option/OptionMarshallingTest.cpp llvm/utils/TableGen/OptParserEmitter.cpp
Index: llvm/utils/TableGen/OptParserEmitter.cpp =================================================================== --- llvm/utils/TableGen/OptParserEmitter.cpp +++ llvm/utils/TableGen/OptParserEmitter.cpp @@ -54,9 +54,9 @@ static void emitNameUsingSpelling(raw_ostream &OS, const Record &R) { size_t PrefixLength; - OS << "&"; + OS << "llvm::StringRef("; write_cstring(OS, StringRef(getOptionSpelling(R, PrefixLength))); - OS << "[" << PrefixLength << "]"; + OS << ").substr(" << PrefixLength << ")"; } class MarshallingInfo { Index: llvm/unittests/Option/OptionMarshallingTest.cpp =================================================================== --- llvm/unittests/Option/OptionMarshallingTest.cpp +++ llvm/unittests/Option/OptionMarshallingTest.cpp @@ -6,10 +6,11 @@ // //===----------------------------------------------------------------------===// +#include "llvm/ADT/StringRef.h" #include "gtest/gtest.h" struct OptionWithMarshallingInfo { - const char *Name; + llvm::StringRef Name; const char *KeyPath; const char *ImpliedCheck; const char *ImpliedValue; @@ -27,10 +28,10 @@ }; TEST(OptionMarshalling, EmittedOrderSameAsDefinitionOrder) { - ASSERT_STREQ(MarshallingTable[0].Name, "marshalled-flag-d"); - ASSERT_STREQ(MarshallingTable[1].Name, "marshalled-flag-c"); - ASSERT_STREQ(MarshallingTable[2].Name, "marshalled-flag-b"); - ASSERT_STREQ(MarshallingTable[3].Name, "marshalled-flag-a"); + ASSERT_STREQ(MarshallingTable[0].Name.data(), "marshalled-flag-d"); + ASSERT_STREQ(MarshallingTable[1].Name.data(), "marshalled-flag-c"); + ASSERT_STREQ(MarshallingTable[2].Name.data(), "marshalled-flag-b"); + ASSERT_STREQ(MarshallingTable[3].Name.data(), "marshalled-flag-a"); } TEST(OptionMarshalling, EmittedSpecifiedKeyPath) { Index: llvm/lib/Option/OptTable.cpp =================================================================== --- llvm/lib/Option/OptTable.cpp +++ llvm/lib/Option/OptTable.cpp @@ -67,7 +67,7 @@ if (&A == &B) return false; - if (int N = StrCmpOptionName(A.Name, B.Name)) + if (int N = StrCmpOptionName(A.Name.data(), B.Name.data())) return N < 0; for (const char * const *APre = A.Prefixes, @@ -87,7 +87,7 @@ // Support lower_bound between info and an option name. static inline bool operator<(const OptTable::Info &I, const char *Name) { - return StrCmpOptionNameIgnoreCase(I.Name, Name) < 0; + return StrCmpOptionNameIgnoreCase(I.Name.data(), Name) < 0; } } // end namespace opt @@ -321,7 +321,7 @@ return BestDistance; } -bool OptTable::addValues(const char *Option, const char *Values) { +bool OptTable::addValues(StringRef Option, const char *Values) { for (size_t I = FirstSearchableIndex, E = OptionInfos.size(); I < E; I++) { Info &In = OptionInfos[I]; if (optionMatches(In, Option)) { Index: llvm/include/llvm/Option/OptTable.h =================================================================== --- llvm/include/llvm/Option/OptTable.h +++ llvm/include/llvm/Option/OptTable.h @@ -44,7 +44,7 @@ /// A null terminated array of prefix strings to apply to name while /// matching. const char *const *Prefixes; - const char *Name; + StringRef Name; const char *HelpText; const char *MetaVar; unsigned ID; @@ -102,9 +102,7 @@ const Option getOption(OptSpecifier Opt) const; /// Lookup the name of the given option. - const char *getOptionName(OptSpecifier id) const { - return getInfo(id).Name; - } + StringRef getOptionName(OptSpecifier id) const { return getInfo(id).Name; } /// Get the kind of the given option. unsigned getOptionKind(OptSpecifier id) const { @@ -184,7 +182,7 @@ /// takes /// /// \return true in success, and false in fail. - bool addValues(const char *Option, const char *Values); + bool addValues(StringRef Option, const char *Values); /// Parse a single argument; returning the new argument and /// updating Index. Index: clang/lib/Driver/ToolChains/Gnu.cpp =================================================================== --- clang/lib/Driver/ToolChains/Gnu.cpp +++ clang/lib/Driver/ToolChains/Gnu.cpp @@ -331,8 +331,8 @@ if (HasStaticPIE && Args.hasArg(options::OPT_nopie)) { const Driver &D = TC.getDriver(); const llvm::opt::OptTable &Opts = D.getOpts(); - const char *StaticPIEName = Opts.getOptionName(options::OPT_static_pie); - const char *NoPIEName = Opts.getOptionName(options::OPT_nopie); + StringRef StaticPIEName = Opts.getOptionName(options::OPT_static_pie); + StringRef NoPIEName = Opts.getOptionName(options::OPT_nopie); D.Diag(diag::err_drv_cannot_mix_options) << StaticPIEName << NoPIEName; } return HasStaticPIE;
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits