================
@@ -924,6 +919,27 @@ TEST(RangeSelectorTest, ExpansionOpPartial) {
HasValue("BADDECL(x * x)"));
}
+TEST(RangeSelectorTest, SpelledFullyInMacro) {
+ StringRef Code = R"cc(
+ #define MACRO int i;
+ MACRO
+ )cc";
+ const char *ID = "id";
+ TestMatch Match = matchCode(Code, varDecl().bind(ID));
+ EXPECT_THAT_EXPECTED(select(spelled(node(ID)), Match), HasValue("int i"));
+}
+
+TEST(RangeSelectorTest, SpelledWithArgumentInMacro) {
+ StringRef Code = R"cc(
+ #define MACRO(T) void foo(T t);
+ MACRO(int)
+ )cc";
+ const char *ID = "id";
+ TestMatch Match = matchCode(Code, functionDecl().bind(ID));
+ EXPECT_THAT_EXPECTED(select(spelled(node(ID)), Match),
+ HasValue("void foo(T t)"));
+}
+
----------------
ymand wrote:
Please add a test for behavior when the node starts in macro but isn't fully
includes, same for ends, and starts + ends in different macros.
https://github.com/llvm/llvm-project/pull/177442
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits