Clang marks calls to operator new as heap allocation sites, but the
operator declared at global scope returns void. There is no explicit
cast in the code, so the compiler has to write down the allocated type
itself.
Also generalize a cast to use CallBase, so that we mark heap alloc sites
when exceptions are enabled.