Author: Francis Visoiu Mistrih Date: 2019-12-11T17:59:46-08:00 New Revision: 60590b149b33eb80d0b52c1c6723fe35817ee897
URL: https://github.com/llvm/llvm-project/commit/60590b149b33eb80d0b52c1c6723fe35817ee897 DIFF: https://github.com/llvm/llvm-project/commit/60590b149b33eb80d0b52c1c6723fe35817ee897.diff LOG: [Remarks][Driver] Ask for line tables when remarks are enabled Serialized remarks contain debug locations for each remark, by storing a file path, a line, and a column. Also, remarks support being embedded in a .dSYM bundle using a separate section in object files, that is found by `dsymutil` through the debug map. In order for tools to map addresses to source and display remarks in the source, we need line tables, and in order for `dsymutil` to find the object files containing the remark section, we need to keep the debug map around. Differential Revision: https://reviews.llvm.org/D71325 Added: Modified: clang/lib/Driver/ToolChains/Clang.cpp clang/test/Driver/debug-options.c Removed: ################################################################################ diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index c00d5d07bcf2..38c6acc85512 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -3717,6 +3717,11 @@ static void RenderDebugOptions(const ToolChain &TC, const Driver &D, // Adjust the debug info kind for the given toolchain. TC.adjustDebugInfoKind(DebugInfoKind, Args); + // When emitting remarks, we need at least debug lines in the output. + if (shouldEmitRemarks(Args) && + DebugInfoKind <= codegenoptions::DebugDirectivesOnly) + DebugInfoKind = codegenoptions::DebugLineTablesOnly; + RenderDebugEnablingArgs(Args, CmdArgs, DebugInfoKind, DWARFVersion, DebuggerTuning); diff --git a/clang/test/Driver/debug-options.c b/clang/test/Driver/debug-options.c index aacc40f780d6..acbc056573ec 100644 --- a/clang/test/Driver/debug-options.c +++ b/clang/test/Driver/debug-options.c @@ -64,6 +64,12 @@ // RUN: %clang -### -c -g %s -target arm64-apple-tvos9.0 2>&1 \ // RUN: | FileCheck -check-prefix=G_STANDALONE \ // RUN: -check-prefix=G_DWARF4 %s +// RUN: %clang -### -c -fsave-optimization-record %s \ +// RUN: -target x86_64-apple-darwin 2>&1 \ +// RUN: | FileCheck -check-prefix=GLTO_ONLY %s +// RUN: %clang -### -c -g -fsave-optimization-record %s \ +// RUN: -target x86_64-apple-darwin 2>&1 \ +// RUN: | FileCheck -check-prefix=G_STANDALONE %s // FreeBSD. // RUN: %clang -### -c -g %s -target x86_64-pc-freebsd11.0 2>&1 \ _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits