diff options
author | Jan Svoboda <jan_svoboda@apple.com> | 2020-12-21 16:35:32 +0100 |
---|---|---|
committer | Jan Svoboda <jan_svoboda@apple.com> | 2021-01-07 11:52:06 +0100 |
commit | a828fb463ed9f6085849bb3a4f225b3c84e7cf29 (patch) | |
tree | 98e64833f6f745ef199e670d63bf0a75c9ac139f /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | 801c7866e6d4fba81c97d27ca56c9e05ba7b157a (diff) | |
download | llvm-a828fb463ed9f6085849bb3a4f225b3c84e7cf29.zip llvm-a828fb463ed9f6085849bb3a4f225b3c84e7cf29.tar.gz llvm-a828fb463ed9f6085849bb3a4f225b3c84e7cf29.tar.bz2 |
[clang][cli] Port a CommaJoined option to the marshalling infrastructure
Reviewed By: dexonsmith
Differential Revision: https://reviews.llvm.org/D93698
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r-- | clang/lib/Frontend/CompilerInvocation.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index 962f729..da4213e 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -328,8 +328,20 @@ static void denormalizeStringVector(SmallVectorImpl<const char *> &Args, Option::OptionClass OptClass, unsigned TableIndex, const std::vector<std::string> &Values) { - for (const std::string &Value : Values) { - denormalizeString(Args, Spelling, SA, OptClass, TableIndex, Value); + if (OptClass == Option::OptionClass::CommaJoinedClass) { + std::string CommaJoinedValue; + if (!Values.empty()) { + CommaJoinedValue.append(Values.front()); + for (const std::string &Value : llvm::drop_begin(Values, 1)) { + CommaJoinedValue.append(","); + CommaJoinedValue.append(Value); + } + } + denormalizeString(Args, Spelling, SA, Option::OptionClass::JoinedClass, + TableIndex, CommaJoinedValue); + } else if (OptClass == Option::OptionClass::JoinedClass) { + for (const std::string &Value : Values) + denormalizeString(Args, Spelling, SA, OptClass, TableIndex, Value); } } @@ -785,7 +797,6 @@ static void parseAnalyzerConfigs(AnalyzerOptions &AnOpts, } static void ParseCommentArgs(CommentOptions &Opts, ArgList &Args) { - Opts.BlockCommandNames = Args.getAllArgValues(OPT_fcomment_block_commands); Opts.ParseAllComments = Args.hasArg(OPT_fparse_all_comments); } |