Changes in directory llvm/lib/Support:
CommandLine.cpp updated: 1.84 -> 1.85 --- Log message: Fix a bug in my earlier commit which exposed positional options backwards. This fixes llvm-ar. --- Diffs of the changes: (+9 -3) CommandLine.cpp | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-) Index: llvm/lib/Support/CommandLine.cpp diff -u llvm/lib/Support/CommandLine.cpp:1.84 llvm/lib/Support/CommandLine.cpp:1.85 --- llvm/lib/Support/CommandLine.cpp:1.84 Fri Apr 6 16:06:55 2007 +++ llvm/lib/Support/CommandLine.cpp Sat Apr 7 00:38:53 2007 @@ -91,6 +91,7 @@ static void GetOptionInfo(std::vector<Option*> &PositionalOpts, std::map<std::string, Option*> &OptionsMap) { std::vector<const char*> OptionNames; + Option *CAOpt = 0; // The ConsumeAfter option if it exists. for (Option *O = RegisteredOptionList; O; O = O->getNextRegisteredOption()) { // If this option wants to handle multiple option names, get the full set. // This handles enum options like "-O1 -O2" etc. @@ -114,12 +115,17 @@ if (O->getFormattingFlag() == cl::Positional) PositionalOpts.push_back(O); else if (O->getNumOccurrencesFlag() == cl::ConsumeAfter) { - if (!PositionalOpts.empty() && - PositionalOpts.front()->getNumOccurrencesFlag() == cl::ConsumeAfter) + if (CAOpt) O->error("Cannot specify more than one option with cl::ConsumeAfter!"); - PositionalOpts.insert(PositionalOpts.begin(), O); + CAOpt = O; } } + + if (CAOpt) + PositionalOpts.push_back(CAOpt); + + // Make sure that they are in order of registration not backwards. + std::reverse(PositionalOpts.begin(), PositionalOpts.end()); } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits