Sorry, no, I don't have plans to implement column ranges at this time. On Mon, Aug 29, 2016 at 2:10 PM, Adrian Prantl <apra...@apple.com> wrote:
> > > On Aug 25, 2016, at 11:24 AM, Adrian McCarthy via cfe-commits < > cfe-commits@lists.llvm.org> wrote: > > > > Author: amccarth > > Date: Thu Aug 25 13:24:35 2016 > > New Revision: 279765 > > > > URL: http://llvm.org/viewvc/llvm-project?rev=279765&view=rev > > Log: > > Omit column info for CodeView by default > > > > Clang tracks only start columns, not start-end ranges. CodeView allows > for that, but the VS debugger doesn't handle anything less than a complete > range well--it either highlights the wrong part of a statement or truncates > source lines in the assembly view. It's better to have no column > information at all. > > Do you have any plans on implementing this? I'd be very interested in > having full start-end ranges (perhaps encoded as start line/column+length) > available in DWARF, too. > > -- adrian > > > > > So by default, we'll omit the column information for CodeView targeting > Windows. > > > > Since the column info is still useful for sanitizers, I've promoted > -gcolumn-info (and -gno-column-info) to a CoreOption and added a couple > tests to make sure that works for clang-cl. > > > > Differential Revision: https://reviews.llvm.org/D23720 > > > > Modified: > > cfe/trunk/include/clang/Driver/Options.td > > cfe/trunk/lib/Driver/Tools.cpp > > cfe/trunk/test/Driver/cl-options.c > > > > Modified: cfe/trunk/include/clang/Driver/Options.td > > URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/ > clang/Driver/Options.td?rev=279765&r1=279764&r2=279765&view=diff > > ============================================================ > ================== > > --- cfe/trunk/include/clang/Driver/Options.td (original) > > +++ cfe/trunk/include/clang/Driver/Options.td Thu Aug 25 13:24:35 2016 > > @@ -1305,8 +1305,8 @@ def gno_record_gcc_switches : Flag<["-"] > > Group<g_flags_Group>; > > def gstrict_dwarf : Flag<["-"], "gstrict-dwarf">, Group<g_flags_Group>; > > def gno_strict_dwarf : Flag<["-"], "gno-strict-dwarf">, > Group<g_flags_Group>; > > -def gcolumn_info : Flag<["-"], "gcolumn-info">, Group<g_flags_Group>; > > -def gno_column_info : Flag<["-"], "gno-column-info">, > Group<g_flags_Group>; > > +def gcolumn_info : Flag<["-"], "gcolumn-info">, Group<g_flags_Group>, > Flags<[CoreOption]>; > > +def gno_column_info : Flag<["-"], "gno-column-info">, > Group<g_flags_Group>, Flags<[CoreOption]>; > > def gsplit_dwarf : Flag<["-"], "gsplit-dwarf">, Group<g_flags_Group>; > > def ggnu_pubnames : Flag<["-"], "ggnu-pubnames">, Group<g_flags_Group>; > > def gdwarf_aranges : Flag<["-"], "gdwarf-aranges">, Group<g_flags_Group>; > > > > Modified: cfe/trunk/lib/Driver/Tools.cpp > > URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ > Tools.cpp?rev=279765&r1=279764&r2=279765&view=diff > > ============================================================ > ================== > > --- cfe/trunk/lib/Driver/Tools.cpp (original) > > +++ cfe/trunk/lib/Driver/Tools.cpp Thu Aug 25 13:24:35 2016 > > @@ -2574,7 +2574,7 @@ static void getTargetFeatures(const Tool > > case llvm::Triple::wasm32: > > case llvm::Triple::wasm64: > > getWebAssemblyTargetFeatures(Args, Features); > > - break; > > + break; > > case llvm::Triple::sparc: > > case llvm::Triple::sparcel: > > case llvm::Triple::sparcv9: > > @@ -4656,9 +4656,13 @@ void Clang::ConstructJob(Compilation &C, > > // We ignore flags -gstrict-dwarf and -grecord-gcc-switches for now. > > Args.ClaimAllArgs(options::OPT_g_flags_Group); > > > > - // PS4 defaults to no column info > > + // Column info is included by default for everything except PS4 and > CodeView. > > + // Clang doesn't track end columns, just starting columns, which, in > theory, > > + // is fine for CodeView (and PDB). In practice, however, the > Microsoft > > + // debuggers don't handle missing end columns well, so it's better > not to > > + // include any column info. > > if (Args.hasFlag(options::OPT_gcolumn_info, > options::OPT_gno_column_info, > > - /*Default=*/ !IsPS4CPU)) > > + /*Default=*/ !IsPS4CPU && !(IsWindowsMSVC && > EmitCodeView))) > > CmdArgs.push_back("-dwarf-column-info"); > > > > // FIXME: Move backend command line options to the module. > > @@ -6712,7 +6716,7 @@ void ClangAs::ConstructJob(Compilation & > > case llvm::Triple::mips64el: > > AddMIPSTargetArgs(Args, CmdArgs); > > break; > > - > > + > > case llvm::Triple::x86: > > case llvm::Triple::x86_64: > > AddX86TargetArgs(Args, CmdArgs); > > > > Modified: cfe/trunk/test/Driver/cl-options.c > > URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/ > cl-options.c?rev=279765&r1=279764&r2=279765&view=diff > > ============================================================ > ================== > > --- cfe/trunk/test/Driver/cl-options.c (original) > > +++ cfe/trunk/test/Driver/cl-options.c Thu Aug 25 13:24:35 2016 > > @@ -50,6 +50,15 @@ > > // fpstrict-NOT: -menable-unsafe-fp-math > > // fpstrict-NOT: -ffast-math > > > > +// RUN: %clang_cl /Z7 -gcolumn-info -### -- %s 2>&1 | FileCheck > -check-prefix=gcolumn %s > > +// gcolumn: -dwarf-column-info > > + > > +// RUN: %clang_cl /Z7 -gno-column-info -### -- %s 2>&1 | FileCheck > -check-prefix=gnocolumn %s > > +// gnocolumn-NOT: -dwarf-column-info > > + > > +// RUN: %clang_cl /Z7 -### -- %s 2>&1 | FileCheck > -check-prefix=gdefcolumn %s > > +// gdefcolumn-NOT: -dwarf-column-info > > + > > // RUN: %clang_cl /GA -### -- %s 2>&1 | FileCheck -check-prefix=GA %s > > // GA: -ftls-model=local-exec > > > > > > > > _______________________________________________ > > cfe-commits mailing list > > cfe-commits@lists.llvm.org > > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits > >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits