diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2020-01-29 00:42:56 +0100 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2020-01-29 00:42:56 +0100 |
commit | 0d401fa36b532b7d766fd51368b9afb88ad46d1a (patch) | |
tree | 23512ec5886a492d4af399d69f0733eee7f88b5f /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | 5976067d2c5c00969e5e211048aec1d2aaccb366 (diff) | |
download | llvm-0d401fa36b532b7d766fd51368b9afb88ad46d1a.zip llvm-0d401fa36b532b7d766fd51368b9afb88ad46d1a.tar.gz llvm-0d401fa36b532b7d766fd51368b9afb88ad46d1a.tar.bz2 |
Fix a couple more implicit conversions that Clang doesn't diagnose.
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r-- | clang/lib/Frontend/CompilerInvocation.cpp | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index 194cbd3..14cbf39 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -779,8 +779,11 @@ static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK, Opts.ForceDwarfFrameSection = Args.hasFlag(OPT_fforce_dwarf_frame, OPT_fno_force_dwarf_frame, false); - for (const auto &Arg : Args.getAllArgValues(OPT_fdebug_prefix_map_EQ)) - Opts.DebugPrefixMap.insert(StringRef(Arg).split('=')); + for (const auto &Arg : Args.getAllArgValues(OPT_fdebug_prefix_map_EQ)) { + auto Split = StringRef(Arg).split('='); + Opts.DebugPrefixMap.insert( + {std::string(Split.first), std::string(Split.second)}); + } if (const Arg *A = Args.getLastArg(OPT_emit_llvm_uselists, OPT_no_emit_llvm_uselists)) @@ -2112,8 +2115,11 @@ static void ParseHeaderSearchArgs(HeaderSearchOptions &Opts, ArgList &Args, // Only the -fmodule-file=<name>=<file> form. for (const auto *A : Args.filtered(OPT_fmodule_file)) { StringRef Val = A->getValue(); - if (Val.find('=') != StringRef::npos) - Opts.PrebuiltModuleFiles.insert(Val.split('=')); + if (Val.find('=') != StringRef::npos){ + auto Split = Val.split('='); + Opts.PrebuiltModuleFiles.insert( + {std::string(Split.first), std::string(Split.second)}); + } } for (const auto *A : Args.filtered(OPT_fprebuilt_module_path)) Opts.AddPrebuiltModulePath(A->getValue()); @@ -3381,8 +3387,11 @@ static void ParsePreprocessorArgs(PreprocessorOptions &Opts, ArgList &Args, for (const auto *A : Args.filtered(OPT_error_on_deserialized_pch_decl)) Opts.DeserializedPCHDeclsToErrorOn.insert(A->getValue()); - for (const auto &A : Args.getAllArgValues(OPT_fmacro_prefix_map_EQ)) - Opts.MacroPrefixMap.insert(StringRef(A).split('=')); + for (const auto &A : Args.getAllArgValues(OPT_fmacro_prefix_map_EQ)) { + auto Split = StringRef(A).split('='); + Opts.MacroPrefixMap.insert( + {std::string(Split.first), std::string(Split.second)}); + } if (const Arg *A = Args.getLastArg(OPT_preamble_bytes_EQ)) { StringRef Value(A->getValue()); |