Re: [PATCH 05/10] efi/libstub: distinguish between native/mixed not 32/64 bit

From: Arvind Sankar
Date: Sat Dec 14 2019 - 17:14:25 EST


On Sat, Dec 14, 2019 at 09:30:08PM +0000, Ard Biesheuvel wrote:
> On Sat, 14 Dec 2019 at 22:17, Arvind Sankar <nivedita@xxxxxxxxxxxx> wrote:
> >
> > Maybe just do
> > if (sizeof(at) < sizeof(__ret))
> > __ret = (__typeof__(__ret))(uintptr_t)at;
> > else
> > __ret = (__typeof__(__ret))at;
> > That should cover most of the cases.
>
> But the compiler will still be unhappy about the else clause if __ret
> is a pointer type, since we'll be casting an u32 to a pointer,

Ugh, yeah it complains even though it can tell at compile time that that
branch isn't taken.