[Remarks][Driver] Run dsymutil when remarks are enabled
When clang is invoked with a source file without -c or -S, it creates a cc1 job, a linker job and if debug info is requested, a dsymutil job. In case of remarks, we should also create a dsymutil job to avoid losing the remarks that will be generated in a tempdir that gets removed. Differential Revision: https://reviews.llvm.org/D71675
This commit is contained in:
parent
a8c678cb9a
commit
d79b11fefb
2 changed files with 16 additions and 2 deletions
|
|
@ -1990,8 +1990,9 @@ void Driver::BuildUniversalActions(Compilation &C, const ToolChain &TC,
|
|||
|
||||
// Handle debug info queries.
|
||||
Arg *A = Args.getLastArg(options::OPT_g_Group);
|
||||
if (A && !A->getOption().matches(options::OPT_g0) &&
|
||||
!A->getOption().matches(options::OPT_gstabs) &&
|
||||
bool enablesDebugInfo = A && !A->getOption().matches(options::OPT_g0) &&
|
||||
!A->getOption().matches(options::OPT_gstabs);
|
||||
if ((enablesDebugInfo || willEmitRemarks(Args)) &&
|
||||
ContainsCompileOrAssembleAction(Actions.back())) {
|
||||
|
||||
// Add a 'dsymutil' step if necessary, when debug info is enabled and we
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
|
||||
// RUN: %clang -target x86_64-apple-darwin10 -### -c -o FOO -fsave-optimization-record -arch x86_64 -arch x86_64h %s 2>&1 | FileCheck %s --check-prefix=CHECK-MULTIPLE-ARCH
|
||||
// RUN: %clang -target x86_64-apple-darwin10 -### -c -o FOO -foptimization-record-file=tmp -arch x86_64 -arch x86_64h %s 2>&1 | FileCheck %s --check-prefix=CHECK-MULTIPLE-ARCH-ERROR
|
||||
// RUN: %clang -target x86_64-apple-darwin10 -### -o FOO -fsave-optimization-record %s 2>&1 | FileCheck %s --check-prefix=CHECK-DSYMUTIL-NO-G
|
||||
// RUN: %clang -target x86_64-apple-darwin10 -### -o FOO -g0 -fsave-optimization-record %s 2>&1 | FileCheck %s --check-prefix=CHECK-DSYMUTIL-G0
|
||||
//
|
||||
// CHECK-MULTIPLE-ARCH: "-cc1"
|
||||
// CHECK-MULTIPLE-ARCH: "-opt-record-file" "FOO-x86_64.opt.yaml"
|
||||
|
|
@ -9,3 +11,14 @@
|
|||
// CHECK-MULTIPLE-ARCH: "-opt-record-file" "FOO-x86_64h.opt.yaml"
|
||||
//
|
||||
// CHECK-MULTIPLE-ARCH-ERROR: cannot use '-foptimization-record-file' output with multiple -arch options
|
||||
//
|
||||
// CHECK-DSYMUTIL-NO-G: "-cc1"
|
||||
// CHECK-DSYMUTIL-NO-G: ld
|
||||
// CHECK-DSYMUTIL-NO-G: dsymutil
|
||||
//
|
||||
// Even in the presence of -g0, -fsave-optimization-record implies
|
||||
// -gline-tables-only and would need -fno-save-optimization-record to
|
||||
// completely disable it.
|
||||
// CHECK-DSYMUTIL-G0: "-cc1"
|
||||
// CHECK-DSYMUTIL-G0: ld
|
||||
// CHECK-DSYMUTIL-G0: dsymutil
|
||||
|
|
|
|||
Loading…
Reference in a new issue