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