On Tue, Sep 22, 2026 at 2:01 AM Richard Biener <[email protected]> wrote: > > On Tue, Sep 22, 2026 at 2:12 AM Matt Turner <[email protected]> wrote: > > > > Using a cast as an lvalue is a GCC extension that clang does not > > implement. Clang rejects the casts on asm output operands in > > longlong.h with -Winvalid-gnu-asm-cast, which is an error by default. > > > > GCC accepts such a cast only if the conversion is a no-op, which > > catches outputs of the wrong type, and we want to keep that check. > > Wrap each output cast in a new macro, __ll_check_output, which expands > > to the cast with GCC and to the bare operand with clang: > > > > : "=r" __ll_check_output (USItype, sh), > > > > With GCC the macro expands to the same cast as before. With clang, > > the i386 block, the x86_64 and sparc64 blocks for W_TYPE_SIZE 64, and > > the arm blocks (as C) now build. > > I can live with this, so OK from my side - please give others the chance > to comment. >
No further comments in more than a week. Okay to go in?
