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)

Reply via email to