I choose to disable this warning first, because there are other cases in edk2 
project. One is PI S3SaveState protocol EFI_S3_SAVE_STATE_WRITE API. This case 
needs to update PI spec. It may take more time. 

typedef
EFI_STATUS
(EFIAPI *EFI_S3_SAVE_STATE_WRITE)(
   IN CONST EFI_S3_SAVE_STATE_PROTOCOL  *This,
   IN       UINT16                      OpCode,
   ...
);

Thanks
Liming
> -----Original Message-----
> From: Zenith432 [mailto:zenith...@users.sourceforge.net]
> Sent: Sunday, December 10, 2017 5:33 AM
> To: edk2-devel@lists.01.org; Marvin Häuser <marvin.haeu...@outlook.com>
> Cc: Kinney, Michael D <michael.d.kin...@intel.com>; Gao, Liming 
> <liming....@intel.com>
> Subject: RE: [edk2] [PATCH] MdePkg: resolve bug 741
> 
> It's the package maintainer's choice.  As a practical matter, silencing the 
> warning also works because...
> 
> 1. clang is the only compiler that complains.  Even though it complains, it 
> generates correct code because it has __builtin
> implementation of va_start that takes register argument and stack granularity 
> into account.
> 2. In MdePkg/Include/Base.h there are __builtin implementations of VA_START 
> for __CC_ARM, GCC and clang which should all work
> despite the argument promotion.
> 3. For the other architectures (i.e. Windows) there's an implementation of 
> VA_START in Base.h that uses _INT_SIZE_OF for the
> parameter always a multiple of UINTN.  The Windows compilers also have 
> builtin forms of va_start, but this non-builtin
> implementation looks ok for all arguments actually passed as variadic in EDK2.
> 
> --------------------------------------------
> On Sat, 12/9/17, Marvin Häuser <marvin.haeu...@outlook.com> wrote:
> 
> ...
> It's your choice of course.
> ...
> 
>  Regards,
>  Marvin.
> 
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to