[Driver] Only pass LTO remark arguments if the driver asks for it
authorFrancis Visoiu Mistrih <francisvm@yahoo.com>
Tue, 7 Apr 2020 20:49:00 +0000 (13:49 -0700)
committerFrancis Visoiu Mistrih <francisvm@yahoo.com>
Tue, 7 Apr 2020 21:11:47 +0000 (14:11 -0700)
Previous fix missed a check to willEmitRemarks, causing remarks to
always be enabled for LTO.

clang/lib/Driver/ToolChains/Darwin.cpp
clang/test/Driver/darwin-opt-record-ld.c

index ab98427..a113d05 100644 (file)
@@ -533,7 +533,8 @@ void darwin::Linker::ConstructJob(Compilation &C, const JobAction &JA,
   // we follow suite for ease of comparison.
   AddLinkArgs(C, Args, CmdArgs, Inputs);
 
-  if (checkRemarksOptions(getToolChain().getDriver(), Args,
+  if (willEmitRemarks(Args) &&
+      checkRemarksOptions(getToolChain().getDriver(), Args,
                           getToolChain().getTriple()))
     renderRemarksOptions(Args, CmdArgs, getToolChain().getTriple(), Output, JA);
 
index 0e1e312..83630ed 100644 (file)
@@ -2,6 +2,10 @@
 
 // RUN: touch %t.o
 //
+// Check that we're not passing -lto-pass-remarks-output if not requested
+// RUN: %clang -target x86_64-apple-darwin12 %t.o -### -o foo/bar.out 2> %t.log
+// RUN: FileCheck -check-prefix=NO_PASS_REMARKS_OUTPUT %s < %t.log
+// NO_PASS_REMARKS_OUTPUT-NOT: -lto-pass-remarks
 // Check that we're passing -lto-pass-remarks-output for LTO
 // RUN: %clang -target x86_64-apple-darwin12 %t.o -fsave-optimization-record -### -o foo/bar.out 2> %t.log
 // RUN: FileCheck -check-prefix=PASS_REMARKS_OUTPUT %s < %t.log