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?

Reply via email to