[llvm] [Option] Declare library command line options in TableGen (PR #226087)
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 30 19:24:56 PDT 2026
================
@@ -1593,6 +1638,24 @@ bool CommandLineParser::ParseCommandLineOptions(
Handler = LookupLongOption(SubCommand::getTopLevel(), ArgName, Value,
LongOptionsUseDoubleDash, HaveDoubleDash);
+ if (!Handler && (!LongOptionsUseDoubleDash || HaveDoubleDash)) {
+ if (LibraryOptions *L = lookupLibraryOption(ArgName.split('=').first)) {
+ // An option takes at most one separate value.
+ StringSaver Saver(LibraryArgAlloc);
+ const char *Args[2];
+ unsigned NumArgs = std::min(argc - i, 2);
+ for (unsigned J = 0; J != NumArgs; ++J)
+ Args[J] = Saver.save(argv[i + J]).data();
+ unsigned N = 1;
+ if (Error E = L->parse(ArrayRef(Args, NumArgs), N)) {
----------------
MaskRay wrote:
It extends the lifetime.
The strings are backed by `BumpPtrAllocator LibraryArgAlloc`, a member variable of `globalParser()` (static storage).
https://github.com/llvm/llvm-project/pull/226087
More information about the llvm-commits
mailing list