On Thu, Dec 1, 2022 at 12:26 AM Segher Boessenkool <seg...@kernel.crashing.org> wrote: > > Hi! > > On Wed, Nov 30, 2022 at 03:16:25PM -0300, Adhemerval Zanella via Gcc-patches > wrote: > > clang by default rejects the input casts with: > > > > error: invalid use of a cast in a inline asm context requiring an > > lvalue: remove the cast or build with -fheinous-gnu-extensions > > > > And even with -fheinous-gnu-extensions clang still throws an warning > > and also states that this option might be removed in the future. > > For gcc the cast are still useful somewhat [1], so just remove it > > clang is used. > > This is one of the things in inline asm that is tightly tied to GCC > internals. You should emulate GCC's behaviour faithfully if you want > to claim you implement the inline asm GNU C extension.
I understand that the casts should be no-ops on the asm side (maybe they change the sign) and they are present as type-checking. Can we implement this type-checking in a different (portable) way? I think the macro you use should be named like __asm_output_check_type (..) or so to indicate the intended purpose. Richard. > > --- a/include/ChangeLog > > +++ b/include/ChangeLog > > That should not be part of the patch? Changelog entries should be > verbatim in the message you send. > > The size of this patch already makes clear this is a bad idea, imo. > This code is already hard enough to read. > > > Segher