diff options
Diffstat (limited to 'clang/unittests/Tooling/RangeSelectorTest.cpp')
| -rw-r--r-- | clang/unittests/Tooling/RangeSelectorTest.cpp | 25 | 
1 files changed, 25 insertions, 0 deletions
| diff --git a/clang/unittests/Tooling/RangeSelectorTest.cpp b/clang/unittests/Tooling/RangeSelectorTest.cpp index adf5e74..a1fcbb0 100644 --- a/clang/unittests/Tooling/RangeSelectorTest.cpp +++ b/clang/unittests/Tooling/RangeSelectorTest.cpp @@ -527,6 +527,31 @@ TEST(RangeSelectorTest, NameOpDeclRefError) {            AllOf(HasSubstr(Ref), HasSubstr("requires property 'identifier'")))));  } +TEST(RangeSelectorTest, NameOpDeclInMacroArg) { +  StringRef Code = R"cc( +  #define MACRO(name) int name; +  MACRO(x) +  )cc"; +  const char *ID = "id"; +  TestMatch Match = matchCode(Code, varDecl().bind(ID)); +  EXPECT_THAT_EXPECTED(select(name(ID), Match), HasValue("x")); +} + +TEST(RangeSelectorTest, NameOpDeclInMacroBodyError) { +  StringRef Code = R"cc( +  #define MACRO int x; +  MACRO +  )cc"; +  const char *ID = "id"; +  TestMatch Match = matchCode(Code, varDecl().bind(ID)); +  EXPECT_THAT_EXPECTED( +      name(ID)(Match.Result), +      Failed<StringError>(testing::Property( +          &StringError::getMessage, +          AllOf(HasSubstr("range selected by name(node id="), +                HasSubstr("' is different from decl name 'x'"))))); +} +  TEST(RangeSelectorTest, CallArgsOp) {    const StringRef Code = R"cc(      struct C { | 
