<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/143329>143329</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang-tidy] Check request: bugprone-unreached-function-overload
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang-tidy
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
denzor200
</td>
</tr>
</table>
<pre>
```
template<typename T>
void foo(T x) { std::cout << "Template: " << x << "\n"; }
int main() {
foo(42); // OK: `Template: 42`
foo("hello"); // BAD: `Template: hello` (`const char*: hello` expected)
}
// defined after it's being used
void foo(const char* s) { std::cout << "const char*: " << s << "\n"; }
```
Possible fix is to declare `foo(const char* s)` before `main` function.
Another fix is to move `foo(const char* s)` definition before `main` function.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyEU02P6ygQ_DXtC0pEGtuJDz6QZHPZw-5h_gCGdswugTzAUeb9-ic7npmM3sdYlhCiq4qqplVK9uyJWqj2UB0LNeYhxNaQ_x4icl50wby2UPPl5zLT5epUJhCH_Holry7EXkD8BVzegjWsDwFw98LugA2D7Z6lbEBIEFKHMTMQBxAHBogv70Ry2r6d3J9KoDr4aRF7BtsjcAlcWp_ZRVkPuFsUgEvG2CJcImAzAeYP8AR4Yv_8PYvU_FmzxIehDywgDuRcmCQfJAt-L4-_IHjU1pxN0Jrr4FNmelARUH46p_uVdCYzkXL57mQhN9RbT4apPlNkNgNuE-vI-jMbE5nPuX4SYemrjH-601PQ6Y9BP3UcuPw3pGQ7R6y3d2YTy4EZ0k5FmkL53dUm7x314VE1N63mrB-9zjb4NXApfcgDxSfaS7h9yTknZieOL-gL0wrTiEYV1G62ZVPithJYDG1Ppt40XO9qrLjeGr3bVH3ZdwL7HTccC9six4rXvOGcVwLXXUllXZmmEhVt680OSk4XZd3audtlHeK5sCmN1G5KIbApnOrIpXmqELVT_rzK1rzOUR-L2E6oVTeeE5Tc2ZTTB0-22c3z-ASrjuwwkP6fRfo2UspTK7vxfI3B02r0kZQeyKzevK_CjaILyhRjdO2Q8zVNz2N-b2ebh7Fb63ABPE2iy7K6xvAf6Qx4mp0kwNNi5tbijwAAAP__Uic2xQ">