1*67e74705SXin Li // RUN: rm -rf %t 2*67e74705SXin Li // RUN: mkdir %t 3*67e74705SXin Li 4*67e74705SXin Li // This file contains UTF-8 sequences. Please don't "fix" them! 5*67e74705SXin Li 6*67e74705SXin Li // Check that we serialize comment source locations properly. 7*67e74705SXin Li // RUN: %clang_cc1 -x c++ -std=c++11 -emit-pch -o %t/out.pch %s 8*67e74705SXin Li // RUN: %clang_cc1 -x c++ -std=c++11 -include-pch %t/out.pch -fsyntax-only %s 9*67e74705SXin Li 10*67e74705SXin Li // RUN: c-index-test -write-pch %t/out.pch -x c++ -std=c++11 %s 11*67e74705SXin Li // RUN: c-index-test -test-load-source all -comments-xml-schema=%S/../../bindings/xml/comment-xml-schema.rng %s -std=c++11 > %t/out.c-index-direct 12*67e74705SXin Li // RUN: c-index-test -test-load-tu %t/out.pch all > %t/out.c-index-pch 13*67e74705SXin Li 14*67e74705SXin Li // RUN: FileCheck %s -check-prefix=WRONG < %t/out.c-index-direct 15*67e74705SXin Li // RUN: FileCheck %s -check-prefix=WRONG < %t/out.c-index-pch 16*67e74705SXin Li 17*67e74705SXin Li // Ensure that XML is not invalid 18*67e74705SXin Li // WRONG-NOT: CommentXMLInvalid 19*67e74705SXin Li 20*67e74705SXin Li // RUN: FileCheck %s < %t/out.c-index-direct 21*67e74705SXin Li // RUN: FileCheck %s < %t/out.c-index-pch 22*67e74705SXin Li 23*67e74705SXin Li // XFAIL: msan 24*67e74705SXin Li // XFAIL: valgrind 25*67e74705SXin Li 26*67e74705SXin Li #ifndef HEADER 27*67e74705SXin Li #define HEADER 28*67e74705SXin Li 29*67e74705SXin Li //===--- 30*67e74705SXin Li // Tests for \brief and its aliases. 31*67e74705SXin Li //===--- 32*67e74705SXin Li 33*67e74705SXin Li /// Aaa. 34*67e74705SXin Li void test_cmd_brief_like_1(); 35*67e74705SXin Li 36*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=test_cmd_brief_like_1:{{.*}} BriefComment=[Aaa.] FullCommentAsHTML=[<p class="para-brief"> Aaa.</p>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>test_cmd_brief_like_1</Name><USR>c:@F@test_cmd_brief_like_1#</USR><Declaration>void test_cmd_brief_like_1()</Declaration><Abstract><Para> Aaa.</Para></Abstract></Function>] 37*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 38*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 39*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 40*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Aaa.])))] 41*67e74705SXin Li 42*67e74705SXin Li /// \brief Aaa. 43*67e74705SXin Li void test_cmd_brief_like_2(); 44*67e74705SXin Li 45*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=test_cmd_brief_like_2:{{.*}} BriefComment=[Aaa.] FullCommentAsHTML=[<p class="para-brief"> Aaa.</p>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>test_cmd_brief_like_2</Name><USR>c:@F@test_cmd_brief_like_2#</USR><Declaration>void test_cmd_brief_like_2()</Declaration><Abstract><Para> Aaa.</Para></Abstract></Function>] 46*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 47*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 48*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 49*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 50*67e74705SXin Li // CHECK-NEXT: (CXComment_BlockCommand CommandName=[brief] 51*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 52*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Aaa.]))))] 53*67e74705SXin Li 54*67e74705SXin Li /// \short Aaa. 55*67e74705SXin Li void test_cmd_brief_like_3(); 56*67e74705SXin Li 57*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=test_cmd_brief_like_3:{{.*}} BriefComment=[Aaa.] FullCommentAsHTML=[<p class="para-brief"> Aaa.</p>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>test_cmd_brief_like_3</Name><USR>c:@F@test_cmd_brief_like_3#</USR><Declaration>void test_cmd_brief_like_3()</Declaration><Abstract><Para> Aaa.</Para></Abstract></Function>] 58*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 59*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 60*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 61*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 62*67e74705SXin Li // CHECK-NEXT: (CXComment_BlockCommand CommandName=[short] 63*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 64*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Aaa.]))))] 65*67e74705SXin Li 66*67e74705SXin Li /// Aaa. 67*67e74705SXin Li /// 68*67e74705SXin Li /// \brief Bbb. 69*67e74705SXin Li void test_cmd_brief_like_4(); 70*67e74705SXin Li 71*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=test_cmd_brief_like_4:{{.*}} BriefComment=[Bbb.] FullCommentAsHTML=[<p class="para-brief"> Bbb.</p><p> Aaa.</p>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>test_cmd_brief_like_4</Name><USR>c:@F@test_cmd_brief_like_4#</USR><Declaration>void test_cmd_brief_like_4()</Declaration><Abstract><Para> Bbb.</Para></Abstract><Discussion><Para> Aaa.</Para></Discussion></Function>] 72*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 73*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 74*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 75*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Aaa.])) 76*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 77*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 78*67e74705SXin Li // CHECK-NEXT: (CXComment_BlockCommand CommandName=[brief] 79*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 80*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Bbb.]))))] 81*67e74705SXin Li 82*67e74705SXin Li /// Aaa. 83*67e74705SXin Li /// 84*67e74705SXin Li /// \brief Bbb. 85*67e74705SXin Li /// 86*67e74705SXin Li /// Ccc. 87*67e74705SXin Li void test_cmd_brief_like_5(); 88*67e74705SXin Li 89*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=test_cmd_brief_like_5:{{.*}} BriefComment=[Bbb.] FullCommentAsHTML=[<p class="para-brief"> Bbb.</p><p> Aaa.</p><p> Ccc.</p>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>test_cmd_brief_like_5</Name><USR>c:@F@test_cmd_brief_like_5#</USR><Declaration>void test_cmd_brief_like_5()</Declaration><Abstract><Para> Bbb.</Para></Abstract><Discussion><Para> Aaa.</Para><Para> Ccc.</Para></Discussion></Function>] 90*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 91*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 92*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 93*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Aaa.])) 94*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 95*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 96*67e74705SXin Li // CHECK-NEXT: (CXComment_BlockCommand CommandName=[brief] 97*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 98*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Bbb.]))) 99*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 100*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Ccc.])))] 101*67e74705SXin Li 102*67e74705SXin Li /// \brief Aaa. 103*67e74705SXin Li /// \brief Bbb. 104*67e74705SXin Li void test_cmd_brief_like_6(); 105*67e74705SXin Li 106*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=test_cmd_brief_like_6:{{.*}} BriefComment=[Bbb.] FullCommentAsHTML=[<p class="para-brief"> Aaa. </p><p class="para-brief"> Bbb.</p>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>test_cmd_brief_like_6</Name><USR>c:@F@test_cmd_brief_like_6#</USR><Declaration>void test_cmd_brief_like_6()</Declaration><Abstract><Para> Aaa. </Para></Abstract><Discussion><Para> Bbb.</Para></Discussion></Function>] 107*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 108*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 109*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 110*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 111*67e74705SXin Li // CHECK-NEXT: (CXComment_BlockCommand CommandName=[brief] 112*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 113*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Aaa.] HasTrailingNewline) 114*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace))) 115*67e74705SXin Li // CHECK-NEXT: (CXComment_BlockCommand CommandName=[brief] 116*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 117*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Bbb.]))))] 118*67e74705SXin Li 119*67e74705SXin Li /// \abstract Aaa. 120*67e74705SXin Li /// 121*67e74705SXin Li /// Bbb. 122*67e74705SXin Li void test_cmd_brief_like_7(); 123*67e74705SXin Li 124*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=test_cmd_brief_like_7:{{.*}} BriefComment=[Aaa.] FullCommentAsHTML=[<p class="para-brief"> Aaa.</p><p> Bbb.</p>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>test_cmd_brief_like_7</Name><USR>c:@F@test_cmd_brief_like_7#</USR><Declaration>void test_cmd_brief_like_7()</Declaration><Abstract><Para> Aaa.</Para></Abstract><Discussion><Para> Bbb.</Para></Discussion></Function>] 125*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 126*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 127*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 128*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 129*67e74705SXin Li // CHECK-NEXT: (CXComment_BlockCommand CommandName=[abstract] 130*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 131*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Aaa.]))) 132*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 133*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Bbb.])))] 134*67e74705SXin Li 135*67e74705SXin Li //===--- 136*67e74705SXin Li // Tests for \returns and its aliases. 137*67e74705SXin Li //===--- 138*67e74705SXin Li 139*67e74705SXin Li /// Aaa. 140*67e74705SXin Li /// 141*67e74705SXin Li /// \return Bbb. 142*67e74705SXin Li void test_cmd_returns_like_1(); 143*67e74705SXin Li 144*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=test_cmd_returns_like_1:{{.*}} FullCommentAsHTML=[<p class="para-brief"> Aaa.</p><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> Bbb.</p></div>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>test_cmd_returns_like_1</Name><USR>c:@F@test_cmd_returns_like_1#</USR><Declaration>void test_cmd_returns_like_1()</Declaration><Abstract><Para> Aaa.</Para></Abstract><ResultDiscussion><Para> Bbb.</Para></ResultDiscussion></Function>] 145*67e74705SXin Li 146*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 147*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 148*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 149*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Aaa.])) 150*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 151*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 152*67e74705SXin Li // CHECK-NEXT: (CXComment_BlockCommand CommandName=[return] 153*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 154*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Bbb.]))))] 155*67e74705SXin Li 156*67e74705SXin Li /// Aaa. 157*67e74705SXin Li /// 158*67e74705SXin Li /// \returns Bbb. 159*67e74705SXin Li void test_cmd_returns_like_2(); 160*67e74705SXin Li 161*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=test_cmd_returns_like_2:{{.*}} FullCommentAsHTML=[<p class="para-brief"> Aaa.</p><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> Bbb.</p></div>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>test_cmd_returns_like_2</Name><USR>c:@F@test_cmd_returns_like_2#</USR><Declaration>void test_cmd_returns_like_2()</Declaration><Abstract><Para> Aaa.</Para></Abstract><ResultDiscussion><Para> Bbb.</Para></ResultDiscussion></Function>] 162*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 163*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 164*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 165*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Aaa.])) 166*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 167*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 168*67e74705SXin Li // CHECK-NEXT: (CXComment_BlockCommand CommandName=[returns] 169*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 170*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Bbb.]))))] 171*67e74705SXin Li 172*67e74705SXin Li /// Aaa. 173*67e74705SXin Li /// 174*67e74705SXin Li /// \result Bbb. 175*67e74705SXin Li void test_cmd_returns_like_3(); 176*67e74705SXin Li 177*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=test_cmd_returns_like_3:{{.*}} FullCommentAsHTML=[<p class="para-brief"> Aaa.</p><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> Bbb.</p></div>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>test_cmd_returns_like_3</Name><USR>c:@F@test_cmd_returns_like_3#</USR><Declaration>void test_cmd_returns_like_3()</Declaration><Abstract><Para> Aaa.</Para></Abstract><ResultDiscussion><Para> Bbb.</Para></ResultDiscussion></Function>] 178*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 179*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 180*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 181*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Aaa.])) 182*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 183*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 184*67e74705SXin Li // CHECK-NEXT: (CXComment_BlockCommand CommandName=[result] 185*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 186*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Bbb.]))))] 187*67e74705SXin Li 188*67e74705SXin Li /// \returns Aaa. 189*67e74705SXin Li /// \returns Bbb. 190*67e74705SXin Li void test_cmd_returns_like_4(); 191*67e74705SXin Li 192*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=test_cmd_returns_like_4:{{.*}} FullCommentAsHTML=[<div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> Aaa. </p><p class="para-returns"><span class="word-returns">Returns</span> Bbb.</p></div>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>test_cmd_returns_like_4</Name><USR>c:@F@test_cmd_returns_like_4#</USR><Declaration>void test_cmd_returns_like_4()</Declaration><ResultDiscussion><Para> Aaa. </Para><Para> Bbb.</Para></ResultDiscussion></Function>] 193*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 194*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 195*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 196*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 197*67e74705SXin Li // CHECK-NEXT: (CXComment_BlockCommand CommandName=[returns] 198*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 199*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Aaa.] HasTrailingNewline) 200*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace))) 201*67e74705SXin Li // CHECK-NEXT: (CXComment_BlockCommand CommandName=[returns] 202*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 203*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Bbb.]))))] 204*67e74705SXin Li 205*67e74705SXin Li /// Aaa. 206*67e74705SXin Li /// 207*67e74705SXin Li /// Bbb. 208*67e74705SXin Li /// 209*67e74705SXin Li /// \returns Ccc. 210*67e74705SXin Li void test_cmd_returns_like_5(); 211*67e74705SXin Li 212*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=test_cmd_returns_like_5:{{.*}} FullCommentAsHTML=[<p class="para-brief"> Aaa.</p><p> Bbb.</p><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> Ccc.</p></div>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>test_cmd_returns_like_5</Name><USR>c:@F@test_cmd_returns_like_5#</USR><Declaration>void test_cmd_returns_like_5()</Declaration><Abstract><Para> Aaa.</Para></Abstract><ResultDiscussion><Para> Ccc.</Para></ResultDiscussion><Discussion><Para> Bbb.</Para></Discussion></Function>] 213*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 214*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 215*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 216*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Aaa.])) 217*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 218*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Bbb.])) 219*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 220*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 221*67e74705SXin Li // CHECK-NEXT: (CXComment_BlockCommand CommandName=[returns] 222*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 223*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Ccc.]))))] 224*67e74705SXin Li 225*67e74705SXin Li //===--- 226*67e74705SXin Li // Tests for \param. 227*67e74705SXin Li //===--- 228*67e74705SXin Li 229*67e74705SXin Li /// \param 230*67e74705SXin Li void test_cmd_param_1(int x1); 231*67e74705SXin Li 232*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=test_cmd_param_1:{{.*}} FullCommentAsHTML=[] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>test_cmd_param_1</Name><USR>c:@F@test_cmd_param_1#I#</USR><Declaration>void test_cmd_param_1(int x1)</Declaration></Function>] 233*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 234*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 235*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 236*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 237*67e74705SXin Li // CHECK-NEXT: (CXComment_ParamCommand in implicitly ParamName=[] ParamIndex=Invalid 238*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace)))] 239*67e74705SXin Li 240*67e74705SXin Li /// \param x1 Aaa. 241*67e74705SXin Li void test_cmd_param_2(int x1); 242*67e74705SXin Li 243*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=test_cmd_param_2:{{.*}} FullCommentAsHTML=[<dl><dt class="param-name-index-0">x1</dt><dd class="param-descr-index-0"> Aaa.</dd></dl>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>test_cmd_param_2</Name><USR>c:@F@test_cmd_param_2#I#</USR><Declaration>void test_cmd_param_2(int x1)</Declaration><Parameters><Parameter><Name>x1</Name><Index>0</Index><Direction isExplicit="0">in</Direction><Discussion><Para> Aaa.</Para></Discussion></Parameter></Parameters></Function>] 244*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 245*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 246*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 247*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 248*67e74705SXin Li // CHECK-NEXT: (CXComment_ParamCommand in implicitly ParamName=[x1] ParamIndex=0 249*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 250*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Aaa.]))))] 251*67e74705SXin Li 252*67e74705SXin Li /// \param zzz Aaa. 253*67e74705SXin Li void test_cmd_param_3(int x1); 254*67e74705SXin Li 255*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=test_cmd_param_3:{{.*}} FullCommentAsHTML=[<dl><dt class="param-name-index-invalid">zzz</dt><dd class="param-descr-index-invalid"> Aaa.</dd></dl>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>test_cmd_param_3</Name><USR>c:@F@test_cmd_param_3#I#</USR><Declaration>void test_cmd_param_3(int x1)</Declaration><Parameters><Parameter><Name>zzz</Name><Direction isExplicit="0">in</Direction><Discussion><Para> Aaa.</Para></Discussion></Parameter></Parameters></Function>] 256*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 257*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 258*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 259*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 260*67e74705SXin Li // CHECK-NEXT: (CXComment_ParamCommand in implicitly ParamName=[zzz] ParamIndex=Invalid 261*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 262*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Aaa.]))))] 263*67e74705SXin Li 264*67e74705SXin Li /// \param x2 Bbb. 265*67e74705SXin Li /// \param x1 Aaa. 266*67e74705SXin Li void test_cmd_param_4(int x1, int x2); 267*67e74705SXin Li 268*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=test_cmd_param_4:{{.*}} FullCommentAsHTML=[<dl><dt class="param-name-index-0">x1</dt><dd class="param-descr-index-0"> Aaa.</dd><dt class="param-name-index-1">x2</dt><dd class="param-descr-index-1"> Bbb. </dd></dl>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>test_cmd_param_4</Name><USR>c:@F@test_cmd_param_4#I#I#</USR><Declaration>void test_cmd_param_4(int x1, int x2)</Declaration><Parameters><Parameter><Name>x1</Name><Index>0</Index><Direction isExplicit="0">in</Direction><Discussion><Para> Aaa.</Para></Discussion></Parameter><Parameter><Name>x2</Name><Index>1</Index><Direction isExplicit="0">in</Direction><Discussion><Para> Bbb. </Para></Discussion></Parameter></Parameters></Function>] 269*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 270*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 271*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 272*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 273*67e74705SXin Li // CHECK-NEXT: (CXComment_ParamCommand in implicitly ParamName=[x2] ParamIndex=1 274*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 275*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Bbb.] HasTrailingNewline) 276*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace))) 277*67e74705SXin Li // CHECK-NEXT: (CXComment_ParamCommand in implicitly ParamName=[x1] ParamIndex=0 278*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 279*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Aaa.]))))] 280*67e74705SXin Li 281*67e74705SXin Li /// \param x2 Bbb. 282*67e74705SXin Li /// \param zzz Aaa. 283*67e74705SXin Li /// \param x1 Aaa. 284*67e74705SXin Li void test_cmd_param_5(int x1, int x2); 285*67e74705SXin Li 286*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=test_cmd_param_5:{{.*}} FullCommentAsHTML=[<dl><dt class="param-name-index-0">x1</dt><dd class="param-descr-index-0"> Aaa.</dd><dt class="param-name-index-1">x2</dt><dd class="param-descr-index-1"> Bbb. </dd><dt class="param-name-index-invalid">zzz</dt><dd class="param-descr-index-invalid"> Aaa. </dd></dl>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>test_cmd_param_5</Name><USR>c:@F@test_cmd_param_5#I#I#</USR><Declaration>void test_cmd_param_5(int x1, int x2)</Declaration><Parameters><Parameter><Name>x1</Name><Index>0</Index><Direction isExplicit="0">in</Direction><Discussion><Para> Aaa.</Para></Discussion></Parameter><Parameter><Name>x2</Name><Index>1</Index><Direction isExplicit="0">in</Direction><Discussion><Para> Bbb. </Para></Discussion></Parameter><Parameter><Name>zzz</Name><Direction isExplicit="0">in</Direction><Discussion><Para> Aaa. </Para></Discussion></Parameter></Parameters></Function>] 287*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 288*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 289*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 290*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 291*67e74705SXin Li // CHECK-NEXT: (CXComment_ParamCommand in implicitly ParamName=[x2] ParamIndex=1 292*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 293*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Bbb.] HasTrailingNewline) 294*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace))) 295*67e74705SXin Li // CHECK-NEXT: (CXComment_ParamCommand in implicitly ParamName=[zzz] ParamIndex=Invalid 296*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 297*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Aaa.] HasTrailingNewline) 298*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace))) 299*67e74705SXin Li // CHECK-NEXT: (CXComment_ParamCommand in implicitly ParamName=[x1] ParamIndex=0 300*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 301*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Aaa.]))))] 302*67e74705SXin Li 303*67e74705SXin Li /// \param x1 Aaa. 304*67e74705SXin Li /// \param ... Bbb. 305*67e74705SXin Li void test_cmd_param_6(int x1, ...); 306*67e74705SXin Li 307*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=test_cmd_param_6:{{.*}} FullCommentAsHTML=[<dl><dt class="param-name-index-0">x1</dt><dd class="param-descr-index-0"> Aaa. </dd><dt class="param-name-index-vararg">...</dt><dd class="param-descr-index-vararg"> Bbb.</dd></dl>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>test_cmd_param_6</Name><USR>c:@F@test_cmd_param_6#I.#</USR><Declaration>void test_cmd_param_6(int x1, ...)</Declaration><Parameters><Parameter><Name>x1</Name><Index>0</Index><Direction isExplicit="0">in</Direction><Discussion><Para> Aaa. </Para></Discussion></Parameter><Parameter><Name>...</Name><IsVarArg /><Direction isExplicit="0">in</Direction><Discussion><Para> Bbb.</Para></Discussion></Parameter></Parameters></Function>] 308*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 309*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 310*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 311*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 312*67e74705SXin Li // CHECK-NEXT: (CXComment_ParamCommand in implicitly ParamName=[x1] ParamIndex=0 313*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 314*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Aaa.] HasTrailingNewline) 315*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace))) 316*67e74705SXin Li // CHECK-NEXT: (CXComment_ParamCommand in implicitly ParamName=[...] ParamIndex=4294967295 317*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 318*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Bbb.]))))] 319*67e74705SXin Li 320*67e74705SXin Li //===--- 321*67e74705SXin Li // Tests for \tparam. 322*67e74705SXin Li //===--- 323*67e74705SXin Li 324*67e74705SXin Li /// \tparam 325*67e74705SXin Li /// \param aaa Blah blah 326*67e74705SXin Li template<typename T> 327*67e74705SXin Li void test_cmd_tparam_1(T aaa); 328*67e74705SXin Li 329*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionTemplate=test_cmd_tparam_1:{{.*}} FullCommentAsHTML=[<dl><dt class="param-name-index-0">aaa</dt><dd class="param-descr-index-0"> Blah blah</dd></dl>] FullCommentAsXML=[<Function templateKind="template" file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>test_cmd_tparam_1</Name><USR>c:@FT@>1#Ttest_cmd_tparam_1#t0.0#v#</USR><Declaration>template <typename T> void test_cmd_tparam_1(T aaa)</Declaration><Parameters><Parameter><Name>aaa</Name><Index>0</Index><Direction isExplicit="0">in</Direction><Discussion><Para> Blah blah</Para></Discussion></Parameter></Parameters></Function>] 330*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 331*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 332*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 333*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 334*67e74705SXin Li // CHECK-NEXT: (CXComment_TParamCommand ParamName=[] ParamPosition=Invalid 335*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 336*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace))) 337*67e74705SXin Li // CHECK-NEXT: (CXComment_ParamCommand in implicitly ParamName=[aaa] ParamIndex=0 338*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 339*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Blah blah]))))] 340*67e74705SXin Li 341*67e74705SXin Li /// \tparam T 342*67e74705SXin Li /// \param aaa Blah blah 343*67e74705SXin Li template<typename T> 344*67e74705SXin Li void test_cmd_tparam_2(T aaa); 345*67e74705SXin Li 346*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionTemplate=test_cmd_tparam_2:{{.*}} FullCommentAsHTML=[<dl><dt class="param-name-index-0">aaa</dt><dd class="param-descr-index-0"> Blah blah</dd></dl>] FullCommentAsXML=[<Function templateKind="template" file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>test_cmd_tparam_2</Name><USR>c:@FT@>1#Ttest_cmd_tparam_2#t0.0#v#</USR><Declaration>template <typename T> void test_cmd_tparam_2(T aaa)</Declaration><Parameters><Parameter><Name>aaa</Name><Index>0</Index><Direction isExplicit="0">in</Direction><Discussion><Para> Blah blah</Para></Discussion></Parameter></Parameters></Function>] 347*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 348*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 349*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 350*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 351*67e74705SXin Li // CHECK-NEXT: (CXComment_TParamCommand ParamName=[T] ParamPosition={0} 352*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 353*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace))) 354*67e74705SXin Li // CHECK-NEXT: (CXComment_ParamCommand in implicitly ParamName=[aaa] ParamIndex=0 355*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 356*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Blah blah]))))] 357*67e74705SXin Li 358*67e74705SXin Li /// \tparam T2 Bbb 359*67e74705SXin Li /// \tparam T1 Aaa 360*67e74705SXin Li template<typename T1, typename T2> 361*67e74705SXin Li void test_cmd_tparam_3(T1 aaa, T2 bbb); 362*67e74705SXin Li 363*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionTemplate=test_cmd_tparam_3:{{.*}} FullCommentAsHTML=[<dl><dt class="tparam-name-index-0">T1</dt><dd class="tparam-descr-index-0"> Aaa</dd><dt class="tparam-name-index-1">T2</dt><dd class="tparam-descr-index-1"> Bbb </dd></dl>] FullCommentAsXML=[<Function templateKind="template" file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>test_cmd_tparam_3</Name><USR>c:@FT@>2#T#Ttest_cmd_tparam_3#t0.0#t0.1#v#</USR><Declaration>template <typename T1, typename T2> void test_cmd_tparam_3(T1 aaa, T2 bbb)</Declaration><TemplateParameters><Parameter><Name>T1</Name><Index>0</Index><Discussion><Para> Aaa</Para></Discussion></Parameter><Parameter><Name>T2</Name><Index>1</Index><Discussion><Para> Bbb </Para></Discussion></Parameter></TemplateParameters></Function>] 364*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 365*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 366*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 367*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 368*67e74705SXin Li // CHECK-NEXT: (CXComment_TParamCommand ParamName=[T2] ParamPosition={1} 369*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 370*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Bbb] HasTrailingNewline) 371*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace))) 372*67e74705SXin Li // CHECK-NEXT: (CXComment_TParamCommand ParamName=[T1] ParamPosition={0} 373*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 374*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Aaa]))))] 375*67e74705SXin Li 376*67e74705SXin Li /// \tparam T2 Bbb 377*67e74705SXin Li /// \tparam U Zzz 378*67e74705SXin Li /// \tparam V Ccc 379*67e74705SXin Li /// \tparam T1 Aaa 380*67e74705SXin Li template<typename T1, typename T2, int V> 381*67e74705SXin Li void test_cmd_tparam_4(T1 aaa, T2 bbb); 382*67e74705SXin Li 383*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionTemplate=test_cmd_tparam_4:{{.*}} FullCommentAsHTML=[<dl><dt class="tparam-name-index-0">T1</dt><dd class="tparam-descr-index-0"> Aaa</dd><dt class="tparam-name-index-1">T2</dt><dd class="tparam-descr-index-1"> Bbb </dd><dt class="tparam-name-index-2">V</dt><dd class="tparam-descr-index-2"> Ccc </dd><dt class="tparam-name-index-invalid">U</dt><dd class="tparam-descr-index-invalid"> Zzz </dd></dl>] FullCommentAsXML=[<Function templateKind="template" file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>test_cmd_tparam_4</Name><USR>c:@FT@>3#T#T#NItest_cmd_tparam_4#t0.0#t0.1#v#</USR><Declaration>template <typename T1, typename T2, int V>\nvoid test_cmd_tparam_4(T1 aaa, T2 bbb)</Declaration><TemplateParameters><Parameter><Name>T1</Name><Index>0</Index><Discussion><Para> Aaa</Para></Discussion></Parameter><Parameter><Name>T2</Name><Index>1</Index><Discussion><Para> Bbb </Para></Discussion></Parameter><Parameter><Name>V</Name><Index>2</Index><Discussion><Para> Ccc </Para></Discussion></Parameter><Parameter><Name>U</Name><Discussion><Para> Zzz </Para></Discussion></Parameter></TemplateParameters></Function>] 384*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 385*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 386*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 387*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 388*67e74705SXin Li // CHECK-NEXT: (CXComment_TParamCommand ParamName=[T2] ParamPosition={1} 389*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 390*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Bbb] HasTrailingNewline) 391*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace))) 392*67e74705SXin Li // CHECK-NEXT: (CXComment_TParamCommand ParamName=[U] ParamPosition=Invalid 393*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 394*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Zzz] HasTrailingNewline) 395*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace))) 396*67e74705SXin Li // CHECK-NEXT: (CXComment_TParamCommand ParamName=[V] ParamPosition={2} 397*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 398*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Ccc] HasTrailingNewline) 399*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace))) 400*67e74705SXin Li // CHECK-NEXT: (CXComment_TParamCommand ParamName=[T1] ParamPosition={0} 401*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 402*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Aaa]))))] 403*67e74705SXin Li 404*67e74705SXin Li /// \tparam TTT Ddd 405*67e74705SXin Li /// \tparam C Ccc 406*67e74705SXin Li /// \tparam T Aaa 407*67e74705SXin Li /// \tparam TT Bbb 408*67e74705SXin Li template<template<template<typename T> class TT, class C> class TTT> 409*67e74705SXin Li void test_cmd_tparam_5(); 410*67e74705SXin Li 411*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionTemplate=test_cmd_tparam_5:{{.*}} FullCommentAsHTML=[<dl><dt class="tparam-name-index-0">TTT</dt><dd class="tparam-descr-index-0"> Ddd </dd><dt class="tparam-name-index-other">C</dt><dd class="tparam-descr-index-other"> Ccc </dd><dt class="tparam-name-index-other">T</dt><dd class="tparam-descr-index-other"> Aaa </dd><dt class="tparam-name-index-other">TT</dt><dd class="tparam-descr-index-other"> Bbb</dd></dl>] FullCommentAsXML=[<Function templateKind="template" file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>test_cmd_tparam_5</Name><USR>c:@FT@>1#t>2#t>1#T#Ttest_cmd_tparam_5#v#</USR><Declaration>template <template <template <typename T> class TT, class C> class TTT>\nvoid test_cmd_tparam_5()</Declaration><TemplateParameters><Parameter><Name>TTT</Name><Index>0</Index><Discussion><Para> Ddd </Para></Discussion></Parameter><Parameter><Name>C</Name><Discussion><Para> Ccc </Para></Discussion></Parameter><Parameter><Name>T</Name><Discussion><Para> Aaa </Para></Discussion></Parameter><Parameter><Name>TT</Name><Discussion><Para> Bbb</Para></Discussion></Parameter></TemplateParameters></Function>] 412*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 413*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 414*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 415*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 416*67e74705SXin Li // CHECK-NEXT: (CXComment_TParamCommand ParamName=[TTT] ParamPosition={0} 417*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 418*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Ddd] HasTrailingNewline) 419*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace))) 420*67e74705SXin Li // CHECK-NEXT: (CXComment_TParamCommand ParamName=[C] ParamPosition={0, 1} 421*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 422*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Ccc] HasTrailingNewline) 423*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace))) 424*67e74705SXin Li // CHECK-NEXT: (CXComment_TParamCommand ParamName=[T] ParamPosition={0, 0, 0} 425*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 426*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Aaa] HasTrailingNewline) 427*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace))) 428*67e74705SXin Li // CHECK-NEXT: (CXComment_TParamCommand ParamName=[TT] ParamPosition={0, 0} 429*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 430*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Bbb]))))] 431*67e74705SXin Li 432*67e74705SXin Li //===--- 433*67e74705SXin Li // Tests for interaction between commands. 434*67e74705SXin Li //===--- 435*67e74705SXin Li 436*67e74705SXin Li /// \brief Aaa. 437*67e74705SXin Li /// 438*67e74705SXin Li /// Bbb. 439*67e74705SXin Li /// 440*67e74705SXin Li /// \param x2 Ddd. 441*67e74705SXin Li /// \param x1 Ccc. 442*67e74705SXin Li /// \returns Eee. 443*67e74705SXin Li void test_full_comment_1(int x1, int x2); 444*67e74705SXin Li 445*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=test_full_comment_1:{{.*}} FullCommentAsHTML=[<p class="para-brief"> Aaa.</p><p> Bbb.</p><dl><dt class="param-name-index-0">x1</dt><dd class="param-descr-index-0"> Ccc. </dd><dt class="param-name-index-1">x2</dt><dd class="param-descr-index-1"> Ddd. </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> Eee.</p></div>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>test_full_comment_1</Name><USR>c:@F@test_full_comment_1#I#I#</USR><Declaration>void test_full_comment_1(int x1, int x2)</Declaration><Abstract><Para> Aaa.</Para></Abstract><Parameters><Parameter><Name>x1</Name><Index>0</Index><Direction isExplicit="0">in</Direction><Discussion><Para> Ccc. </Para></Discussion></Parameter><Parameter><Name>x2</Name><Index>1</Index><Direction isExplicit="0">in</Direction><Discussion><Para> Ddd. </Para></Discussion></Parameter></Parameters><ResultDiscussion><Para> Eee.</Para></ResultDiscussion><Discussion><Para> Bbb.</Para></Discussion></Function>] 446*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 447*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 448*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 449*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 450*67e74705SXin Li // CHECK-NEXT: (CXComment_BlockCommand CommandName=[brief] 451*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 452*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Aaa.]))) 453*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 454*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Bbb.])) 455*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 456*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 457*67e74705SXin Li // CHECK-NEXT: (CXComment_ParamCommand in implicitly ParamName=[x2] ParamIndex=1 458*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 459*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Ddd.] HasTrailingNewline) 460*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace))) 461*67e74705SXin Li // CHECK-NEXT: (CXComment_ParamCommand in implicitly ParamName=[x1] ParamIndex=0 462*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 463*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Ccc.] HasTrailingNewline) 464*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace))) 465*67e74705SXin Li // CHECK-NEXT: (CXComment_BlockCommand CommandName=[returns] 466*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 467*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Eee.]))))] 468*67e74705SXin Li 469*67e74705SXin Li //===--- 470*67e74705SXin Li // Misc tests. 471*67e74705SXin Li //===--- 472*67e74705SXin Li 473*67e74705SXin Li /// <br><a href="http://example.com/">Aaa</a> 474*67e74705SXin Li void comment_to_html_conversion_24(); 475*67e74705SXin Li 476*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=comment_to_html_conversion_24:{{.*}} FullCommentAsHTML=[<p class="para-brief"> <br><a href="http://example.com/">Aaa</a></p>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>comment_to_html_conversion_24</Name><USR>c:@F@comment_to_html_conversion_24#</USR><Declaration>void comment_to_html_conversion_24()</Declaration><Abstract><Para> <rawHTML><![CDATA[<br>]]></rawHTML><rawHTML><![CDATA[<a href="http://example.com/">]]></rawHTML>Aaa<rawHTML></a></rawHTML></Para></Abstract></Function>] 477*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 478*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 479*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 480*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 481*67e74705SXin Li // CHECK-NEXT: (CXComment_HTMLStartTag Name=[br]) 482*67e74705SXin Li // CHECK-NEXT: (CXComment_HTMLStartTag Name=[a] Attrs: href=http://example.com/) 483*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[Aaa]) 484*67e74705SXin Li // CHECK-NEXT: (CXComment_HTMLEndTag Name=[a])))] 485*67e74705SXin Li 486*67e74705SXin Li /// \verbatim 487*67e74705SXin Li /// <a href="http://example.com/">Aaa</a> 488*67e74705SXin Li /// <a href='http://example.com/'>Aaa</a> 489*67e74705SXin Li /// \endverbatim 490*67e74705SXin Li void comment_to_html_conversion_25(); 491*67e74705SXin Li 492*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=comment_to_html_conversion_25:{{.*}} FullCommentAsHTML=[<pre> <a href="http://example.com/">Aaa</a>\n <a href='http://example.com/'>Aaa</a></pre>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>comment_to_html_conversion_25</Name><USR>c:@F@comment_to_html_conversion_25#</USR><Declaration>void comment_to_html_conversion_25()</Declaration><Discussion><Verbatim xml:space="preserve" kind="verbatim"> <a href="http://example.com/">Aaa</a>\n <a href='http://example.com/'>Aaa</a></Verbatim></Discussion></Function>] 493*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 494*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 495*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 496*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 497*67e74705SXin Li // CHECK-NEXT: (CXComment_VerbatimBlockCommand CommandName=[verbatim] 498*67e74705SXin Li // CHECK-NEXT: (CXComment_VerbatimBlockLine Text=[ <a href="http://example.com/">Aaa</a>]) 499*67e74705SXin Li // CHECK-NEXT: (CXComment_VerbatimBlockLine Text=[ <a href='http://example.com/'>Aaa</a>])))] 500*67e74705SXin Li 501*67e74705SXin Li /// \def foo_def 502*67e74705SXin Li /// \fn foo_fn 503*67e74705SXin Li /// \namespace foo_namespace 504*67e74705SXin Li /// \overload foo_overload 505*67e74705SXin Li /// \property foo_property 506*67e74705SXin Li /// \typedef foo_typedef 507*67e74705SXin Li /// \var foo_var 508*67e74705SXin Li /// \function foo_function 509*67e74705SXin Li /// \class foo_class 510*67e74705SXin Li /// \method foo_method 511*67e74705SXin Li /// \interface foo_interface 512*67e74705SXin Li /// Blah blah. 513*67e74705SXin Li void comment_to_html_conversion_26(); 514*67e74705SXin Li 515*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=comment_to_html_conversion_26:{{.*}} FullCommentAsHTML=[<p class="para-brief"> Blah blah.</p>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>comment_to_html_conversion_26</Name><USR>c:@F@comment_to_html_conversion_26#</USR><Declaration>void comment_to_html_conversion_26()</Declaration><Abstract><Para> Blah blah.</Para></Abstract></Function>] 516*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 517*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 518*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 519*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 520*67e74705SXin Li // CHECK-NEXT: (CXComment_VerbatimLine Text=[ foo_def]) 521*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 522*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 523*67e74705SXin Li // CHECK-NEXT: (CXComment_VerbatimLine Text=[ foo_fn]) 524*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 525*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 526*67e74705SXin Li // CHECK-NEXT: (CXComment_VerbatimLine Text=[ foo_namespace]) 527*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 528*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 529*67e74705SXin Li // CHECK-NEXT: (CXComment_VerbatimLine Text=[ foo_overload]) 530*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 531*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 532*67e74705SXin Li // CHECK-NEXT: (CXComment_VerbatimLine Text=[ foo_property]) 533*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 534*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 535*67e74705SXin Li // CHECK-NEXT: (CXComment_VerbatimLine Text=[ foo_typedef]) 536*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 537*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 538*67e74705SXin Li // CHECK-NEXT: (CXComment_VerbatimLine Text=[ foo_var]) 539*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 540*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 541*67e74705SXin Li // CHECK-NEXT: (CXComment_VerbatimLine Text=[ foo_function]) 542*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 543*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 544*67e74705SXin Li // CHECK-NEXT: (CXComment_VerbatimLine Text=[ foo_class]) 545*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 546*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 547*67e74705SXin Li // CHECK-NEXT: (CXComment_VerbatimLine Text=[ foo_method]) 548*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph IsWhitespace 549*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 550*67e74705SXin Li // CHECK-NEXT: (CXComment_VerbatimLine Text=[ foo_interface]) 551*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 552*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Blah blah.])))] 553*67e74705SXin Li 554*67e74705SXin Li /// \unknown 555*67e74705SXin Li void comment_to_html_conversion_27(); 556*67e74705SXin Li 557*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=comment_to_html_conversion_27:{{.*}} FullCommentAsHTML=[<p class="para-brief"> </p>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>comment_to_html_conversion_27</Name><USR>c:@F@comment_to_html_conversion_27#</USR><Declaration>void comment_to_html_conversion_27()</Declaration><Abstract><Para> </Para></Abstract></Function>] 558*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 559*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 560*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 561*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 562*67e74705SXin Li // CHECK-NEXT: (CXComment_InlineCommand CommandName=[unknown] RenderNormal)))] 563*67e74705SXin Li 564*67e74705SXin Li /// \b Aaa 565*67e74705SXin Li void comment_to_html_conversion_28(); 566*67e74705SXin Li 567*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=comment_to_html_conversion_28:{{.*}} FullCommentAsHTML=[<p class="para-brief"> <b>Aaa</b></p>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>comment_to_html_conversion_28</Name><USR>c:@F@comment_to_html_conversion_28#</USR><Declaration>void comment_to_html_conversion_28()</Declaration><Abstract><Para> <bold>Aaa</bold></Para></Abstract></Function>] 568*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 569*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 570*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 571*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 572*67e74705SXin Li // CHECK-NEXT: (CXComment_InlineCommand CommandName=[b] RenderBold Arg[0]=Aaa)))] 573*67e74705SXin Li 574*67e74705SXin Li /// \c Aaa \p Bbb 575*67e74705SXin Li void comment_to_html_conversion_29(); 576*67e74705SXin Li 577*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=comment_to_html_conversion_29:{{.*}} FullCommentAsHTML=[<p class="para-brief"> <tt>Aaa</tt> <tt>Bbb</tt></p>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>comment_to_html_conversion_29</Name><USR>c:@F@comment_to_html_conversion_29#</USR><Declaration>void comment_to_html_conversion_29()</Declaration><Abstract><Para> <monospaced>Aaa</monospaced> <monospaced>Bbb</monospaced></Para></Abstract></Function>] 578*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 579*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 580*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 581*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 582*67e74705SXin Li // CHECK-NEXT: (CXComment_InlineCommand CommandName=[c] RenderMonospaced Arg[0]=Aaa) 583*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 584*67e74705SXin Li // CHECK-NEXT: (CXComment_InlineCommand CommandName=[p] RenderMonospaced Arg[0]=Bbb)))] 585*67e74705SXin Li 586*67e74705SXin Li /// \a Aaa \e Bbb \em Ccc 587*67e74705SXin Li void comment_to_html_conversion_30(); 588*67e74705SXin Li 589*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=comment_to_html_conversion_30:{{.*}} FullCommentAsHTML=[<p class="para-brief"> <em>Aaa</em> <em>Bbb</em> <em>Ccc</em></p>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>comment_to_html_conversion_30</Name><USR>c:@F@comment_to_html_conversion_30#</USR><Declaration>void comment_to_html_conversion_30()</Declaration><Abstract><Para> <emphasized>Aaa</emphasized> <emphasized>Bbb</emphasized> <emphasized>Ccc</emphasized></Para></Abstract></Function>] 590*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 591*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 592*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 593*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 594*67e74705SXin Li // CHECK-NEXT: (CXComment_InlineCommand CommandName=[a] RenderEmphasized Arg[0]=Aaa) 595*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 596*67e74705SXin Li // CHECK-NEXT: (CXComment_InlineCommand CommandName=[e] RenderEmphasized Arg[0]=Bbb) 597*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 598*67e74705SXin Li // CHECK-NEXT: (CXComment_InlineCommand CommandName=[em] RenderEmphasized Arg[0]=Ccc)))] 599*67e74705SXin Li 600*67e74705SXin Li /// \a 1<2 \e 3<4 \em 5<6 \param 7<8 aaa \tparam 9<10 bbb 601*67e74705SXin Li void comment_to_html_conversion_31(); 602*67e74705SXin Li 603*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=comment_to_html_conversion_31:{{.*}} FullCommentAsHTML=[<p class="para-brief"> <em>1<2</em> <em>3<4</em> <em>5<6</em> </p><dl><dt class="tparam-name-index-invalid">9<10</dt><dd class="tparam-descr-index-invalid"> bbb</dd></dl><dl><dt class="param-name-index-invalid">7<8</dt><dd class="param-descr-index-invalid"> aaa </dd></dl>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>comment_to_html_conversion_31</Name><USR>c:@F@comment_to_html_conversion_31#</USR><Declaration>void comment_to_html_conversion_31()</Declaration><Abstract><Para> <emphasized>1<2</emphasized> <emphasized>3<4</emphasized> <emphasized>5<6</emphasized> </Para></Abstract><TemplateParameters><Parameter><Name>9<10</Name><Discussion><Para> bbb</Para></Discussion></Parameter></TemplateParameters><Parameters><Parameter><Name>7<8</Name><Direction isExplicit="0">in</Direction><Discussion><Para> aaa </Para></Discussion></Parameter></Parameters></Function>] 604*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 605*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 606*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 607*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 608*67e74705SXin Li // CHECK-NEXT: (CXComment_InlineCommand CommandName=[a] RenderEmphasized Arg[0]=1<2) 609*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 610*67e74705SXin Li // CHECK-NEXT: (CXComment_InlineCommand CommandName=[e] RenderEmphasized Arg[0]=3<4) 611*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 612*67e74705SXin Li // CHECK-NEXT: (CXComment_InlineCommand CommandName=[em] RenderEmphasized Arg[0]=5<6) 613*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 614*67e74705SXin Li // CHECK-NEXT: (CXComment_ParamCommand in implicitly ParamName=[7<8] ParamIndex=Invalid 615*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 616*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ aaa ]))) 617*67e74705SXin Li // CHECK-NEXT: (CXComment_TParamCommand ParamName=[9<10] ParamPosition=Invalid 618*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 619*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ bbb]))))] 620*67e74705SXin Li 621*67e74705SXin Li /// \\ \@ \& \$ \# \< \> \% \" \. \:: 622*67e74705SXin Li void comment_to_html_conversion_32(); 623*67e74705SXin Li 624*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=comment_to_html_conversion_32:{{.*}} FullCommentAsHTML=[<p class="para-brief"> \ @ & $ # < > % " . ::</p>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>comment_to_html_conversion_32</Name><USR>c:@F@comment_to_html_conversion_32#</USR><Declaration>void comment_to_html_conversion_32()</Declaration><Abstract><Para> \ @ & $ # < > % " . ::</Para></Abstract></Function>] 625*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 626*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 627*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 628*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 629*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[\]) 630*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 631*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[@]) 632*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 633*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[&]) 634*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 635*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[$]) 636*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 637*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[#]) 638*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 639*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[<]) 640*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 641*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[>]) 642*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 643*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[%]) 644*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 645*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=["]) 646*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 647*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[.]) 648*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 649*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[::])))] 650*67e74705SXin Li 651*67e74705SXin Li /// & < > " ' meow meow 652*67e74705SXin Li void comment_to_html_conversion_33(); 653*67e74705SXin Li 654*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=comment_to_html_conversion_33:{{.*}} FullCommentAsHTML=[<p class="para-brief"> & < > " ' meow meow</p>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>comment_to_html_conversion_33</Name><USR>c:@F@comment_to_html_conversion_33#</USR><Declaration>void comment_to_html_conversion_33()</Declaration><Abstract><Para> & < > " ' meow meow</Para></Abstract></Function>] 655*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 656*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 657*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 658*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 659*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[&]) 660*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 661*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[<]) 662*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 663*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[>]) 664*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 665*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=["]) 666*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 667*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[']) 668*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 669*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[m]) 670*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[e]) 671*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[o]) 672*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[w]) 673*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 674*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[m]) 675*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[e]) 676*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[o]) 677*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[w])))] 678*67e74705SXin Li 679*67e74705SXin Li /// <em>0<i</em> 680*67e74705SXin Li void comment_to_html_conversion_34(); 681*67e74705SXin Li 682*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=comment_to_html_conversion_34:{{.*}} FullCommentAsHTML=[<p class="para-brief"> <em>0<i</em></p>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>comment_to_html_conversion_34</Name><USR>c:@F@comment_to_html_conversion_34#</USR><Declaration>void comment_to_html_conversion_34()</Declaration><Abstract><Para> <rawHTML><![CDATA[<em>]]></rawHTML>0<i<rawHTML></em></rawHTML></Para></Abstract></Function>] 683*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 684*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 685*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 686*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 687*67e74705SXin Li // CHECK-NEXT: (CXComment_HTMLStartTag Name=[em]) 688*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[0]) 689*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[<]) 690*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[i]) 691*67e74705SXin Li // CHECK-NEXT: (CXComment_HTMLEndTag Name=[em])))] 692*67e74705SXin Li 693*67e74705SXin Li // rdar://12392215 694*67e74705SXin Li /// © the copyright symbol 695*67e74705SXin Li /// ™ the trade mark symbol 696*67e74705SXin Li /// ® the registered trade mark symbol 697*67e74705SXin Li /// a non-breakable space. 698*67e74705SXin Li /// Δ Greek letter Delta Δ. 699*67e74705SXin Li /// Γ Greek letter Gamma Γ. 700*67e74705SXin Li void comment_to_html_conversion_35(); 701*67e74705SXin Li 702*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=comment_to_html_conversion_35:{{.*}} FullCommentAsHTML=[<p class="para-brief"> © the copyright symbol ™ the trade mark symbol ® the registered trade mark symbol a non-breakable space. Δ Greek letter Delta Δ. Γ Greek letter Gamma Γ.</p>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>comment_to_html_conversion_35</Name><USR>c:@F@comment_to_html_conversion_35#</USR><Declaration>void comment_to_html_conversion_35()</Declaration><Abstract><Para> © the copyright symbol ™ the trade mark symbol ® the registered trade mark symbol a non-breakable space. Δ Greek letter Delta Δ. Γ Greek letter Gamma Γ.</Para></Abstract></Function>] 703*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 704*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 705*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 706*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 707*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[©]) 708*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ the copyright symbol] HasTrailingNewline) 709*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 710*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[™]) 711*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ the trade mark symbol] HasTrailingNewline) 712*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 713*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[®]) 714*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ the registered trade mark symbol] HasTrailingNewline) 715*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 716*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ]) 717*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ a non-breakable space.] HasTrailingNewline) 718*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 719*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[Δ]) 720*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Greek letter Delta Δ.] HasTrailingNewline) 721*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 722*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[Γ]) 723*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Greek letter Gamma Γ.])))] 724*67e74705SXin Li 725*67e74705SXin Li /// <h1 id="]]>">Aaa</h1> 726*67e74705SXin Li void comment_to_html_conversion_36(); 727*67e74705SXin Li 728*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=comment_to_html_conversion_36:{{.*}} FullCommentAsHTML=[<p class="para-brief"> <h1 id="]]>">Aaa</h1></p>] FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>comment_to_html_conversion_36</Name><USR>c:@F@comment_to_html_conversion_36#</USR><Declaration>void comment_to_html_conversion_36()</Declaration><Abstract><Para> <rawHTML><![CDATA[<h1 id="]]]]><![CDATA[>">]]></rawHTML>Aaa<rawHTML></h1></rawHTML></Para></Abstract></Function>] 729*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 730*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 731*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 732*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) 733*67e74705SXin Li // CHECK-NEXT: (CXComment_HTMLStartTag Name=[h1] Attrs: id=]]>) 734*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[Aaa]) 735*67e74705SXin Li // CHECK-NEXT: (CXComment_HTMLEndTag Name=[h1])))] 736*67e74705SXin Li 737*67e74705SXin Li 738*67e74705SXin Li /// Aaa. 739*67e74705SXin Li class comment_to_xml_conversion_01 { 740*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-1]]:7: ClassDecl=comment_to_xml_conversion_01:{{.*}} FullCommentAsXML=[<Class file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-1]]" column="7"><Name>comment_to_xml_conversion_01</Name><USR>c:@S@comment_to_xml_conversion_01</USR><Declaration>class comment_to_xml_conversion_01 {}</Declaration><Abstract><Para> Aaa.</Para></Abstract></Class>] 741*67e74705SXin Li 742*67e74705SXin Li /// \param aaa Blah blah. 743*67e74705SXin Li comment_to_xml_conversion_01(int aaa); 744*67e74705SXin Li 745*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:3: CXXConstructor=comment_to_xml_conversion_01:{{.*}} FullCommentAsXML=[<Function isInstanceMethod="1" file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="3"><Name>comment_to_xml_conversion_01</Name><USR>c:@S@comment_to_xml_conversion_01@F@comment_to_xml_conversion_01#I#</USR><Declaration>comment_to_xml_conversion_01(int aaa)</Declaration><Parameters><Parameter><Name>aaa</Name><Index>0</Index><Direction isExplicit="0">in</Direction><Discussion><Para> Blah blah.</Para></Discussion></Parameter></Parameters></Function>] 746*67e74705SXin Li 747*67e74705SXin Li /// Aaa. 748*67e74705SXin Li ~comment_to_xml_conversion_01(); 749*67e74705SXin Li 750*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:3: CXXDestructor=~comment_to_xml_conversion_01:{{.*}} FullCommentAsXML=[<Function isInstanceMethod="1" file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="3"><Name>~comment_to_xml_conversion_01</Name><USR>c:@S@comment_to_xml_conversion_01@F@~comment_to_xml_conversion_01#</USR><Declaration>~comment_to_xml_conversion_01()</Declaration><Abstract><Para> Aaa.</Para></Abstract></Function>] 751*67e74705SXin Li 752*67e74705SXin Li /// \param aaa Blah blah. 753*67e74705SXin Li int comment_to_xml_conversion_02(int aaa); 754*67e74705SXin Li 755*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:7: CXXMethod=comment_to_xml_conversion_02:{{.*}} FullCommentAsXML=[<Function isInstanceMethod="1" file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="7"><Name>comment_to_xml_conversion_02</Name><USR>c:@S@comment_to_xml_conversion_01@F@comment_to_xml_conversion_02#I#</USR><Declaration>int comment_to_xml_conversion_02(int aaa)</Declaration><Parameters><Parameter><Name>aaa</Name><Index>0</Index><Direction isExplicit="0">in</Direction><Discussion><Para> Blah blah.</Para></Discussion></Parameter></Parameters></Function>] 756*67e74705SXin Li 757*67e74705SXin Li /// \param aaa Blah blah. 758*67e74705SXin Li static int comment_to_xml_conversion_03(int aaa); 759*67e74705SXin Li 760*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:14: CXXMethod=comment_to_xml_conversion_03:{{.*}} FullCommentAsXML=[<Function isClassMethod="1" file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="14"><Name>comment_to_xml_conversion_03</Name><USR>c:@S@comment_to_xml_conversion_01@F@comment_to_xml_conversion_03#I#S</USR><Declaration>static int comment_to_xml_conversion_03(int aaa)</Declaration><Parameters><Parameter><Name>aaa</Name><Index>0</Index><Direction isExplicit="0">in</Direction><Discussion><Para> Blah blah.</Para></Discussion></Parameter></Parameters></Function>] 761*67e74705SXin Li 762*67e74705SXin Li /// Aaa. 763*67e74705SXin Li int comment_to_xml_conversion_04; 764*67e74705SXin Li 765*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:7: FieldDecl=comment_to_xml_conversion_04:{{.*}} FullCommentAsXML=[<Variable file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="7"><Name>comment_to_xml_conversion_04</Name><USR>c:@S@comment_to_xml_conversion_01@FI@comment_to_xml_conversion_04</USR><Declaration>int comment_to_xml_conversion_04</Declaration><Abstract><Para> Aaa.</Para></Abstract></Variable>] 766*67e74705SXin Li 767*67e74705SXin Li /// Aaa. 768*67e74705SXin Li static int comment_to_xml_conversion_05; 769*67e74705SXin Li 770*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:14: VarDecl=comment_to_xml_conversion_05:{{.*}} FullCommentAsXML=[<Variable file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="14"><Name>comment_to_xml_conversion_05</Name><USR>c:@S@comment_to_xml_conversion_01@comment_to_xml_conversion_05</USR><Declaration>static int comment_to_xml_conversion_05</Declaration><Abstract><Para> Aaa.</Para></Abstract></Variable>] 771*67e74705SXin Li 772*67e74705SXin Li /// \param aaa Blah blah. 773*67e74705SXin Li void operator()(int aaa); 774*67e74705SXin Li 775*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:8: CXXMethod=operator():{{.*}} FullCommentAsXML=[<Function isInstanceMethod="1" file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="8"><Name>operator()</Name><USR>c:@S@comment_to_xml_conversion_01@F@operator()#I#</USR><Declaration>void operator()(int aaa)</Declaration><Parameters><Parameter><Name>aaa</Name><Index>0</Index><Direction isExplicit="0">in</Direction><Discussion><Para> Blah blah.</Para></Discussion></Parameter></Parameters></Function>] 776*67e74705SXin Li 777*67e74705SXin Li /// Aaa. 778*67e74705SXin Li operator bool(); 779*67e74705SXin Li 780*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:3: CXXConversion=operator bool:{{.*}} FullCommentAsXML=[<Function isInstanceMethod="1" file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="3"><Name>operator bool</Name><USR>c:@S@comment_to_xml_conversion_01@F@operator bool#</USR><Declaration>operator bool()</Declaration><Abstract><Para> Aaa.</Para></Abstract></Function>] 781*67e74705SXin Li 782*67e74705SXin Li /// Aaa. 783*67e74705SXin Li typedef int comment_to_xml_conversion_06; 784*67e74705SXin Li 785*67e74705SXin Li // USR is line-dependent here, so filter it with a regexp. 786*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-3]]:15: TypedefDecl=comment_to_xml_conversion_06:{{.*}} FullCommentAsXML=[<Typedef file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-3]]" column="15"><Name>comment_to_xml_conversion_06</Name><USR>{{[^<]+}}</USR><Declaration>typedef int comment_to_xml_conversion_06</Declaration><Abstract><Para> Aaa.</Para></Abstract></Typedef>] 787*67e74705SXin Li 788*67e74705SXin Li /// Aaa. 789*67e74705SXin Li using comment_to_xml_conversion_07 = int; 790*67e74705SXin Li 791*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:9: TypeAliasDecl=comment_to_xml_conversion_07:{{.*}} FullCommentAsXML=[<Typedef file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="9"><Name>comment_to_xml_conversion_07</Name><USR>c:@S@comment_to_xml_conversion_01@comment_to_xml_conversion_07</USR><Declaration>using comment_to_xml_conversion_07 = int</Declaration><Abstract><Para> Aaa.</Para></Abstract></Typedef>] 792*67e74705SXin Li 793*67e74705SXin Li /// Aaa. 794*67e74705SXin Li template<typename T, typename U> 795*67e74705SXin Li class comment_to_xml_conversion_08 { }; 796*67e74705SXin Li 797*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:9: ClassTemplate=comment_to_xml_conversion_08:{{.*}} FullCommentAsXML=[<Class templateKind="template" file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="9"><Name>comment_to_xml_conversion_08</Name><USR>c:@S@comment_to_xml_conversion_01@ST>2#T#T@comment_to_xml_conversion_08</USR><Declaration>template <typename T, typename U> class comment_to_xml_conversion_08 {}</Declaration><Abstract><Para> Aaa.</Para></Abstract></Class>] 798*67e74705SXin Li 799*67e74705SXin Li /// Aaa. 800*67e74705SXin Li template<typename T> 801*67e74705SXin Li using comment_to_xml_conversion_09 = comment_to_xml_conversion_08<T, int>; 802*67e74705SXin Li 803*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:3: TypeAliasTemplateDecl=comment_to_xml_conversion_09:{{.*}} FullCommentAsXML=[<Typedef file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="3"><Name>comment_to_xml_conversion_09</Name><USR>c:@S@comment_to_xml_conversion_01@comment_to_xml_conversion_09</USR><Declaration>template <typename T>\nusing comment_to_xml_conversion_09 = comment_to_xml_conversion_08<T, int></Declaration><Abstract><Para> Aaa.</Para></Abstract></Typedef>] 804*67e74705SXin Li }; 805*67e74705SXin Li 806*67e74705SXin Li /// Aaa. 807*67e74705SXin Li template<typename T, typename U> 808*67e74705SXin Li void comment_to_xml_conversion_10(T aaa, U bbb); 809*67e74705SXin Li 810*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionTemplate=comment_to_xml_conversion_10:{{.*}} FullCommentAsXML=[<Function templateKind="template" file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>comment_to_xml_conversion_10</Name><USR>c:@FT@>2#T#Tcomment_to_xml_conversion_10#t0.0#t0.1#v#</USR><Declaration>template <typename T, typename U>\nvoid comment_to_xml_conversion_10(T aaa, U bbb)</Declaration><Abstract><Para> Aaa.</Para></Abstract></Function>] 811*67e74705SXin Li 812*67e74705SXin Li /// Aaa. 813*67e74705SXin Li template<> 814*67e74705SXin Li void comment_to_xml_conversion_10(int aaa, int bbb); 815*67e74705SXin Li 816*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:6: FunctionDecl=comment_to_xml_conversion_10:{{.*}} FullCommentAsXML=[<Function templateKind="specialization" file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="6"><Name>comment_to_xml_conversion_10</Name><USR>c:@F@comment_to_xml_conversion_10<#I#I>#I#I#</USR><Declaration>void comment_to_xml_conversion_10(int aaa, int bbb)</Declaration><Abstract><Para> Aaa.</Para></Abstract></Function>] 817*67e74705SXin Li 818*67e74705SXin Li /// Aaa. 819*67e74705SXin Li template<typename T, typename U> 820*67e74705SXin Li class comment_to_xml_conversion_11 { }; 821*67e74705SXin Li 822*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:7: ClassTemplate=comment_to_xml_conversion_11:{{.*}} FullCommentAsXML=[<Class templateKind="template" file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="7"><Name>comment_to_xml_conversion_11</Name><USR>c:@ST>2#T#T@comment_to_xml_conversion_11</USR><Declaration>template <typename T, typename U> class comment_to_xml_conversion_11 {}</Declaration><Abstract><Para> Aaa.</Para></Abstract></Class>] 823*67e74705SXin Li 824*67e74705SXin Li /// Aaa. 825*67e74705SXin Li template<typename T> 826*67e74705SXin Li class comment_to_xml_conversion_11<T, int> { }; 827*67e74705SXin Li 828*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:7: ClassTemplatePartialSpecialization=comment_to_xml_conversion_11:{{.*}} FullCommentAsXML=[<Class templateKind="partialSpecialization" file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="7"><Name>comment_to_xml_conversion_11</Name><USR>c:@SP>1#T@comment_to_xml_conversion_11>#t0.0#I</USR><Declaration>class comment_to_xml_conversion_11 {}</Declaration><Abstract><Para> Aaa.</Para></Abstract></Class>] 829*67e74705SXin Li 830*67e74705SXin Li /// Aaa. 831*67e74705SXin Li template<> 832*67e74705SXin Li class comment_to_xml_conversion_11<int, int> { }; 833*67e74705SXin Li 834*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:7: ClassDecl=comment_to_xml_conversion_11:{{.*}} FullCommentAsXML=[<Class templateKind="specialization" file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="7"><Name>comment_to_xml_conversion_11</Name><USR>c:@S@comment_to_xml_conversion_11>#I#I</USR><Declaration>class comment_to_xml_conversion_11 {}</Declaration><Abstract><Para> Aaa.</Para></Abstract></Class>] 835*67e74705SXin Li 836*67e74705SXin Li /// Aaa. 837*67e74705SXin Li int comment_to_xml_conversion_12; 838*67e74705SXin Li 839*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-2]]:5: VarDecl=comment_to_xml_conversion_12:{{.*}} FullCommentAsXML=[<Variable file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-2]]" column="5"><Name>comment_to_xml_conversion_12</Name><USR>c:@comment_to_xml_conversion_12</USR><Declaration>int comment_to_xml_conversion_12</Declaration><Abstract><Para> Aaa.</Para></Abstract></Variable>] 840*67e74705SXin Li 841*67e74705SXin Li /// Aaa. 842*67e74705SXin Li namespace comment_to_xml_conversion_13 { 843*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-1]]:11: Namespace=comment_to_xml_conversion_13:{{.*}} FullCommentAsXML=[<Namespace file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-1]]" column="11"><Name>comment_to_xml_conversion_13</Name><USR>c:@N@comment_to_xml_conversion_13</USR><Declaration>namespace comment_to_xml_conversion_13 {}</Declaration><Abstract><Para> Aaa.</Para></Abstract></Namespace>] 844*67e74705SXin Li 845*67e74705SXin Li /// Aaa. 846*67e74705SXin Li namespace comment_to_xml_conversion_14 { 847*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-1]]:13: Namespace=comment_to_xml_conversion_14:{{.*}} FullCommentAsXML=[<Namespace file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-1]]" column="13"><Name>comment_to_xml_conversion_14</Name><USR>c:@N@comment_to_xml_conversion_13@N@comment_to_xml_conversion_14</USR><Declaration>namespace comment_to_xml_conversion_14 {}</Declaration><Abstract><Para> Aaa.</Para></Abstract></Namespace>] 848*67e74705SXin Li } 849*67e74705SXin Li } 850*67e74705SXin Li 851*67e74705SXin Li /// Aaa. 852*67e74705SXin Li enum comment_to_xml_conversion_15 { 853*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-1]]:6: EnumDecl=comment_to_xml_conversion_15:{{.*}} FullCommentAsXML=[<Enum file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-1]]" column="6"><Name>comment_to_xml_conversion_15</Name><USR>c:@E@comment_to_xml_conversion_15</USR><Declaration>enum comment_to_xml_conversion_15{{( : int)?}} {}</Declaration><Abstract><Para> Aaa.</Para></Abstract></Enum>] 854*67e74705SXin Li 855*67e74705SXin Li /// Aaa. 856*67e74705SXin Li comment_to_xml_conversion_16 857*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-1]]:3: EnumConstantDecl=comment_to_xml_conversion_16:{{.*}} FullCommentAsXML=[<Variable file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-1]]" column="3"><Name>comment_to_xml_conversion_16</Name><USR>c:@E@comment_to_xml_conversion_15@comment_to_xml_conversion_16</USR><Declaration>comment_to_xml_conversion_16</Declaration><Abstract><Para> Aaa.</Para></Abstract></Variable>] 858*67e74705SXin Li }; 859*67e74705SXin Li 860*67e74705SXin Li /// Aaa. 861*67e74705SXin Li enum class comment_to_xml_conversion_17 { 862*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-1]]:12: EnumDecl=comment_to_xml_conversion_17:{{.*}} FullCommentAsXML=[<Enum file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-1]]" column="12"><Name>comment_to_xml_conversion_17</Name><USR>c:@E@comment_to_xml_conversion_17</USR><Declaration>enum class comment_to_xml_conversion_17 : int {}</Declaration><Abstract><Para> Aaa.</Para></Abstract></Enum>] 863*67e74705SXin Li 864*67e74705SXin Li /// Aaa. 865*67e74705SXin Li comment_to_xml_conversion_18 866*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-1]]:3: EnumConstantDecl=comment_to_xml_conversion_18:{{.*}} FullCommentAsXML=[<Variable file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-1]]" column="3"><Name>comment_to_xml_conversion_18</Name><USR>c:@E@comment_to_xml_conversion_17@comment_to_xml_conversion_18</USR><Declaration>comment_to_xml_conversion_18</Declaration><Abstract><Para> Aaa.</Para></Abstract></Variable>] 867*67e74705SXin Li }; 868*67e74705SXin Li 869*67e74705SXin Li /// <a href="http://example.org/"> 870*67e74705SXin Li void comment_to_xml_conversion_unsafe_html_01(); 871*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-1]]:6: FunctionDecl=comment_to_xml_conversion_unsafe_html_01:{{.*}} FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-1]]" column="6"><Name>comment_to_xml_conversion_unsafe_html_01</Name><USR>c:@F@comment_to_xml_conversion_unsafe_html_01#</USR><Declaration>void comment_to_xml_conversion_unsafe_html_01()</Declaration><Abstract><Para> <rawHTML isMalformed="1"><![CDATA[<a href="http://example.org/">]]></rawHTML></Para></Abstract></Function>] 872*67e74705SXin Li 873*67e74705SXin Li /// <a href="http://example.org/"><em>Aaa</em> 874*67e74705SXin Li void comment_to_xml_conversion_unsafe_html_02(); 875*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-1]]:6: FunctionDecl=comment_to_xml_conversion_unsafe_html_02:{{.*}} FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-1]]" column="6"><Name>comment_to_xml_conversion_unsafe_html_02</Name><USR>c:@F@comment_to_xml_conversion_unsafe_html_02#</USR><Declaration>void comment_to_xml_conversion_unsafe_html_02()</Declaration><Abstract><Para> <rawHTML isMalformed="1"><![CDATA[<a href="http://example.org/">]]></rawHTML><rawHTML><![CDATA[<em>]]></rawHTML>Aaa<rawHTML></em></rawHTML></Para></Abstract></Function>] 876*67e74705SXin Li 877*67e74705SXin Li /// <em>Aaa 878*67e74705SXin Li void comment_to_xml_conversion_unsafe_html_03(); 879*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-1]]:6: FunctionDecl=comment_to_xml_conversion_unsafe_html_03:{{.*}} FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-1]]" column="6"><Name>comment_to_xml_conversion_unsafe_html_03</Name><USR>c:@F@comment_to_xml_conversion_unsafe_html_03#</USR><Declaration>void comment_to_xml_conversion_unsafe_html_03()</Declaration><Abstract><Para> <rawHTML isMalformed="1"><![CDATA[<em>]]></rawHTML>Aaa</Para></Abstract></Function>] 880*67e74705SXin Li 881*67e74705SXin Li /// <em>Aaa</b></em> 882*67e74705SXin Li void comment_to_xml_conversion_unsafe_html_04(); 883*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-1]]:6: FunctionDecl=comment_to_xml_conversion_unsafe_html_04:{{.*}} FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-1]]" column="6"><Name>comment_to_xml_conversion_unsafe_html_04</Name><USR>c:@F@comment_to_xml_conversion_unsafe_html_04#</USR><Declaration>void comment_to_xml_conversion_unsafe_html_04()</Declaration><Abstract><Para> <rawHTML><![CDATA[<em>]]></rawHTML>Aaa<rawHTML isMalformed="1"></b></rawHTML><rawHTML></em></rawHTML></Para></Abstract></Function>] 884*67e74705SXin Li 885*67e74705SXin Li /// <em>Aaa</em></b> 886*67e74705SXin Li void comment_to_xml_conversion_unsafe_html_05(); 887*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-1]]:6: FunctionDecl=comment_to_xml_conversion_unsafe_html_05:{{.*}} FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-1]]" column="6"><Name>comment_to_xml_conversion_unsafe_html_05</Name><USR>c:@F@comment_to_xml_conversion_unsafe_html_05#</USR><Declaration>void comment_to_xml_conversion_unsafe_html_05()</Declaration><Abstract><Para> <rawHTML><![CDATA[<em>]]></rawHTML>Aaa<rawHTML></em></rawHTML><rawHTML isMalformed="1"></b></rawHTML></Para></Abstract></Function>] 888*67e74705SXin Li 889*67e74705SXin Li /// </table> 890*67e74705SXin Li void comment_to_xml_conversion_unsafe_html_06(); 891*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-1]]:6: FunctionDecl=comment_to_xml_conversion_unsafe_html_06:{{.*}} FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-1]]" column="6"><Name>comment_to_xml_conversion_unsafe_html_06</Name><USR>c:@F@comment_to_xml_conversion_unsafe_html_06#</USR><Declaration>void comment_to_xml_conversion_unsafe_html_06()</Declaration><Abstract><Para> <rawHTML isMalformed="1"></table></rawHTML></Para></Abstract></Function>] 892*67e74705SXin Li 893*67e74705SXin Li /// <div onclick="alert('meow');">Aaa</div> 894*67e74705SXin Li void comment_to_xml_conversion_unsafe_html_07(); 895*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-1]]:6: FunctionDecl=comment_to_xml_conversion_unsafe_html_07:{{.*}} FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-1]]" column="6"><Name>comment_to_xml_conversion_unsafe_html_07</Name><USR>c:@F@comment_to_xml_conversion_unsafe_html_07#</USR><Declaration>void comment_to_xml_conversion_unsafe_html_07()</Declaration><Abstract><Para> <rawHTML><![CDATA[<div onclick="alert('meow');">]]></rawHTML>Aaa<rawHTML></div></rawHTML></Para></Abstract></Function>] 896*67e74705SXin Li 897*67e74705SXin Li //===--- 898*67e74705SXin Li // Check that we attach comments from the base class to derived classes if they don't have a comment. 899*67e74705SXin Li // rdar://13647476 900*67e74705SXin Li //===--- 901*67e74705SXin Li 902*67e74705SXin Li /// BaseToSuper1_Base 903*67e74705SXin Li class BaseToSuper1_Base {}; 904*67e74705SXin Li 905*67e74705SXin Li class BaseToSuper1_Derived : public BaseToSuper1_Base {}; 906*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-1]]:7: ClassDecl=BaseToSuper1_Derived:{{.*}} FullCommentAsXML=[<Class file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-1]]" column="7"><Name>BaseToSuper1_Base</Name><USR>c:@S@BaseToSuper1_Base</USR><Declaration>class BaseToSuper1_Derived : public BaseToSuper1_Base {}</Declaration><Abstract><Para> BaseToSuper1_Base</Para></Abstract></Class>] 907*67e74705SXin Li 908*67e74705SXin Li 909*67e74705SXin Li /// BaseToSuper2_Base 910*67e74705SXin Li class BaseToSuper2_Base {}; 911*67e74705SXin Li 912*67e74705SXin Li /// BaseToSuper2_Derived 913*67e74705SXin Li class BaseToSuper2_Derived : public BaseToSuper2_Base {}; 914*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-1]]:7: ClassDecl=BaseToSuper2_Derived:{{.*}} FullCommentAsXML=[<Class file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-1]]" column="7"><Name>BaseToSuper2_Derived</Name><USR>c:@S@BaseToSuper2_Derived</USR><Declaration>class BaseToSuper2_Derived : public BaseToSuper2_Base {}</Declaration><Abstract><Para> BaseToSuper2_Derived</Para></Abstract></Class>] 915*67e74705SXin Li 916*67e74705SXin Li class BaseToSuper2_MoreDerived : public BaseToSuper2_Derived {}; 917*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-1]]:7: ClassDecl=BaseToSuper2_MoreDerived:{{.*}} FullCommentAsXML=[<Class file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-1]]" column="7"><Name>BaseToSuper2_Derived</Name><USR>c:@S@BaseToSuper2_Derived</USR><Declaration>class BaseToSuper2_MoreDerived : public BaseToSuper2_Derived {}</Declaration><Abstract><Para> BaseToSuper2_Derived</Para></Abstract></Class>] 918*67e74705SXin Li 919*67e74705SXin Li 920*67e74705SXin Li /// BaseToSuper3_Base 921*67e74705SXin Li class BaseToSuper3_Base {}; 922*67e74705SXin Li 923*67e74705SXin Li class BaseToSuper3_DerivedA : public virtual BaseToSuper3_Base {}; 924*67e74705SXin Li 925*67e74705SXin Li class BaseToSuper3_DerivedB : public virtual BaseToSuper3_Base {}; 926*67e74705SXin Li 927*67e74705SXin Li class BaseToSuper3_MoreDerived : public BaseToSuper3_DerivedA, public BaseToSuper3_DerivedB {}; 928*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-1]]:7: ClassDecl=BaseToSuper3_MoreDerived:{{.*}} FullCommentAsXML=[<Class file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-1]]" column="7"><Name>BaseToSuper3_Base</Name><USR>c:@S@BaseToSuper3_Base</USR><Declaration>class BaseToSuper3_MoreDerived : public BaseToSuper3_DerivedA,\n public BaseToSuper3_DerivedB {}</Declaration><Abstract><Para> BaseToSuper3_Base</Para></Abstract></Class>] 929*67e74705SXin Li 930*67e74705SXin Li 931*67e74705SXin Li // Check that we propagate comments only through public inheritance. 932*67e74705SXin Li 933*67e74705SXin Li /// BaseToSuper4_Base 934*67e74705SXin Li class BaseToSuper4_Base {}; 935*67e74705SXin Li 936*67e74705SXin Li /// BaseToSuper4_DerivedA 937*67e74705SXin Li class BaseToSuper4_DerivedA : virtual BaseToSuper4_Base {}; 938*67e74705SXin Li 939*67e74705SXin Li class BaseToSuper4_DerivedB : public virtual BaseToSuper4_Base {}; 940*67e74705SXin Li 941*67e74705SXin Li class BaseToSuper4_MoreDerived : BaseToSuper4_DerivedA, public BaseToSuper4_DerivedB {}; 942*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-1]]:7: ClassDecl=BaseToSuper4_MoreDerived:{{.*}} FullCommentAsXML=[<Class file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-1]]" column="7"><Name>BaseToSuper4_Base</Name><USR>c:@S@BaseToSuper4_Base</USR><Declaration>class BaseToSuper4_MoreDerived : BaseToSuper4_DerivedA,\n public BaseToSuper4_DerivedB {}</Declaration><Abstract><Para> BaseToSuper4_Base</Para></Abstract></Class>] 943*67e74705SXin Li 944*67e74705SXin Li //===--- 945*67e74705SXin Li // Check the representation of \todo in XML. 946*67e74705SXin Li //===--- 947*67e74705SXin Li 948*67e74705SXin Li /// Aaa. 949*67e74705SXin Li /// \todo Bbb. 950*67e74705SXin Li void comment_to_xml_conversion_todo_1(); 951*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-1]]:6: FunctionDecl=comment_to_xml_conversion_todo_1:{{.*}} FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-1]]" column="6"><Name>comment_to_xml_conversion_todo_1</Name><USR>c:@F@comment_to_xml_conversion_todo_1#</USR><Declaration>void comment_to_xml_conversion_todo_1()</Declaration><Abstract><Para> Aaa. </Para></Abstract><Discussion><Para kind="todo"> Bbb.</Para></Discussion></Function>] 952*67e74705SXin Li 953*67e74705SXin Li /// Aaa. 954*67e74705SXin Li /// \todo Bbb. 955*67e74705SXin Li /// 956*67e74705SXin Li /// Ccc. 957*67e74705SXin Li void comment_to_xml_conversion_todo_2(); 958*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-1]]:6: FunctionDecl=comment_to_xml_conversion_todo_2:{{.*}} FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-1]]" column="6"><Name>comment_to_xml_conversion_todo_2</Name><USR>c:@F@comment_to_xml_conversion_todo_2#</USR><Declaration>void comment_to_xml_conversion_todo_2()</Declaration><Abstract><Para> Aaa. </Para></Abstract><Discussion><Para kind="todo"> Bbb.</Para><Para> Ccc.</Para></Discussion></Function>] 959*67e74705SXin Li 960*67e74705SXin Li /// Aaa. 961*67e74705SXin Li /// \todo Bbb. 962*67e74705SXin Li /// 963*67e74705SXin Li /// Ccc. 964*67e74705SXin Li /// \todo Ddd. 965*67e74705SXin Li void comment_to_xml_conversion_todo_3(); 966*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-1]]:6: FunctionDecl=comment_to_xml_conversion_todo_3:{{.*}} FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-1]]" column="6"><Name>comment_to_xml_conversion_todo_3</Name><USR>c:@F@comment_to_xml_conversion_todo_3#</USR><Declaration>void comment_to_xml_conversion_todo_3()</Declaration><Abstract><Para> Aaa. </Para></Abstract><Discussion><Para kind="todo"> Bbb.</Para><Para> Ccc. </Para><Para kind="todo"> Ddd.</Para></Discussion></Function>] 967*67e74705SXin Li 968*67e74705SXin Li /// Aaa. 969*67e74705SXin Li /// \todo Bbb. 970*67e74705SXin Li /// \todo Ccc. 971*67e74705SXin Li void comment_to_xml_conversion_todo_4(); 972*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-1]]:6: FunctionDecl=comment_to_xml_conversion_todo_4:{{.*}} FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-1]]" column="6"><Name>comment_to_xml_conversion_todo_4</Name><USR>c:@F@comment_to_xml_conversion_todo_4#</USR><Declaration>void comment_to_xml_conversion_todo_4()</Declaration><Abstract><Para> Aaa. </Para></Abstract><Discussion><Para kind="todo"> Bbb. </Para><Para kind="todo"> Ccc.</Para></Discussion></Function>] 973*67e74705SXin Li 974*67e74705SXin Li 975*67e74705SXin Li //===--- 976*67e74705SXin Li // Test the representation of exception specifications in AST and XML. 977*67e74705SXin Li //===--- 978*67e74705SXin Li 979*67e74705SXin Li /// Aaa. 980*67e74705SXin Li /// \throws Bbb. 981*67e74705SXin Li void comment_to_xml_conversion_exceptions_1(); 982*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-1]]:6: FunctionDecl=comment_to_xml_conversion_exceptions_1:{{.*}} FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-1]]" column="6"><Name>comment_to_xml_conversion_exceptions_1</Name><USR>c:@F@comment_to_xml_conversion_exceptions_1#</USR><Declaration>void comment_to_xml_conversion_exceptions_1()</Declaration><Abstract><Para> Aaa. </Para></Abstract><Exceptions><Para> Bbb.</Para></Exceptions></Function>] 983*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 984*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 985*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 986*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Aaa.] HasTrailingNewline) 987*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 988*67e74705SXin Li // CHECK-NEXT: (CXComment_BlockCommand CommandName=[throws] 989*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 990*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Bbb.]))))] 991*67e74705SXin Li 992*67e74705SXin Li /// Aaa. 993*67e74705SXin Li /// \throw Bbb. 994*67e74705SXin Li void comment_to_xml_conversion_exceptions_2(); 995*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-1]]:6: FunctionDecl=comment_to_xml_conversion_exceptions_2:{{.*}} FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-1]]" column="6"><Name>comment_to_xml_conversion_exceptions_2</Name><USR>c:@F@comment_to_xml_conversion_exceptions_2#</USR><Declaration>void comment_to_xml_conversion_exceptions_2()</Declaration><Abstract><Para> Aaa. </Para></Abstract><Exceptions><Para> Bbb.</Para></Exceptions></Function>] 996*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 997*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 998*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 999*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Aaa.] HasTrailingNewline) 1000*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 1001*67e74705SXin Li // CHECK-NEXT: (CXComment_BlockCommand CommandName=[throw] 1002*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 1003*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Bbb.]))))] 1004*67e74705SXin Li 1005*67e74705SXin Li /// Aaa. 1006*67e74705SXin Li /// \exception Bbb. 1007*67e74705SXin Li void comment_to_xml_conversion_exceptions_3(); 1008*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-1]]:6: FunctionDecl=comment_to_xml_conversion_exceptions_3:{{.*}} FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-1]]" column="6"><Name>comment_to_xml_conversion_exceptions_3</Name><USR>c:@F@comment_to_xml_conversion_exceptions_3#</USR><Declaration>void comment_to_xml_conversion_exceptions_3()</Declaration><Abstract><Para> Aaa. </Para></Abstract><Exceptions><Para> Bbb.</Para></Exceptions></Function>] 1009*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 1010*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 1011*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 1012*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Aaa.] HasTrailingNewline) 1013*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 1014*67e74705SXin Li // CHECK-NEXT: (CXComment_BlockCommand CommandName=[exception] 1015*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 1016*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Bbb.]))))] 1017*67e74705SXin Li 1018*67e74705SXin Li /// Aaa. 1019*67e74705SXin Li /// \throws Bbb. 1020*67e74705SXin Li /// \throws Ccc. 1021*67e74705SXin Li /// \throws Ddd. 1022*67e74705SXin Li void comment_to_xml_conversion_exceptions_4(); 1023*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-1]]:6: FunctionDecl=comment_to_xml_conversion_exceptions_4:{{.*}} FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-1]]" column="6"><Name>comment_to_xml_conversion_exceptions_4</Name><USR>c:@F@comment_to_xml_conversion_exceptions_4#</USR><Declaration>void comment_to_xml_conversion_exceptions_4()</Declaration><Abstract><Para> Aaa. </Para></Abstract><Exceptions><Para> Bbb. </Para><Para> Ccc. </Para><Para> Ddd.</Para></Exceptions></Function>] 1024*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 1025*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 1026*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 1027*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Aaa.] HasTrailingNewline) 1028*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 1029*67e74705SXin Li // CHECK-NEXT: (CXComment_BlockCommand CommandName=[throws] 1030*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 1031*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Bbb.] HasTrailingNewline) 1032*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace))) 1033*67e74705SXin Li // CHECK-NEXT: (CXComment_BlockCommand CommandName=[throws] 1034*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 1035*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Ccc.] HasTrailingNewline) 1036*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace))) 1037*67e74705SXin Li // CHECK-NEXT: (CXComment_BlockCommand CommandName=[throws] 1038*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 1039*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Ddd.]))))] 1040*67e74705SXin Li 1041*67e74705SXin Li /// Aaa. 1042*67e74705SXin Li /// \throws Bbb. 1043*67e74705SXin Li /// \throw Ccc. 1044*67e74705SXin Li void comment_to_xml_conversion_exceptions_5(); 1045*67e74705SXin Li // CHECK: comment-to-html-xml-conversion.cpp:[[@LINE-1]]:6: FunctionDecl=comment_to_xml_conversion_exceptions_5:{{.*}} FullCommentAsXML=[<Function file="{{[^"]+}}comment-to-html-xml-conversion.cpp" line="[[@LINE-1]]" column="6"><Name>comment_to_xml_conversion_exceptions_5</Name><USR>c:@F@comment_to_xml_conversion_exceptions_5#</USR><Declaration>void comment_to_xml_conversion_exceptions_5()</Declaration><Abstract><Para> Aaa. </Para></Abstract><Exceptions><Para> Bbb. </Para><Para> Ccc.</Para></Exceptions></Function>] 1046*67e74705SXin Li // CHECK-NEXT: CommentAST=[ 1047*67e74705SXin Li // CHECK-NEXT: (CXComment_FullComment 1048*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 1049*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Aaa.] HasTrailingNewline) 1050*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) 1051*67e74705SXin Li // CHECK-NEXT: (CXComment_BlockCommand CommandName=[throws] 1052*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 1053*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Bbb.] HasTrailingNewline) 1054*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace))) 1055*67e74705SXin Li // CHECK-NEXT: (CXComment_BlockCommand CommandName=[throw] 1056*67e74705SXin Li // CHECK-NEXT: (CXComment_Paragraph 1057*67e74705SXin Li // CHECK-NEXT: (CXComment_Text Text=[ Ccc.]))))] 1058*67e74705SXin Li 1059*67e74705SXin Li #endif 1060*67e74705SXin Li 1061