Marvin:
  My concern is that the fix is an incompatible change. It requires to modify 
library API. In fact, this is an undefined behavior. But, current compiler (VS, 
GCC and Clang) makes it work.  So, I prefer to keep the code as-is, and disable 
this warning first. If you find any real issue, we can return back and figure 
out the solution. 

Thanks
Liming
>-----Original Message-----
>From: edk2-devel [mailto:[email protected]] On Behalf Of
>Marvin H?user
>Sent: Friday, September 22, 2017 11:53 PM
>To: [email protected]
>Cc: Gao, Liming <[email protected]>
>Subject: Re: [edk2] [PATCH] BaseTools/Conf: Support LLVM39 and LLVM40 in
>CLANG38 toolchain
>
>Hey,
>
>I just noticed this patch as it recently has been pushed. I found this has 
>been a
>reaction to https://bugzilla.tianocore.org/show_bug.cgi?id=410
>Though as Clang correctly detected, this is Undefined Behavior per the C
>specification, so why was the warning hidden?
>In context of the issue in UefiLib, providing the first element of the VA list 
>as a
>prototyped argument, would have solved the issue without UB.
>
>Do you wish such a patch?
>
>Thanks,
>Marvin.
>
>> -----Original Message-----
>> From: edk2-devel [mailto:[email protected]] On Behalf Of
>> Gao, Liming
>> Sent: Monday, August 28, 2017 9:19 AM
>> To: Shi, Steven <[email protected]>; [email protected]
>> Subject: Re: [edk2] [PATCH] BaseTools/Conf: Support LLVM39 and LLVM40
>in
>> CLANG38 toolchain
>>
>> Reviewed-by: Liming Gao <[email protected]>
>>
>> >-----Original Message-----
>> >From: Shi, Steven
>> >Sent: Wednesday, August 23, 2017 3:01 PM
>> >To: [email protected]; Gao, Liming <[email protected]>
>> >Cc: Zhu, Yonghong <[email protected]>; Shi, Steven
>> ><[email protected]>
>> >Subject: [PATCH] BaseTools/Conf: Support LLVM39 and LLVM40 in
>CLANG38
>> >toolchain
>> >
>> >From: "Shi, Steven" <[email protected]>
>> >
>> >Add LLVM39 and LLVM40 support in CLANG38 toolchain
>> >
>> >Contributed-under: TianoCore Contribution Agreement 1.0
>> >Signed-off-by: Steven Shi <[email protected]>
>> >---
>> > BaseTools/Conf/tools_def.template | 5 +++--
>> > 1 file changed, 3 insertions(+), 2 deletions(-)
>> >
>> >diff --git a/BaseTools/Conf/tools_def.template
>> >b/BaseTools/Conf/tools_def.template
>> >index 1fa3ca3..2f83341 100755
>> >--- a/BaseTools/Conf/tools_def.template
>> >+++ b/BaseTools/Conf/tools_def.template
>> >@@ -380,7 +380,8 @@ DEFINE SOURCERY_CYGWIN_TOOLS =
>> /cygdrive/c/Program
>> >Files/CodeSourcery/Sourcery G
>> > #                               Intel(r) ACPI Compiler from
>> > #                               https://acpica.org/downloads
>> > #   CLANG38  -Linux-  Requires:
>> >-#                             Clang v3.8 or later, LLVMgold plugin and GNU 
>> >binutils 2.26
>> >targeting x86_64-linux-gnu
>> >+#                             Clang v3.8, LLVMgold plugin and GNU binutils 
>> >2.26
>> targeting
>> >x86_64-linux-gnu
>> >+#                             Clang v3.9 or later, LLVMgold plugin and GNU 
>> >binutils 2.28
>> >targeting x86_64-linux-gnu
>> > #                        Optional:
>> > #                             Required to build platforms or ACPI tables:
>> > #                               Intel(r) ACPI Compiler from
>> >@@ -5512,7 +5513,7 @@ DEFINE CLANG38_X64_PREFIX           =
>> >ENV(CLANG38_BIN)
>> > DEFINE CLANG38_IA32_TARGET          = -target i686-pc-linux-gnu
>> > DEFINE CLANG38_X64_TARGET           = -target x86_64-pc-linux-gnu
>> >
>> >-DEFINE CLANG38_ALL_CC_FLAGS         = DEF(GCC44_ALL_CC_FLAGS) -
>Wno-
>> >empty-body -fno-stack-protector -mms-bitfields -Wno-address -Wno-
>shift-
>> >negative-value -Wno-parentheses-equality -Wno-unknown-pragmas -
>> Wno-
>> >tautological-constant-out-of-range-compare -Wno-incompatible-library-
>> >redeclaration -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -
>> msoft-
>> >float -mno-implicit-float  -ftrap-
>> >function=undefined_behavior_has_been_optimized_away_by_clang -
>> >funsigned-char -fno-ms-extensions -Wno-null-dereference -Wno-
>> >tautological-compare -Wno-unknown-warning-option
>> >+DEFINE CLANG38_ALL_CC_FLAGS         = DEF(GCC44_ALL_CC_FLAGS) -
>> Wno-
>> >empty-body -fno-stack-protector -mms-bitfields -Wno-address -Wno-
>shift-
>> >negative-value -Wno-parentheses-equality -Wno-unknown-pragmas -
>> Wno-
>> >tautological-constant-out-of-range-compare -Wno-incompatible-library-
>> >redeclaration -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -
>> msoft-
>> >float -mno-implicit-float  -ftrap-
>> >function=undefined_behavior_has_been_optimized_away_by_clang -
>> >funsigned-char -fno-ms-extensions -Wno-null-dereference -Wno-
>> >tautological-compare -Wno-unknown-warning-option -Wno-varargs
>> >
>> > ###########################
>> > # CLANG38 IA32 definitions
>> >--
>> >2.7.4
>>
>> _______________________________________________
>> edk2-devel mailing list
>> [email protected]
>> https://lists.01.org/mailman/listinfo/edk2-devel
>_______________________________________________
>edk2-devel mailing list
>[email protected]
>https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to