René Scharfe <l.s.r@xxxxxx> writes: > Ah, right, __builtin_types_compatible_p returns 0 in this case and an > assignment is silently allowed. Thanks. There is another thing I forgot to mention. I think the side that can use __builtin_types_compatible_p() can lose the assignment check (what I wrote had the GCC extension in addition to the assignment check instead), i.e. the assignment check from your original patch can be considered as a fallback position for compilers without the GCC extension.