r278139 - [clang-cl] Make -gline-tables-only imply -gcodeview

Nico Weber via cfe-commits cfe-commits at lists.llvm.org
Wed Aug 10 03:55:42 PDT 2016


Since this flag is new in 3.9, should we merge this there?

On Tue, Aug 9, 2016 at 1:23 PM, Reid Kleckner via cfe-commits <
cfe-commits at lists.llvm.org> wrote:

> Author: rnk
> Date: Tue Aug  9 12:23:56 2016
> New Revision: 278139
>
> URL: http://llvm.org/viewvc/llvm-project?rev=278139&view=rev
> Log:
> [clang-cl] Make -gline-tables-only imply -gcodeview
>
> It's surprising that you have to pass /Z7 in addition to -gcodeview to
> get debug info. The sanitizer runtime, for example, expects that if the
> compiler supports the -gline-tables-only flag, then it will emit debug
> info.
>
> Modified:
>     cfe/trunk/lib/Driver/Tools.cpp
>     cfe/trunk/test/Driver/cl-options.c
>
> Modified: cfe/trunk/lib/Driver/Tools.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/
> Tools.cpp?rev=278139&r1=278138&r2=278139&view=diff
> ============================================================
> ==================
> --- cfe/trunk/lib/Driver/Tools.cpp (original)
> +++ cfe/trunk/lib/Driver/Tools.cpp Tue Aug  9 12:23:56 2016
> @@ -4611,8 +4611,8 @@ void Clang::ConstructJob(Compilation &C,
>                                 options::OPT_gdwarf_4,
> options::OPT_gdwarf_5))
>      DwarfVersion = DwarfVersionNum(A->getSpelling());
>
> -  // Forward -gcodeview.
> -  // 'EmitCodeView might have been set by CL-compatibility argument
> parsing.
> +  // Forward -gcodeview. EmitCodeView might have been set by
> CL-compatibility
> +  // argument parsing.
>    if (Args.hasArg(options::OPT_gcodeview) || EmitCodeView) {
>      // DwarfVersion remains at 0 if no explicit choice was made.
>      CmdArgs.push_back("-gcodeview");
> @@ -6402,9 +6402,10 @@ void Clang::AddClangCLArgs(const ArgList
>      CmdArgs.push_back(Args.MakeArgString(Twine(LangOptions::SSPStrong)));
>    }
>
> -  // Emit CodeView if -Z7 or -Zd are present.
> +  // Emit CodeView if -Z7, -Zd, or -gline-tables-only are present.
>    if (Arg *DebugInfoArg =
> -          Args.getLastArg(options::OPT__SLASH_Z7,
> options::OPT__SLASH_Zd)) {
> +          Args.getLastArg(options::OPT__SLASH_Z7, options::OPT__SLASH_Zd,
> +                          options::OPT_gline_tables_only)) {
>      *EmitCodeView = true;
>      if (DebugInfoArg->getOption().matches(options::OPT__SLASH_Z7))
>        *DebugInfoKind = codegenoptions::LimitedDebugInfo;
>
> Modified: cfe/trunk/test/Driver/cl-options.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> cl-options.c?rev=278139&r1=278138&r2=278139&view=diff
> ============================================================
> ==================
> --- cfe/trunk/test/Driver/cl-options.c (original)
> +++ cfe/trunk/test/Driver/cl-options.c Tue Aug  9 12:23:56 2016
> @@ -424,6 +424,10 @@
>  // Z7GMLT: "-gcodeview"
>  // Z7GMLT: "-debug-info-kind=line-tables-only"
>
> +// RUN: %clang_cl -gline-tables-only /c -### -- %s 2>&1 | FileCheck
> -check-prefix=ZGMLT %s
> +// ZGMLT: "-gcodeview"
> +// ZGMLT: "-debug-info-kind=line-tables-only"
> +
>  // RUN: %clang_cl /c -### -- %s 2>&1 | FileCheck
> -check-prefix=BreproDefault %s
>  // BreproDefault: "-mincremental-linker-compatible"
>
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160810/8e10b6e4/attachment.html>


More information about the cfe-commits mailing list