I suspect the author of the hash function thought this wouldn't add more than 4 bits: h = (h But as one should know, two n-bit numbers can create an n+1-bit result when added due to carry.
I added this sentence to the article, hopefully making it clearer:
> If h is in the range [0x0fffff01,0x0fffffff] in the previous iteration, shifting it by 4 and adding *name may make h larger than UINT32_MAX.