From 87611cdd0c1a8e5648d63e141f471644c6f7dc64 Mon Sep 17 00:00:00 2001 From: Fariborz Jahanian Date: Sat, 26 Jan 2013 20:49:30 +0000 Subject: [PATCH] Attach any tag type's documentation to its typedef if latter does not have one of its own. // rdar://13067629 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173586 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/AST/ASTContext.cpp | 6 +++--- test/Index/annotate-comments-typedef.m | 6 ++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp index 7ba64e32f3..9107307700 100644 --- a/lib/AST/ASTContext.cpp +++ b/lib/AST/ASTContext.cpp @@ -431,9 +431,9 @@ comments::FullComment *ASTContext::getCommentForDecl( // Attach enum's documentation to its typedef if latter // does not have one of its own. QualType QT = TD->getUnderlyingType(); - if (const EnumType *ET = QT->getAs()) - if (const EnumDecl *ED = ET->getDecl()) - if (comments::FullComment *FC = getCommentForDecl(ED, PP)) + if (const TagType *TT = QT->getAs()) + if (const Decl *TD = TT->getDecl()) + if (comments::FullComment *FC = getCommentForDecl(TD, PP)) return cloneFullComment(FC, D); } return NULL; diff --git a/test/Index/annotate-comments-typedef.m b/test/Index/annotate-comments-typedef.m index 6e5fb73520..784c51ec8c 100644 --- a/test/Index/annotate-comments-typedef.m +++ b/test/Index/annotate-comments-typedef.m @@ -28,3 +28,9 @@ enum E { }; typedef enum E E_T; // CHECK: TypedefDecl=E_T:[[@LINE-1]]:16 (Definition) FullCommentAsHTML=[

Documentation for E

] FullCommentAsXML=[Ec:@E@Etypedef enum E E_T Documentation for E ] + +/** Comment about Foo */ +typedef struct { + int iii; + } Foo; +// CHECK: TypedefDecl=Foo:[[@LINE-1]]:11 (Definition) FullCommentAsHTML=[

Comment about Foo

] FullCommentAsXML=[<anonymous>c:@SA@Footypedef struct Foo Foo Comment about Foo ] -- 2.40.0