And YES I have a port with multiple pointer sizes, and YES the
customer wanted both sizes supported in a single compilation unit
This is actually not that uncommon.
Oh, and sometimes gcc randomly uses pointer_mode instead of Pmode. I
haven't a clue why there's a difference, or how badly gcc would break
if pointer_mode and Pmode were different. Ok, I lied, I *do* know how
badly it breaks if they differ; I did try that at one point.
There have been a number of ports where these differ. Though undoubtably
there are bugs in this support, it does basically work.