On Wed, Sep 30, 2026 at 10:45 PM Matt Turner <[email protected]> wrote: > > 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?
OK for this (3/4)
