VHDL constant intermediate calculation
VHDL only guarantees a minimum of 32 bits to represent a (signed) integer. Trying to cram a 34-bit unsigned value into it, even as an intermediate value, is just asking for trouble.

You were careless and got bit. Get over it.