TWeaver added a comment.

Hello all,

First of all, thank you so much for your reviews, comments and time.

Secondly, I apologise for the late reply.

I've be thinking about your statements and I have to somewhat agree. This 
doesn't catch undefined behaviour, at least by its self. It may help catch 
undefined behaviour as a result of 'bad-code', but it's not going to catch UB 
as a result of the cast in every case. The clang-tidy checks are fine but they 
don't actually drill down to the functionality I'm looking for, aka, "this 
functional cast is a reinterpret_cast - beware!" (missing from this patch is a 
suggestion to write 'reinterpret_cast<T>(...)' instead).

Also, I'm aware that there's a warning for picking up old style c casts in the 
compiler, enabled by providing '-Wold-style-cast' on the command line. Are old 
style c casts not also language features? If that's the case why is its 
diagnostic embedded in the compiler and not in clang-tidy?

I ask this because there's an argument to be made that C++ style functional 
casts are just as dangerous as old-style casts. They can produce reinterpret 
casts when used in the right (or wrong) context. Would it be possible to at 
least add a diagnostic for detecting any functional style casts instead?

$ clang.exe .\old-style-test.cpp -Wold-style-cast
.\old-style-test.cpp:3:11: warning: use of old-style cast [-Wold-style-cast]

  int y = (double)x;
          ^  

Thanks again for your time


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D136156/new/

https://reviews.llvm.org/D136156

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to