I wrote a Clang warning [not pictured] to diagnose any use of T(x) which was not equivalent to static_cast<T>(x). Then I built Clang with that warning turned on. Here are all of the instances of "unsafe" T(x) that it identified in the codebase. Every single one is a cast from some pointer type to uintptr_t.
N.B.: The code in llvm/IR/SymbolTableListTraits.h looks absolutely crazy, and this will be the first time it's been touched in over a decade.
Nit: I think you can fold these two string literals together. Not sure why they were separate before.