@@ -37,31 +37,24 @@ struct InputArgs final : public Intel::CM::ClangFE::IInputArgs {
3737};
3838
3939using StringVect_t = std::vector<std::string>;
40- inline StringVect_t
41- convertBackendArgsToVcOpts (const StringVect_t &BackendArgs) {
42- std::vector<std::string> VcOpts;
43- std::vector<std::string> AllFinalizerOpts ;
40+ inline std::pair< StringVect_t, StringVect_t>
41+ convertBackendArgsToVcAndFinalizerOpts (const StringVect_t &BackendArgs) {
42+ StringVect_t VcOpts;
43+ StringVect_t FinalizerOpts ;
4444
4545 const std::string FinalizerOptPrefix = " -finalizer-opts=" ;
4646 auto IsFinalizerOpts = [&FinalizerOptPrefix](const std::string &Opt) {
4747 return Opt.find (FinalizerOptPrefix) == 0 ;
4848 };
4949 std::partition_copy (BackendArgs.begin (), BackendArgs.end (),
50- std::back_inserter (AllFinalizerOpts ),
50+ std::back_inserter (FinalizerOpts ),
5151 std::back_inserter (VcOpts), IsFinalizerOpts);
52- std::transform (AllFinalizerOpts .begin (), AllFinalizerOpts .end (),
53- AllFinalizerOpts .begin (),
52+ std::transform (FinalizerOpts .begin (), FinalizerOpts .end (),
53+ FinalizerOpts .begin (),
5454 [&FinalizerOptPrefix](const std::string &Opt) {
5555 return Opt.substr (FinalizerOptPrefix.size ());
5656 });
57- if (!AllFinalizerOpts.empty ()) {
58- // TODO: we should escape the joined finalizer options
59- VcOpts.emplace_back ((llvm::StringRef (FinalizerOptPrefix) + " \" " +
60- llvm::join (AllFinalizerOpts, " " ) + " \" " )
61- .str ());
62- }
63-
64- return VcOpts;
57+ return {VcOpts, FinalizerOpts};
6558}
6659
6760using IOutputArgs = Intel::CM::ClangFE::IOutputArgs;
0 commit comments