diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2013-01-26 20:49:30 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2013-01-26 20:49:30 +0000 |
commit | 6522ad6e77ac2ef4855edf59b3b88e35b518fcd0 (patch) | |
tree | 0e407a7960e00c137fc19cb6db5ffdf0c3ebcbd8 /clang | |
parent | c22ea1ce88572664732044154674f154612f95dd (diff) | |
download | bcm5719-llvm-6522ad6e77ac2ef4855edf59b3b88e35b518fcd0.tar.gz bcm5719-llvm-6522ad6e77ac2ef4855edf59b3b88e35b518fcd0.zip |
Attach any tag type's documentation to its typedef if
latter does not have one of its own. // rdar://13067629
llvm-svn: 173586
Diffstat (limited to 'clang')
-rw-r--r-- | clang/lib/AST/ASTContext.cpp | 6 | ||||
-rw-r--r-- | clang/test/Index/annotate-comments-typedef.m | 6 |
2 files changed, 9 insertions, 3 deletions
diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp index 7ba64e32f35..91073077002 100644 --- a/clang/lib/AST/ASTContext.cpp +++ b/clang/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<EnumType>()) - if (const EnumDecl *ED = ET->getDecl()) - if (comments::FullComment *FC = getCommentForDecl(ED, PP)) + if (const TagType *TT = QT->getAs<TagType>()) + if (const Decl *TD = TT->getDecl()) + if (comments::FullComment *FC = getCommentForDecl(TD, PP)) return cloneFullComment(FC, D); } return NULL; diff --git a/clang/test/Index/annotate-comments-typedef.m b/clang/test/Index/annotate-comments-typedef.m index 6e5fb735209..784c51ec8c3 100644 --- a/clang/test/Index/annotate-comments-typedef.m +++ b/clang/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=[<p class="para-brief"> Documentation for E </p>] FullCommentAsXML=[<Typedef file="{{[^"]+}}annotate-comments-typedef.m" line="[[@LINE-1]]" column="16"><Name>E</Name><USR>c:@E@E</USR><Declaration>typedef enum E E_T</Declaration><Abstract><Para> Documentation for E </Para></Abstract></Typedef>] + +/** Comment about Foo */ +typedef struct { + int iii; + } Foo; +// CHECK: TypedefDecl=Foo:[[@LINE-1]]:11 (Definition) FullCommentAsHTML=[<p class="para-brief"> Comment about Foo </p>] FullCommentAsXML=[<Typedef file="{{[^"]+}}annotate-comments-typedef.m" line="[[@LINE-1]]" column="11"><Name><anonymous></Name><USR>c:@SA@Foo</USR><Declaration>typedef struct Foo Foo</Declaration><Abstract><Para> Comment about Foo </Para></Abstract></Typedef>] |