[PATCH] D79274: Fix template class debug info for Visual Studio visualizers

Reid Kleckner via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon May 11 14:01:22 PDT 2020


rnk added inline comments.


================
Comment at: clang/test/CodeGenCXX/debug-info-codeview-display-name.cpp:10
+// RUN: %clang_cc1 -fblocks -debug-info-kind=limited -gcodeview -emit-llvm %s \
+// RUN:       -o - -triple=x86_64-pc-win32 -Wno-new-returns-null -fms-compatibility | \
+// RUN:    grep -E 'DISubprogram|DICompositeType' | sed -e 's/.*name: "\([^"]*\)".*/"\1"/' | \
----------------
amccarth wrote:
> rnk wrote:
> > Why choose fms-compatibility? Does it have a side effect of raising the default standard version?
> > Why choose fms-compatibility?
> 
> I thought that `-fms-compatibility` was the solution we had discussed.
> 
> With ms-compat, we retain the space.  Without ms-compat, clang does what clang does (which, currently, is to omit the space).
> 
> > Does it have a side effect of raising the default standard version?
> 
> That was not my intent.  Removing the `-std=c++98` raises the standard.
>From looking at the code, it seems like we omit the space in debug info when codeview is enabled, regardless of -fms-compatibility or any other setting. The flag for emitting the space is conditional on the standard version, so I think what we want here is re-run of the same test with a higher standard version, something beyond C++11.

I guess, responding to your comment below, the idea is that this test uses the default C++ version, whatever it is. I guess my feedback is, let's test all of the following:
1. explicit C++98
2. explicit C++11
3. unpinned std


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

https://reviews.llvm.org/D79274





More information about the cfe-commits mailing list