// Run lines are sensitive to line numbers and come below the code. /// Greeting count. #define HELLO 1 #define BARE 2 /** * \brief Add two numbers. */ #define SUM(x, y) ((x) + (y)) #define TRAILING 3 ///< Trailing macro doc. /// First definition. #define REDEF 1 #undef REDEF /// Second definition. #define REDEF 2 // RUN: c-index-test -test-load-source all %s | FileCheck %s // Documented object-like macro picks up the preceding `///` comment. // CHECK: annotate-comments-macros.c:4:9: macro definition=HELLO RawComment=[/// Greeting count.] RawCommentRange=[3:1 - 3:20] BriefComment=[Greeting count.] // A macro without any preceding doc comment must not have a RawComment. // CHECK: annotate-comments-macros.c:6:9: macro definition=BARE Extent= // Function-like macros are documented just like object-like ones. // CHECK: annotate-comments-macros.c:11:9: macro definition=SUM RawComment=[/**\n * \brief Add two numbers.\n */] RawCommentRange=[8:1 - 10:4] BriefComment=[Add two numbers.] // Trailing `///<` comments attach to macros, mirroring fields/enumerators. // CHECK: annotate-comments-macros.c:13:9: macro definition=TRAILING RawComment=[///< Trailing macro doc.] RawCommentRange=[13:20 - 13:44] BriefComment=[Trailing macro doc.] // Each redefinition of a macro carries its own preceding doc comment. // CHECK: annotate-comments-macros.c:16:9: macro definition=REDEF RawComment=[/// First definition.] RawCommentRange=[15:1 - 15:22] BriefComment=[First definition.] // CHECK: annotate-comments-macros.c:19:9: macro definition=REDEF RawComment=[/// Second definition.] RawCommentRange=[18:1 - 18:23] BriefComment=[Second definition.]