================ @@ -0,0 +1,32 @@ +.. title:: clang-tidy - bugprone-casting-through-void + +bugprone-casting-through-void +============================= + +A check detects unsafe or redundant two-step casting operations involving ``void*``. + +Two-step type conversions via void* are discouraged for several reasons. + +1. They obscure code and impede its understandability, complicating maintenance. +2. These conversions bypass valuable compiler support, erasing warnings related + to pointer alignment. It may violate strict aliasing rule and leading to + undefined behavior. +3. In scenarios involving multiple inheritance, ambiguity and unexpected outcomes + can arise due to the loss of type information, posing runtime issues. + +In summary, avoiding two-step type conversions through void* ensures clearer code, +maintains essential compiler warnings, and prevents ambiguity and potential runtime +errors, particularly in complex inheritance scenarios. + +Examples: + +.. code-block:: c++ ---------------- PiotrZSL wrote:
add new line after code-block https://github.com/llvm/llvm-project/pull/69465 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits