rsmith added a comment.
> TagSpecifierAs expands sizeof(PrintingPolicy) from 8 to 16 bytes. My concern
> is the comments on PrintingPolicy about how PrintingPolicy is intended to be
> small. My guess it that 16 bytes is still small enough, but perhaps Richard
> Smith, who wrote that comment, knows better.
This seems fine. See r270009 for some background for that comment -- we used to
store a copy of the `LangOptions` in the `PrintingPolicy` (among other things),
and copying these objects (including the potentially-large vectors within the
`LangOptions`) was a double-digit percentage of the compile time of some
compilations. That's a very different ball park from a change from 8 bytes to
16 bytes.
================
Comment at: include/clang-c/Index.h:4116
CXPrintingPolicy_SuppressTagKeyword,
- CXPrintingPolicy_IncludeTagDefinition,
CXPrintingPolicy_SuppressScope,
----------------
This is not OK: this would be an ABI break for the stable libclang ABI.
================
Comment at: lib/AST/DeclPrinter.cpp:180-181
if (isFirst) {
- if(TD)
- SubPolicy.IncludeTagDefinition = true;
+ if (TD)
+ SubPolicy.TagSpecifierAs = TD;
SubPolicy.SuppressSpecifiers = false;
----------------
Instead of the changes in this patch, can you address your use case by just
changing the `if` here to `if (TD && TD->isThisDeclarationADefinition())`?
https://reviews.llvm.org/D45463
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits