1aab8383aSDmitri Gribenko // Run lines are sensitive to line numbers and come below the code. 2aab8383aSDmitri Gribenko 3aab8383aSDmitri Gribenko #ifndef HEADER 4aab8383aSDmitri Gribenko #define HEADER 5aab8383aSDmitri Gribenko 6aab8383aSDmitri Gribenko // Not a Doxygen comment. NOT_DOXYGEN 7aab8383aSDmitri Gribenko void notdoxy1(void); 8aab8383aSDmitri Gribenko 9aab8383aSDmitri Gribenko /* Not a Doxygen comment. NOT_DOXYGEN */ 10aab8383aSDmitri Gribenko void notdoxy2(void); 11aab8383aSDmitri Gribenko 12aab8383aSDmitri Gribenko /*/ Not a Doxygen comment. NOT_DOXYGEN */ 13aab8383aSDmitri Gribenko void notdoxy3(void); 14aab8383aSDmitri Gribenko 15aab8383aSDmitri Gribenko /** Doxygen comment. isdoxy4 IS_DOXYGEN_SINGLE */ 16aab8383aSDmitri Gribenko void isdoxy4(void); 17aab8383aSDmitri Gribenko 18aab8383aSDmitri Gribenko /** 19aab8383aSDmitri Gribenko * Doxygen comment. isdoxy5 IS_DOXYGEN_SINGLE */ 20aab8383aSDmitri Gribenko void isdoxy5(void); 21aab8383aSDmitri Gribenko 22aab8383aSDmitri Gribenko /** 23aab8383aSDmitri Gribenko * Doxygen comment. 24aab8383aSDmitri Gribenko * isdoxy6 IS_DOXYGEN_SINGLE */ 25aab8383aSDmitri Gribenko void isdoxy6(void); 26aab8383aSDmitri Gribenko 27aab8383aSDmitri Gribenko /** 28aab8383aSDmitri Gribenko * Doxygen comment. 29aab8383aSDmitri Gribenko * isdoxy7 IS_DOXYGEN_SINGLE 30aab8383aSDmitri Gribenko */ 31aab8383aSDmitri Gribenko void isdoxy7(void); 32aab8383aSDmitri Gribenko 33aab8383aSDmitri Gribenko /*! Doxygen comment. isdoxy8 IS_DOXYGEN_SINGLE */ 34aab8383aSDmitri Gribenko void isdoxy8(void); 35aab8383aSDmitri Gribenko 36aab8383aSDmitri Gribenko /// Doxygen comment. isdoxy9 IS_DOXYGEN_SINGLE 37aab8383aSDmitri Gribenko void isdoxy9(void); 38aab8383aSDmitri Gribenko 39aab8383aSDmitri Gribenko // Not a Doxygen comment. NOT_DOXYGEN 40aab8383aSDmitri Gribenko /// Doxygen comment. isdoxy10 IS_DOXYGEN_SINGLE 41aab8383aSDmitri Gribenko void isdoxy10(void); 42aab8383aSDmitri Gribenko 43aab8383aSDmitri Gribenko /// Doxygen comment. isdoxy11 IS_DOXYGEN_SINGLE 44aab8383aSDmitri Gribenko // Not a Doxygen comment. NOT_DOXYGEN 45aab8383aSDmitri Gribenko void isdoxy11(void); 46aab8383aSDmitri Gribenko 47aab8383aSDmitri Gribenko /** Doxygen comment. isdoxy12 IS_DOXYGEN_SINGLE */ 48aab8383aSDmitri Gribenko /* Not a Doxygen comment. NOT_DOXYGEN */ 49aab8383aSDmitri Gribenko void isdoxy12(void); 50aab8383aSDmitri Gribenko 51aab8383aSDmitri Gribenko /// Doxygen comment. isdoxy13 IS_DOXYGEN_START 52aab8383aSDmitri Gribenko /// Doxygen comment. IS_DOXYGEN_END 53aab8383aSDmitri Gribenko void isdoxy13(void); 54aab8383aSDmitri Gribenko 55aab8383aSDmitri Gribenko /// Doxygen comment. isdoxy14 IS_DOXYGEN_START 56aab8383aSDmitri Gribenko /// Blah-blah-blah. 57aab8383aSDmitri Gribenko /// Doxygen comment. IS_DOXYGEN_END 58aab8383aSDmitri Gribenko void isdoxy14(void); 59aab8383aSDmitri Gribenko 60aab8383aSDmitri Gribenko /// Doxygen comment. isdoxy15 IS_DOXYGEN_START 61aab8383aSDmitri Gribenko /** Blah-blah-blah */ 62aab8383aSDmitri Gribenko /// Doxygen comment. IS_DOXYGEN_END 63aab8383aSDmitri Gribenko void isdoxy15(void); 64aab8383aSDmitri Gribenko 65aab8383aSDmitri Gribenko /** Blah-blah-blah. isdoxy16 IS_DOXYGEN_START *//** Blah */ 66aab8383aSDmitri Gribenko /// Doxygen comment. IS_DOXYGEN_END 67aab8383aSDmitri Gribenko void isdoxy16(void); 68aab8383aSDmitri Gribenko 69557a8d56SDmitri Gribenko /// NOT_DOXYGEN 70557a8d56SDmitri Gribenko // NOT_DOXYGEN 71557a8d56SDmitri Gribenko /// isdoxy17 IS_DOXYGEN_START IS_DOXYGEN_END 72aab8383aSDmitri Gribenko void isdoxy17(void); 73aab8383aSDmitri Gribenko 74aab8383aSDmitri Gribenko unsigned 75aab8383aSDmitri Gribenko // NOT_DOXYGEN 76557a8d56SDmitri Gribenko /// NOT_DOXYGEN 77557a8d56SDmitri Gribenko // NOT_DOXYGEN 78557a8d56SDmitri Gribenko /// isdoxy18 IS_DOXYGEN_START IS_DOXYGEN_END 79aab8383aSDmitri Gribenko // NOT_DOXYGEN 80aab8383aSDmitri Gribenko int isdoxy18(void); 81aab8383aSDmitri Gribenko 82aab8383aSDmitri Gribenko //! It all starts here. isdoxy19 IS_DOXYGEN_START 83aab8383aSDmitri Gribenko /*! It's a little odd to continue line this, 84aab8383aSDmitri Gribenko * 85aab8383aSDmitri Gribenko * but we need more multi-line comments. */ 86aab8383aSDmitri Gribenko /// This comment comes before my other comments 87aab8383aSDmitri Gribenko /** This is a block comment that is associated with the function f. It 88aab8383aSDmitri Gribenko * runs for three lines. IS_DOXYGEN_END 89aab8383aSDmitri Gribenko */ 90aab8383aSDmitri Gribenko void isdoxy19(int, int); 91aab8383aSDmitri Gribenko 92aab8383aSDmitri Gribenko // NOT IN THE COMMENT NOT_DOXYGEN 93aab8383aSDmitri Gribenko /// This is a BCPL comment. isdoxy20 IS_DOXYGEN_START 94aab8383aSDmitri Gribenko /// It has only two lines. 95aab8383aSDmitri Gribenko /** But there are other blocks that are part of the comment, too. IS_DOXYGEN_END */ 96aab8383aSDmitri Gribenko void isdoxy20(int); 97aab8383aSDmitri Gribenko 9844cd7e67SDmitri Gribenko void notdoxy21(int); ///< This is a member comment. isdoxy21 IS_DOXYGEN_NOT_ATTACHED 99aab8383aSDmitri Gribenko 10044cd7e67SDmitri Gribenko void notdoxy22(int); /*!< This is a member comment. isdoxy22 IS_DOXYGEN_NOT_ATTACHED */ 101aab8383aSDmitri Gribenko 10244cd7e67SDmitri Gribenko void notdoxy23(int); /**< This is a member comment. isdoxy23 IS_DOXYGEN_NOT_ATTACHED */ 103aab8383aSDmitri Gribenko 104aab8383aSDmitri Gribenko void notdoxy24(int); // NOT_DOXYGEN 105aab8383aSDmitri Gribenko 106aab8383aSDmitri Gribenko /// IS_DOXYGEN_SINGLE 107aab8383aSDmitri Gribenko struct isdoxy25 { 108aab8383aSDmitri Gribenko }; 109aab8383aSDmitri Gribenko 110aab8383aSDmitri Gribenko struct test26 { 111aab8383aSDmitri Gribenko /// IS_DOXYGEN_SINGLE 112aab8383aSDmitri Gribenko int isdoxy26; 113aab8383aSDmitri Gribenko }; 114aab8383aSDmitri Gribenko 115aab8383aSDmitri Gribenko struct test27 { 116aab8383aSDmitri Gribenko int isdoxy27; ///< IS_DOXYGEN_SINGLE 117aab8383aSDmitri Gribenko }; 118aab8383aSDmitri Gribenko 119aab8383aSDmitri Gribenko struct notdoxy28 { 120aab8383aSDmitri Gribenko }; ///< IS_DOXYGEN_NOT_ATTACHED 121aab8383aSDmitri Gribenko 122aab8383aSDmitri Gribenko /// IS_DOXYGEN_SINGLE 123aab8383aSDmitri Gribenko enum isdoxy29 { 124aab8383aSDmitri Gribenko }; 125aab8383aSDmitri Gribenko 126aab8383aSDmitri Gribenko enum notdoxy30 { 127aab8383aSDmitri Gribenko }; ///< IS_DOXYGEN_NOT_ATTACHED 128aab8383aSDmitri Gribenko 129aab8383aSDmitri Gribenko /// IS_DOXYGEN_SINGLE 130aab8383aSDmitri Gribenko namespace isdoxy31 { 131aab8383aSDmitri Gribenko }; 132aab8383aSDmitri Gribenko 133aab8383aSDmitri Gribenko namespace notdoxy32 { 134aab8383aSDmitri Gribenko }; ///< IS_DOXYGEN_NOT_ATTACHED 135aab8383aSDmitri Gribenko 136aab8383aSDmitri Gribenko class test33 { 137aab8383aSDmitri Gribenko ///< IS_DOXYGEN_NOT_ATTACHED 138aab8383aSDmitri Gribenko int isdoxy33; ///< isdoxy33 IS_DOXYGEN_SINGLE 139aab8383aSDmitri Gribenko int isdoxy34; ///< isdoxy34 IS_DOXYGEN_SINGLE 140aab8383aSDmitri Gribenko 141aab8383aSDmitri Gribenko ///< IS_DOXYGEN_NOT_ATTACHED 142aab8383aSDmitri Gribenko int isdoxy35, ///< isdoxy35 IS_DOXYGEN_SINGLE 143aab8383aSDmitri Gribenko isdoxy36; ///< isdoxy36 IS_DOXYGEN_SINGLE 144aab8383aSDmitri Gribenko 145aab8383aSDmitri Gribenko ///< IS_DOXYGEN_NOT_ATTACHED 146aab8383aSDmitri Gribenko int isdoxy37 ///< isdoxy37 IS_DOXYGEN_SINGLE 147aab8383aSDmitri Gribenko , isdoxy38 ///< isdoxy38 IS_DOXYGEN_SINGLE 148aab8383aSDmitri Gribenko , isdoxy39; ///< isdoxy39 IS_DOXYGEN_SINGLE 149aab8383aSDmitri Gribenko }; 150aab8383aSDmitri Gribenko 151aab8383aSDmitri Gribenko // Verified that Doxygen attaches these. 152aab8383aSDmitri Gribenko 153aab8383aSDmitri Gribenko /// isdoxy40 IS_DOXYGEN_SINGLE 154aab8383aSDmitri Gribenko // NOT_DOXYGEN 155aab8383aSDmitri Gribenko void isdoxy40(int); 156aab8383aSDmitri Gribenko 157aab8383aSDmitri Gribenko unsigned 158aab8383aSDmitri Gribenko /// isdoxy41 IS_DOXYGEN_SINGLE 159aab8383aSDmitri Gribenko // NOT_DOXYGEN 160aab8383aSDmitri Gribenko int isdoxy41(int); 161aab8383aSDmitri Gribenko 162aab8383aSDmitri Gribenko class test42 { 163aab8383aSDmitri Gribenko int isdoxy42; /* NOT_DOXYGEN */ ///< isdoxy42 IS_DOXYGEN_SINGLE 164aab8383aSDmitri Gribenko }; 165aab8383aSDmitri Gribenko 1665188c4b9SDmitri Gribenko /// IS_DOXYGEN_START 1675188c4b9SDmitri Gribenko /// It is fine to have a command at the end of comment. 1685188c4b9SDmitri Gribenko ///\brief 1695188c4b9SDmitri Gribenko /// 1705188c4b9SDmitri Gribenko /// Some malformed command. 171557a8d56SDmitri Gribenko /** \*/ 1725188c4b9SDmitri Gribenko /** 1735188c4b9SDmitri Gribenko * \brief Aaa aaaaaaa aaaa. 1745188c4b9SDmitri Gribenko * IS_DOXYGEN_END 1755188c4b9SDmitri Gribenko */ 1765188c4b9SDmitri Gribenko void isdoxy43(void); 1775188c4b9SDmitri Gribenko 1785188c4b9SDmitri Gribenko /// IS_DOXYGEN_START Aaa bbb 1795188c4b9SDmitri Gribenko /// ccc. 1805188c4b9SDmitri Gribenko /// 1815188c4b9SDmitri Gribenko /// Ddd eee. 1825188c4b9SDmitri Gribenko /// Fff. 1835188c4b9SDmitri Gribenko /// 1845188c4b9SDmitri Gribenko /// Ggg. IS_DOXYGEN_END 1855188c4b9SDmitri Gribenko void isdoxy44(void); 1865188c4b9SDmitri Gribenko 1875188c4b9SDmitri Gribenko /// IS_DOXYGEN_START Aaa bbb 1885188c4b9SDmitri Gribenko /// ccc. 1895188c4b9SDmitri Gribenko /// 1905188c4b9SDmitri Gribenko /// \brief 1915188c4b9SDmitri Gribenko /// Ddd eee. 1925188c4b9SDmitri Gribenko /// Fff. 1935188c4b9SDmitri Gribenko /// 1945188c4b9SDmitri Gribenko /// Ggg. IS_DOXYGEN_END 1955188c4b9SDmitri Gribenko void isdoxy45(void); 1965188c4b9SDmitri Gribenko 1973e242d6dSDmitri Gribenko /// IS_DOXYGEN_START Aaa bbb 1983e242d6dSDmitri Gribenko /// ccc. 1993e242d6dSDmitri Gribenko /// 2003e242d6dSDmitri Gribenko /// \short 2013e242d6dSDmitri Gribenko /// Ddd eee. 2023e242d6dSDmitri Gribenko /// Fff. 2033e242d6dSDmitri Gribenko /// 2043e242d6dSDmitri Gribenko /// Ggg. IS_DOXYGEN_END 2053e242d6dSDmitri Gribenko void isdoxy46(void); 2063e242d6dSDmitri Gribenko 2077e8729b9SDmitri Gribenko /// IS_DOXYGEN_NOT_ATTACHED 2087e8729b9SDmitri Gribenko #define FOO 2093e242d6dSDmitri Gribenko void notdoxy47(void); 2107e8729b9SDmitri Gribenko 211a1e9c8e7SDmitri Gribenko /// IS_DOXYGEN_START Aaa bbb 212a1e9c8e7SDmitri Gribenko /// \param ccc 213a1e9c8e7SDmitri Gribenko /// \returns ddd IS_DOXYGEN_END 2143e242d6dSDmitri Gribenko void isdoxy48(int); 215a1e9c8e7SDmitri Gribenko 21677369eeaSDmitri Gribenko /// \brief IS_DOXYGEN_START Aaa 21777369eeaSDmitri Gribenko /// \returns bbb IS_DOXYGEN_END 21877369eeaSDmitri Gribenko void isdoxy49(void); 21977369eeaSDmitri Gribenko 22077369eeaSDmitri Gribenko /// \param ccc IS_DOXYGEN_START 22177369eeaSDmitri Gribenko /// \returns ddd IS_DOXYGEN_END 22277369eeaSDmitri Gribenko void isdoxy50(int); 22377369eeaSDmitri Gribenko 22475eea899SDmitri Gribenko // One of the following lines has trailing whitespace. It is intended, don't 22575eea899SDmitri Gribenko // fix it. 22675eea899SDmitri Gribenko /** 22775eea899SDmitri Gribenko * Aaa. IS_DOXYGEN_START 22875eea899SDmitri Gribenko * 22975eea899SDmitri Gribenko * Bbb. IS_DOXYGEN_END 23075eea899SDmitri Gribenko */ 23175eea899SDmitri Gribenko void isdoxy51(int); 23275eea899SDmitri Gribenko 23375eea899SDmitri Gribenko // One of the following lines has trailing whitespace. It is intended, don't 23475eea899SDmitri Gribenko // fix it. 23575eea899SDmitri Gribenko /** 23675eea899SDmitri Gribenko * Aaa. IS_DOXYGEN_START 23775eea899SDmitri Gribenko * Bbb. 23875eea899SDmitri Gribenko * 23975eea899SDmitri Gribenko * Ccc. IS_DOXYGEN_END 24075eea899SDmitri Gribenko */ 24175eea899SDmitri Gribenko void isdoxy52(int); 24275eea899SDmitri Gribenko 24375eea899SDmitri Gribenko /** 24475eea899SDmitri Gribenko * \fn isdoxy53 24575eea899SDmitri Gribenko * 24675eea899SDmitri Gribenko * Aaa. IS_DOXYGEN_START IS_DOXYGEN_END 24775eea899SDmitri Gribenko */ 24875eea899SDmitri Gribenko void isdoxy53(int); 24975eea899SDmitri Gribenko 250b534d3a0SArgyrios Kyrtzidis #define MYMAC(x,y) 251b534d3a0SArgyrios Kyrtzidis /** 252b534d3a0SArgyrios Kyrtzidis * Aaa. IS_DOXYGEN_START IS_DOXYGEN_END 253b534d3a0SArgyrios Kyrtzidis */ 254b534d3a0SArgyrios Kyrtzidis MYMAC(0,0) 255b534d3a0SArgyrios Kyrtzidis void isdoxy54(int); 256b534d3a0SArgyrios Kyrtzidis 257aab8383aSDmitri Gribenko #endif 258aab8383aSDmitri Gribenko 259aab8383aSDmitri Gribenko // RUN: rm -rf %t 260aab8383aSDmitri Gribenko // RUN: mkdir %t 261d947a66cSDmitri Gribenko 262d947a66cSDmitri Gribenko // Check that we serialize comment source locations properly. 263740c0fbeSDmitri Gribenko // RUN: %clang_cc1 -x c++ -std=c++11 -emit-pch -o %t/out.pch %s 264740c0fbeSDmitri Gribenko // RUN: %clang_cc1 -x c++ -std=c++11 -include-pch %t/out.pch -fsyntax-only %s 265aab8383aSDmitri Gribenko 266*819f9ffeSArgyrios Kyrtzidis // RUN: c-index-test -write-pch %t/out.pch -x c++ -std=c++11 %s 267740c0fbeSDmitri Gribenko // 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 268aab8383aSDmitri Gribenko // RUN: c-index-test -test-load-tu %t/out.pch all > %t/out.c-index-pch 269aab8383aSDmitri Gribenko 270aab8383aSDmitri Gribenko // RUN: FileCheck %s -check-prefix=WRONG < %t/out.c-index-direct 271aab8383aSDmitri Gribenko // RUN: FileCheck %s -check-prefix=WRONG < %t/out.c-index-pch 272aab8383aSDmitri Gribenko 273aab8383aSDmitri Gribenko // Declarations without Doxygen comments should not pick up some Doxygen comments. 274aab8383aSDmitri Gribenko // WRONG-NOT: notdoxy{{.*}}Comment= 275aab8383aSDmitri Gribenko // WRONG-NOT: test{{.*}}Comment= 276aab8383aSDmitri Gribenko 277aab8383aSDmitri Gribenko // Non-Doxygen comments should not be attached to anything. 278aab8383aSDmitri Gribenko // WRONG-NOT: NOT_DOXYGEN 279aab8383aSDmitri Gribenko 280aab8383aSDmitri Gribenko // Some Doxygen comments are not attached to anything. 281aab8383aSDmitri Gribenko // WRONG-NOT: IS_DOXYGEN_NOT_ATTACHED 282aab8383aSDmitri Gribenko 283aab8383aSDmitri Gribenko // Ensure we don't pick up extra comments. 2845188c4b9SDmitri Gribenko // WRONG-NOT: IS_DOXYGEN_START{{.*}}IS_DOXYGEN_START{{.*}}BriefComment= 2855188c4b9SDmitri Gribenko // WRONG-NOT: IS_DOXYGEN_END{{.*}}IS_DOXYGEN_END{{.*}}BriefComment= 286740c0fbeSDmitri Gribenko // 287740c0fbeSDmitri Gribenko // Ensure that XML is not invalid 288740c0fbeSDmitri Gribenko // WRONG-NOT: CommentXMLInvalid 289aab8383aSDmitri Gribenko 290aab8383aSDmitri Gribenko // RUN: FileCheck %s < %t/out.c-index-direct 291aab8383aSDmitri Gribenko // RUN: FileCheck %s < %t/out.c-index-pch 292aab8383aSDmitri Gribenko 293d947a66cSDmitri Gribenko // These CHECK lines are not located near the code on purpose. This test 294d947a66cSDmitri Gribenko // checks that documentation comments are attached to declarations correctly. 295d947a66cSDmitri Gribenko // Adding a non-documentation comment with CHECK line between every two 296d947a66cSDmitri Gribenko // documentation comments will only test a single code path. 297d947a66cSDmitri Gribenko // 298aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:16:6: FunctionDecl=isdoxy4:{{.*}} isdoxy4 IS_DOXYGEN_SINGLE 299aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:20:6: FunctionDecl=isdoxy5:{{.*}} isdoxy5 IS_DOXYGEN_SINGLE 300aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:25:6: FunctionDecl=isdoxy6:{{.*}} isdoxy6 IS_DOXYGEN_SINGLE 301aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:31:6: FunctionDecl=isdoxy7:{{.*}} isdoxy7 IS_DOXYGEN_SINGLE 302aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:34:6: FunctionDecl=isdoxy8:{{.*}} isdoxy8 IS_DOXYGEN_SINGLE 303aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:37:6: FunctionDecl=isdoxy9:{{.*}} isdoxy9 IS_DOXYGEN_SINGLE 304aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:41:6: FunctionDecl=isdoxy10:{{.*}} isdoxy10 IS_DOXYGEN_SINGLE 305aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:53:6: FunctionDecl=isdoxy13:{{.*}} isdoxy13 IS_DOXYGEN_START{{.*}} IS_DOXYGEN_END 306aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:58:6: FunctionDecl=isdoxy14:{{.*}} isdoxy14 IS_DOXYGEN_START{{.*}} IS_DOXYGEN_END 307aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:63:6: FunctionDecl=isdoxy15:{{.*}} isdoxy15 IS_DOXYGEN_START{{.*}} IS_DOXYGEN_END 308aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:67:6: FunctionDecl=isdoxy16:{{.*}} isdoxy16 IS_DOXYGEN_START{{.*}} IS_DOXYGEN_END 309aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:72:6: FunctionDecl=isdoxy17:{{.*}} isdoxy17 IS_DOXYGEN_START{{.*}} IS_DOXYGEN_END 310aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:80:5: FunctionDecl=isdoxy18:{{.*}} isdoxy18 IS_DOXYGEN_START{{.*}} IS_DOXYGEN_END 311aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:90:6: FunctionDecl=isdoxy19:{{.*}} isdoxy19 IS_DOXYGEN_START{{.*}} IS_DOXYGEN_END 312aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:96:6: FunctionDecl=isdoxy20:{{.*}} isdoxy20 IS_DOXYGEN_START{{.*}} IS_DOXYGEN_END 313aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:107:8: StructDecl=isdoxy25:{{.*}} IS_DOXYGEN_SINGLE 314aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:112:7: FieldDecl=isdoxy26:{{.*}} IS_DOXYGEN_SINGLE 315aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:116:7: FieldDecl=isdoxy27:{{.*}} IS_DOXYGEN_SINGLE 316aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:123:6: EnumDecl=isdoxy29:{{.*}} IS_DOXYGEN_SINGLE 317aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:130:11: Namespace=isdoxy31:{{.*}} IS_DOXYGEN_SINGLE 318aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:138:7: FieldDecl=isdoxy33:{{.*}} isdoxy33 IS_DOXYGEN_SINGLE 319aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:139:7: FieldDecl=isdoxy34:{{.*}} isdoxy34 IS_DOXYGEN_SINGLE 320aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:142:7: FieldDecl=isdoxy35:{{.*}} isdoxy35 IS_DOXYGEN_SINGLE 321aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:143:7: FieldDecl=isdoxy36:{{.*}} isdoxy36 IS_DOXYGEN_SINGLE 322aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:146:7: FieldDecl=isdoxy37:{{.*}} isdoxy37 IS_DOXYGEN_SINGLE 323aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:147:7: FieldDecl=isdoxy38:{{.*}} isdoxy38 IS_DOXYGEN_SINGLE 324aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:148:7: FieldDecl=isdoxy39:{{.*}} isdoxy39 IS_DOXYGEN_SINGLE 325aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:155:6: FunctionDecl=isdoxy40:{{.*}} isdoxy40 IS_DOXYGEN_SINGLE 326aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:160:5: FunctionDecl=isdoxy41:{{.*}} isdoxy41 IS_DOXYGEN_SINGLE 327aab8383aSDmitri Gribenko // CHECK: annotate-comments.cpp:163:7: FieldDecl=isdoxy42:{{.*}} isdoxy42 IS_DOXYGEN_SINGLE 3285188c4b9SDmitri Gribenko // CHECK: annotate-comments.cpp:176:6: FunctionDecl=isdoxy43:{{.*}} IS_DOXYGEN_START{{.*}} IS_DOXYGEN_END 3295188c4b9SDmitri Gribenko 3300743f946SDmitri Gribenko // CHECK: annotate-comments.cpp:185:6: FunctionDecl=isdoxy44:{{.*}} BriefComment=[IS_DOXYGEN_START Aaa bbb ccc.] 3310743f946SDmitri Gribenko // CHECK: annotate-comments.cpp:195:6: FunctionDecl=isdoxy45:{{.*}} BriefComment=[Ddd eee. Fff.] 3323e242d6dSDmitri Gribenko // CHECK: annotate-comments.cpp:205:6: FunctionDecl=isdoxy46:{{.*}} BriefComment=[Ddd eee. Fff.] 3333e242d6dSDmitri Gribenko // CHECK: annotate-comments.cpp:214:6: FunctionDecl=isdoxy48:{{.*}} BriefComment=[IS_DOXYGEN_START Aaa bbb] 33477369eeaSDmitri Gribenko // CHECK: annotate-comments.cpp:218:6: FunctionDecl=isdoxy49:{{.*}} BriefComment=[IS_DOXYGEN_START Aaa] 33577369eeaSDmitri Gribenko // CHECK: annotate-comments.cpp:222:6: FunctionDecl=isdoxy50:{{.*}} BriefComment=[Returns ddd IS_DOXYGEN_END] 33675eea899SDmitri Gribenko // CHECK: annotate-comments.cpp:231:6: FunctionDecl=isdoxy51:{{.*}} BriefComment=[Aaa. IS_DOXYGEN_START] 33775eea899SDmitri Gribenko // CHECK: annotate-comments.cpp:241:6: FunctionDecl=isdoxy52:{{.*}} BriefComment=[Aaa. IS_DOXYGEN_START Bbb.] 338b534d3a0SArgyrios Kyrtzidis // CHECK: annotate-comments.cpp:248:6: FunctionDecl=isdoxy53:{{.*}} BriefComment=[Aaa. IS_DOXYGEN_START IS_DOXYGEN_END] 339b534d3a0SArgyrios Kyrtzidis // CHECK: annotate-comments.cpp:255:6: FunctionDecl=isdoxy54:{{.*}} BriefComment=[Aaa. IS_DOXYGEN_START IS_DOXYGEN_END] 340