Re: [PATCH] genksyms: Teach parser about 128-bit built-in types

From: Will Deacon
Date: Tue Jun 18 2019 - 12:26:09 EST


Hi Arnd,

On Tue, Jun 18, 2019 at 04:17:35PM +0200, Arnd Bergmann wrote:
> On Tue, Jun 18, 2019 at 3:10 PM Will Deacon <will.deacon@xxxxxxx> wrote:
> >
> > + { "__int128", BUILTIN_INT_KEYW },
> > + { "__int128_t", BUILTIN_INT_KEYW },
> > + { "__uint128_t", BUILTIN_INT_KEYW },
>
> I wonder if it's safe to treat them as the same type, since
> __int128_t and __uint128_t differ in signedness.
>
> If someone exports a symbol with one and changes it to the other, they
> would appear to be the same type.

My understanding is that the actual CRC generation for normal symbols is
based purely on the string-representation of the function signature, and
so the underlying type information isn't relevant to that. I can also
confirm that the CRC for an exported symbol that returns a __uint128_t
is not the same if you change it to return a __int128_t instead.

Will