[clang] [clang] add transformer range selector for spelled ranges (PR #177442)
Yitzhak Mandelbaum via cfe-commits
cfe-commits at lists.llvm.org
Tue Jan 27 08:16:26 PST 2026
================
@@ -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
More information about the cfe-commits
mailing list