]> granicus.if.org Git - clang/commitdiff
Temporarily make discard value names depend on whether or not we're
authorEric Christopher <echristo@gmail.com>
Mon, 14 Mar 2016 08:10:47 +0000 (08:10 +0000)
committerEric Christopher <echristo@gmail.com>
Mon, 14 Mar 2016 08:10:47 +0000 (08:10 +0000)
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

lib/Frontend/CompilerInvocation.cpp

index dee425eb88b99a90f21b89be880031e2d5077e73..980a685a150c47866361da358880c526b8fd256c 100644 (file)
@@ -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;
 }