diff --git a/llvm/utils/TableGen/OptParserEmitter.cpp b/llvm/utils/TableGen/OptParserEmitter.cpp index f8ddbefdcc596..ebef5847f7137 100644 --- a/llvm/utils/TableGen/OptParserEmitter.cpp +++ b/llvm/utils/TableGen/OptParserEmitter.cpp @@ -54,9 +54,9 @@ static std::string getOptionSpelling(const Record &R) { static void emitNameUsingSpelling(raw_ostream &OS, const Record &R) { size_t PrefixLength; - OS << "llvm::StringRef(&"; + OS << "llvm::StringRef("; write_cstring(OS, StringRef(getOptionSpelling(R, PrefixLength))); - OS << '[' << PrefixLength << "])"; + OS << ").substr(" << PrefixLength << ")"; } class MarshallingInfo {