<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/146805>146805</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang-tidy] Check request: performance-incorrect-move-with-smart-pointer-cast
</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>
Need a check that will find incorrect usage of `std::move` with smart pointer casts (e.g., `std::static_pointer_cast`, `std::dynamic_pointer_cast`, their `boost` analogues, etc).
BEFORE:
```
std::shared_ptr<B> b = std::move(std::dynamic_pointer_cast<B>(a));
```
AFTER:
```
std::shared_ptr<B> b = std::dynamic_pointer_cast<B>(std::move(a));
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJykkk2PnDwQhH9Nc7FAxubzwIH54Pi-0ir3kTENODF4YptZTX59ZHaUzY6SvUSyhISr3NWlRzinphWxgfwA-SkSm5-NbQZcfxjLKI16M9yb_xAHIoicUX4jfhaevCqtyajWgRC1SmMtSk82JyYkZiRQUOcH4C3wdjE3hIKSV-Vn4hZhPbkatXq0RArnHQFWYTIlwI4ffM4Lr-Tlob0ELRT0WTXcV7H8WeZnVDaIe2P2n0SsQptpQxeu0UtgdQK0Bdoezt3_L-fwJG2D_e3Q9j3NLCwOl6u3wI8H4GfSE-An8nFNVn0e7M0KrBLA6nD44Wkg0Lbtvpxf_iXK56OfE_81SjQ0fKh5LSJs0jJPc8opraO5QclGUY4pFbzqq77MyrrI-6HspczGVNJINYyynJbBwIusTniaY5r3KeOY5VXBIaO4CKUTrW9LYuwUKec2bNKsqGgeadGjdjuSjEkt1in2argDYwFR2wRX3G-Tg4xq5bx7f8crr3eYf7PlJ3LcybX4fcPQRUuuaEdjF7FKjH8BHIdK4gBqvIMaPxqMQ4PRZnUze391oT7WAesm5eetT6RZgHUhwuMTX635itID6_a9HLDusdqtYT8DAAD__-pjDgo">