<div dir="auto"><div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Sometimes ignoring the attribute and performing zeroext ourselves is a workaround for ABI mismatch.<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Yes, that's precisely the point of this change -- as discussed already! Clang has been putting zeroext on all C functions taking 8/16 bit types, incorrectly, for it's entire existence.</div><div dir="auto"><br></div><div dir="auto">And, thus, now we must extend redundantly on both sides of the call, for external functions.</div><div dir="auto"><br></div><div dir="auto">We must extend in the caller to support calling old-clang code (which didn't extend in callee). We must extend in the callee to support being called by non-clang compilers (which don't always extend in the caller).</div><div dir="auto"><br></div></div>