> -----Original Message-----
> From: Laszlo Ersek <ler...@redhat.com>
> Sent: Wednesday, September 18, 2019 1:42 AM
> To: Andrew Fish <af...@apple.com>; Ni, Ray
> <ray...@intel.com>
> Cc: devel@edk2.groups.io; Achin Gupta
> <achin.gu...@arm.com>; Anthony Perard
> <anthony.per...@citrix.com>; Ard Biesheuvel
> <ard.biesheu...@linaro.org>; You, Benjamin
> <benjamin....@intel.com>; Zhang, Chao B
> <chao.b.zh...@intel.com>; Bi, Dandan
> <dandan...@intel.com>; David Woodhouse
> <dw...@infradead.org>; Dong, Eric
> <eric.d...@intel.com>; Dong, Guo <guo.d...@intel.com>;
> Wu, Hao A <hao.a...@intel.com>; Carsey, Jaben
> <jaben.car...@intel.com>; Wang, Jian J
> <jian.j.w...@intel.com>; Wu, Jiaxin
> <jiaxin...@intel.com>; Yao, Jiewen
> <jiewen....@intel.com>; Justen, Jordan L
> <jordan.l.jus...@intel.com>; Julien Grall
> <julien.gr...@arm.com>; Leif Lindholm
> <leif.lindh...@linaro.org>; Gao, Liming
> <liming....@intel.com>; Ma, Maurice
> <maurice...@intel.com>; Kinney, Michael D
> <michael.d.kin...@intel.com>; Fu, Siyuan
> <siyuan...@intel.com>; Supreeth Venkatesh
> <supreeth.venkat...@arm.com>; Gao, Zhichao
> <zhichao....@intel.com>
> Subject: Re: [edk2-devel] [PATCH 01/35] DO NOT APPLY:
> edk2: turn standard handle types into pointers to non-
> VOID
> 
> On 09/17/19 22:22, Andrew Fish wrote:
> >
> >
> >> On Sep 17, 2019, at 1:06 PM, Ni, Ray
> <ray...@intel.com> wrote:
> >>
> >> Laszlo,
> >> Thank you very much for this work.
> >> They are quite helpful to detect potential issues.
> >>
> >> But without this specific patch being checked in,
> future break will still happen.
> >> I don't want it to be checked in ASAP because I know
> that there are quite a lot of close source code that
> may get build break due to this change.
> >> Besides that, what prevent you make the decision to
> check in the changes?
> >>
> >
> > Ray,
> >
> > I was thinking the same thing. Could we make this an
> optional feature via a #define? We could always default
> to the Spec Behavior, and new projects could opt into
> the stricter version.
> >
> > #ifndef STRICTER_UEFI_TYPES
> > typedef VOID    *EFI_PEI_FV_HANDLE;
> > #else
> > struct EFI_PEI_FV_OBJECT;
> > typedef struct EFI_PEI_FV_OBJECT *EFI_PEI_FV_HANDLE;
> #endif
> 
> Technically, this would work well.
> 
> However, if we wanted to allow new projects to #define
> STRICTER_UEFI_TYPES as their normal mode of operation
> (and not just for a sanity check in CI), then we'd have
> to update the UEFI spec too.
> 
> Otherwise, code that is technically spec-conformant
> (albeit semantically nonsensical), like I mentioned up-
> thread, would no longer compile:
> 
>   EFI_HANDLE Foobar;
>   UINT64     Val;
> 
>   Foobar = &Val;

Does this example build without warnings on all compilers.
I thought we usually have to add some typecasts:

   Foobar = (EFI_HANDLE)&Val;

Or

   Foobar = (EFI_HANDLE)(UINTN)&Val;

For examples like this, adding an explicit typecast would be an
improvement.  So finding and reviewing and fixing these would be
a good improvement.

> 
> Thanks
> Laszlo

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#47482): https://edk2.groups.io/g/devel/message/47482
Mute This Topic: https://groups.io/mt/34180199/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to