FWIW - usually when interfacing with foreign code like that you match what the foreign code's types than convert it afterwards. Then add an assert [sizeof(t1) >= sizeof(int)] or better a static_assert.
The intent isn't to make your code bullet-proof. It's to move towards a subset of the language with well-defined semantics.
Any safety critical coding standard work I've done always had a waiver process for both MISRA and mccabe-like complexity requirements - the intent is there's always some point where there is diminish returns for compliance.