If 'int' does not match the register size of the machine then that is a defect in the compiler and is your warning sign to stop using it because there will be worse problems coming.
So, any and every compiler on an ARM processor, inc which register sizes can change depending on thumb?
Every SPARC compiler, in which the register sizes can vary up to 128 bits but addressable memory was always in 32-bit quantities?
IBM 370 with its 192-bit registers but variable-size memory addressing scheme?
What exactly is the size of a register on x86 anyway? Is it the size of the A/B/C/D regs, or the AX/BX. or the EAX, and do you include the segment registers? Should you really have all ints fixed at 8/16/32/64 bits (pick your register) even though your address bus is limited to 24/32/48 bits (depending on processor)?
I dunno, sounds complex to me and a simplistic solution might just not apply.