In asan on Windows 64-bit, this is one of the broken things that makes allocation fail. "UL" is 32-bit and shift by 40 will make the value overflow and become 0.
lgtm
landing...