MythreyaK wrote:

I think I'm seeing a bug. For this snippet, 

```cpp

template <typename T>
struct S1 {
  int a;
  int b;
  T* ptr;
};

struct S2 : S1<S2> {
  int c;
  int d;
  S1<S1> mem;
};
S2 s2 ({0, 0}, 0, 0);
S2 s2 ({$a[[0]], $b[[0]]}, $c[[0]], $d[[0]]);
```

source range for mem is 

```
------- FieldDecl 1 -------
FIELD: : RecordFields ----- 
(/llvm-project/clang-tools-extra/clangd/InlayHints.cpp:746)
FieldDecl 0x2233ae10 </clangd-test/TestTU.cpp:10:3, col:7> col:7 c 'int'
--- InitExpr 1 source range ---
 </clangd-test/TestTU.cpp:14:16>
/clangd-test/TestTU.cpp:14:16
/clangd-test/TestTU.cpp:14:16
------------ END ------------

------- FieldDecl 2 -------------------------
FIELD: : RecordFields ----- 
(/llvm-project/clang-tools-extra/clangd/InlayHints.cpp:746)
FieldDecl 0x2233ae80 </clangd-test/TestTU.cpp:11:3, col:7> col:7 d 'int'
--- InitExpr 2 source range ---
 </clangd-test/TestTU.cpp:14:19>
/clangd-test/TestTU.cpp:14:19
/clangd-test/TestTU.cpp:14:19
------------ END ------------

------- FieldDecl 3 -------------------------
FIELD: : RecordFields ----- 
(/llvm-project/clang-tools-extra/clangd/InlayHints.cpp:746)
FieldDecl 0x223aaff8 </clangd-test/TestTU.cpp:12:3, col:10> col:10 mem 
'S1<S1<S2>>'
--- InitExpr 3 source range ---
 </clangd-test/TestTU.cpp:14:4>
/clangd-test/TestTU.cpp:14:4    // <------ source range seems incorrect?
/clangd-test/TestTU.cpp:14:4    // <------ source range seems incorrect?
------------ END ------------
```

https://github.com/llvm/llvm-project/pull/170642
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to