aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2020-01-29 00:42:56 +0100
committerBenjamin Kramer <benny.kra@googlemail.com>2020-01-29 00:42:56 +0100
commit0d401fa36b532b7d766fd51368b9afb88ad46d1a (patch)
tree23512ec5886a492d4af399d69f0733eee7f88b5f /clang/lib/Frontend/CompilerInvocation.cpp
parent5976067d2c5c00969e5e211048aec1d2aaccb366 (diff)
downloadllvm-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.cpp21
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());