<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/62746>62746</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang-tidy] `llvmlibc-inline-function-decl` erroneously reports on nested templates
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang-tidy
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
jhuber6
</td>
</tr>
</table>
<pre>
The `llvmlibc-inline-function-decl` check currently reports erroneously on nested template parameters. Here is a reproducer.
```c++
#define LIBC_INLINE inline
namespace __llvm_libc {
template <typename T> struct S {
template <typename U> void foo();
};
template <typename T> template <typename U> LIBC_INLINE void S<T>::foo() {}
} // namespace __llvm_libc
```
```
$> clang-tidy test.h --checks=-'*,llvmlibc*'
2 warnings generated.
/home/jhuber/Documents/llvm/llvm-project/build/test.h:9:1: warning: 'foo' must be tagged with the LIBC_INLINE macro; the macro should be placed at the beginning of the declaration [llvmlibc-inline-function-decl]
template <typename T> template <typename U> LIBC_INLINE void S<T>::foo() {}
^
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8VE2P4zYM_TX0hUjgUP5IDj4kkwk6wGIvuz0PZJm2tZWlQJJ3kX9fyNlM0ulO21MBI9EHyUdSj0-GoAfL3EB5gPKYyTmOzjffxrllX2Wt6y7N15ERqtyY75PRrVppa7TlVT9bFbWzq46VgSpHNbL6A9XsPdtoLuj57HwMyN47y24O5oLoLFoOkTuMPJ2NjIxn6eXEkX1Y42_sGXVAmby962bFfg35EfI9VPn1U0CH9F1PSXTca8v46eXw9Pry-dPL52e8pvjTYvm1cuJwlorx9TVV8ppKQagPj0ZvKYF4ipczJyf8CuIZQ_Szivjl7oH4S-vfk_V3pzvsnQPaAu1A3EDq4339L4AfB3-scwH6AuIp-YDYg9i_wS6p1sc3aAQ6AZ3wl5141-LHHN8fUpGyUEbaYRV1d8HIIa5HXK0WAgQQxxVQDbQHerqRZtnV1wiEP6S32g4BB7bsZeTu9sZ0Gt3EQKcrA4FOR6fmiW0MQKcU7eff6uzdN1YR6NTO2nRAp2seIPY7EPsNiP0NJy2B6qUzNU5ziNgyRjkM3OEPHUeM41_5M0nlHYjDcrFsMIxuNl1yPBupuEMZl9uWB20TCrp-OUjjIL1Mo4FQHv55bMrj_02E8vnds2ZdI7qd2MmMm021LagSeVFkY7Oru5ZKKkn0u1r1xH2hNoXa7Kq6qqjuM91QTiIvN9VmW-ZFsS43fbXbFtR29ZZaVUOR8yS1WacmrJ0fMh3CzE1FdVFlRrZswqI8RHc-AVFSIt8sz9zOQ4AiNzrEcA8TdTSLZj24lcf_pFKPanRTqL-LUshmb5oxxnNI3VwmZ9BxnNu1ctOHVFzKS0xdKvwzAAD__1jeqxc">