aprantl added a comment.

> Since that change, we treat line zero the same as "no location". If there are 
> no locations in a basic block, then the whole block inherits the line number 
> from the block layout predecessor, which could be unrelated. Keeping the 
> inlined call site location gives us the highest likelihood that "step over" 
> will stop at the next statement.

Who is "we" in this context? The CodeView backend?
As far as DWARF is concerned (and LLVM mostly inherits the DWARF semantics) 
line 0 is well-defined and means compiler-generated code or otherwise no 
unambiguous source location. DWARF-based debuggers know to skip over 
instructions with line 0.

Is the problem that CodeView doesn't have this concept, or does the Windows 
debugger no know how to deal with it (or both)?

I'm feeling rather strongly that that LLVM should not be emitting wrong debug 
info to work around bugs in a debugger. I understand that sometimes this isn't 
possible because we don't control the consumers. The correct thing to do here 
is to guard the workaround by a debugger tuning flag. For DWARF, we do want 
line 0 here.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D67723/new/

https://reviews.llvm.org/D67723



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to