aboutsummaryrefslogtreecommitdiff
path: root/lib/AST/DeclPrinter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/AST/DeclPrinter.cpp')
-rw-r--r--lib/AST/DeclPrinter.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/AST/DeclPrinter.cpp b/lib/AST/DeclPrinter.cpp
index 5394924797..609d64cc7e 100644
--- a/lib/AST/DeclPrinter.cpp
+++ b/lib/AST/DeclPrinter.cpp
@@ -214,7 +214,11 @@ void DeclPrinter::VisitDeclContext(DeclContext *DC, bool Indent) {
if (PrintAccess) {
AccessSpecifier AS = D->getAccess();
- if (AS != CurAS) {
+ // This is a hack: when a struct is declared in a member declaration
+ // struct outer { struct inner *ptr; }; then we encounter the struct
+ // decl, but it has no access specifier.
+ // The correct solution is to merge this with the member.
+ if (AS != CurAS && AS != AS_none) {
if (Indent)
this->Indent(Indentation - Policy.Indentation);
Print(AS);