sammccall added a subscriber: dblaikie.
sammccall added a comment.

Sorry about the problems here, and thanks for letting me know...

In D76801#1989421 <https://reviews.llvm.org/D76801#1989421>, @rnk wrote:

> We updated the compiler and break some VS std::map visualizers:
>  https://crbug.com/1068394
>  I haven't 100% confirmed that this caused the issue, but looking at the code 
> suggests that the names in our codeview output changed, which I would 
> consider to be a regression. This should've been caught by clang's test 
> suite. We already have codeview tests that try to ensure clang prints debug 
> info names following MSVC's exact spacing, but apparently none broke, so this 
> area was under-tested. I wonder if gdb or other DWARF consumers might be 
> affected by this formatting change.


I've got a sinking feeling that I misunderstood the implications of updating 
CodeGenCXX/debug-info-template-explicit-specialization.cpp and the 
Modules/*DebugInfo.cpp tests.
I assumed that these were human-readable names, not things that tools rely on. 
As you say maybe the dwarf changes broke things.
I don't really know much about debug info, @dblaikie do you think the DWARF 
changes in those tests are safe? If not, should I be documenting/mitigating 
this or trying to undo it?

Regarding CodeView it sounds like we do need to undo this change. 
PrintingPolicy has:

  /// Use whitespace and punctuation like MSVC does. In particular, this prints
  /// anonymous namespaces as `anonymous namespace' and does not insert spaces
  /// after template arguments.
  unsigned MSVCFormatting : 1;

and this is set in `CGDebugInfo::getPrintingPolicy()` in CodeView mode.

That seems like the right knob to change this behavior.
I'm not sure I know enough to write the codeview test, but I'll give it a shot 
and send that to you.

> Two issues in the Chrome codebase where tests relied on the output of clang's 
> diagnostics:
>  https://crbug.com/1064986
>  The compiler's diagnostic output isn't stable, so this is expected.

Yeah, obviously this changed a bunch of clang's own diagnostics tests too.
I'm not sure there's much to be done about this - even with perfect knowledge 
of such downstream tests, I don't think shying away from marginal improvements 
in diagnostics would be a great tradeoff.
Sorry about the churn though :-(


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D76801



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

Reply via email to