diff options
author | Eric Christopher <echristo@gmail.com> | 2016-03-14 08:10:47 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gmail.com> | 2016-03-14 08:10:47 +0000 |
commit | 2867db529d8d9fb929fc898f8c5b47f952940646 (patch) | |
tree | 34633175afd636d2db767eb736758239b4fa1e79 /lib/Frontend/CompilerInvocation.cpp | |
parent | cff683b2bb870b24c4394780bbae534521e8c7a2 (diff) | |
download | clang-2867db529d8d9fb929fc898f8c5b47f952940646.tar.gz |
Temporarily make discard value names depend on whether or not we're
trying to track origins in the memory sanitizer since the backend
instrumentation pass currently takes names from the Instruction.
Fixes all of the origin tracking tests in compiler-rt after the
-discard-value-name option was added.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@263412 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Frontend/CompilerInvocation.cpp')
-rw-r--r-- | lib/Frontend/CompilerInvocation.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/Frontend/CompilerInvocation.cpp b/lib/Frontend/CompilerInvocation.cpp index dee425eb88..980a685a15 100644 --- a/lib/Frontend/CompilerInvocation.cpp +++ b/lib/Frontend/CompilerInvocation.cpp @@ -541,7 +541,6 @@ static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK, Opts.DisableFPElim = (Args.hasArg(OPT_mdisable_fp_elim) || Args.hasArg(OPT_pg)); Opts.DisableFree = Args.hasArg(OPT_disable_free); - Opts.DiscardValueNames = Args.hasArg(OPT_discard_value_names); Opts.DisableTailCalls = Args.hasArg(OPT_mdisable_tail_calls); Opts.FloatABI = Args.getLastArgValue(OPT_mfloat_abi); if (Arg *A = Args.getLastArg(OPT_meabi)) { @@ -794,6 +793,12 @@ static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK, Opts.CudaGpuBinaryFileNames = Args.getAllArgValues(OPT_fcuda_include_gpubinary); + // DiscardValueNames is set here so that it can depend (perhaps temporarily) + // on other options. + // We check SanitizeMemoryTrackOrigins here because the backend pass depends + // on the name of the alloca in order to print out names. + Opts.DiscardValueNames = + Args.hasArg(OPT_discard_value_names) && !Opts.SanitizeMemoryTrackOrigins; return Success; } |