[PATCH] D76801: [AST] Print a<b<c>> without extra spaces in C++11 or later.

David Blaikie via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Apr 27 13:28:27 PDT 2020


dblaikie added a comment.

In D76801#2005264 <https://reviews.llvm.org/D76801#2005264>, @labath wrote:

> In D76801#1997451 <https://reviews.llvm.org/D76801#1997451>, @dblaikie wrote:
>
> > Yeah, points all taken - as for this actual issue... I'm kind of inclined to say "hey, our template names already diverge somewhat - and this divergence is in the realm of acceptable by gdb (without an index) so... *thumbs up*/let's stick with it"
>
>
> Another interesting aspect here is that the DW_AT_name outputs depend on the c++ standard versions used.


Yeah, I find that at least "weird", though not necessarily wrong.

> This means we could get mismatches even with the same compiler if some compile units use `-std=c++98`, and others `-std>=c++11` (hardly a recommended practice but it does work if one knows what he is doing). Compatibility with another compiler is one thing, but maybe self-compatibility is more important (and easier to achieve) ?

Yeah, I don't disagree with that - again, not quite sure I'd say it goes as far as "wrong" (I mean, DWARF doesn't spec this - so wrongness in our own judgment, not any authoritative sense) but yeah, perhaps insufficiently motivated quirkiness.

> One way to  achieve that would be by printing all type names in c++98 mode, which (IIUC) is the same thing as what the windows folks are requesting..

Fair enough - I wouldn't object to that change being made & just having it the same for MSVC and DWARF in this case. (it's a /bit/ less good for C++11 and above users to get names with the extra space, but seems minor enough perhaps not to bother trying to preserve it given the complicaitons)


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D76801





More information about the cfe-commits mailing list