When would "right shift [be] undefined"?
When 64 halvings have occurred. You can't shift a 64-bit number (nSubsidy) more than 64 times:
You can do a left shift greater than or equal to 64-bits by doing exactly what you're doing.
This, of course, won't result in anything usable (either the original value, zero, or something else), and is undefined behavior, so don't do it.
reply