This is an archive of the discontinued LLVM Phabricator instance.

Fix for bug 41747: AST Printer doesn't print nested name specifier for out of scope record definitions
AcceptedPublic

Authored by dyatkovskiy on May 5 2019, 6:42 AM.

Details

Summary

This fix adds out of scope member classes definitions support for AST Printer.

Diff Detail

Repository
rC Clang

Event Timeline

dyatkovskiy created this revision.May 5 2019, 6:42 AM
jdenny accepted this revision.May 7 2019, 8:13 AM
jdenny added reviewers: rsmith, aaron.ballman.

LGTM except for nits in the tests. I'm not close to C++ support in Clang, so please give other reviewers a few days to comment just in case. I've added a couple who have reviewed my patches in this area in the past.

Thanks for the fix!

clang/test/AST/ast-print-record-decl.c
303

To make this easier to read (especially in editors without highlighting), I suggest putting all FileCheck directives for the definition of each of struct DeclEnclosing and struct DeclEnclosing::DeclMember before that definition.

307

This comment should stay next to DeclGroupInMemberList because they're both about tag decl groups in member lists.

This revision is now accepted and ready to land.May 7 2019, 8:13 AM
aaron.ballman added inline comments.May 7 2019, 9:05 AM
clang/lib/AST/DeclPrinter.cpp
958

Don't use auto here as the type is not explicitly spelled out in the initialization. If possible, const-qualify the pointer type as well.

Patch updates per review remarks