On 09/14/17 10:50, Zeng, Star wrote: > Is there GCC compiler version fixed this kind of false alarm? > If yes, the lesser versions without fix are what I mean *OLD*.
Unfortunately, I cannot answer your question, for two reasons: - First, I'm unsure what you mean by "lesser version". For example, if gcc-4.8.4 emits a warning incorrectly, but gcc-4.8.5 does not, then I agree we can require users to use gcc-4.8.5. Linux distributions consider this a "stable update" anyway, and will generally ship the version with the higher "patch level". (The version number comes together from <major>.<minor>.<patchlevel>.) However, if the same difference is between gcc-4.7 and gcc-4.8, then the same requirement cannot be made. Distros will not upgrade gcc from one minor version to another in a stable release. - Second, even if I knew how exactly to interpret your question, I can't answer! The way the warnings change in gcc over time is totally impenetrable to the end-user. The data flow analysis is tied to the optimizer AFAICT, and unless you are a gcc developer yourself, the warning changes appear simply as chaos, from release to release. In practice, new releases will stop emitting invalid warnings that earlier releases used to, but the new release may also emit new incorrect warnings. (I.e., it might emit the *same kind* of warning, incorrectly, for a new kind of *context*.) Laszlo > -----Original Message----- > From: Laszlo Ersek [mailto:[email protected]] > Sent: Thursday, September 14, 2017 4:17 PM > To: Zeng, Star <[email protected]>; Ard Biesheuvel > <[email protected]> > Cc: Ni, Ruiyu <[email protected]>; Dong, Eric <[email protected]>; > edk2-devel-01 <[email protected]>; Gao, Liming <[email protected]> > Subject: Re: [edk2] [PATCH 2/2] MdeModulePkg/UdfDxe: suppress incorrect > compiler warning in ReadFile() > > On 09/14/17 02:42, Zeng, Star wrote: >> Comparing adding workaround in code with suppressing it in *OLD* version >> GCCs, I prefer the latter personally. > > But, how old is old? > > The base compiler in RHEL-7 is gcc-4.8. That's what I use every day. > > The base compiler in Debian old-old-stable (still supported), is gcc-4.7 (for > IA32 and X64). > > The base compiler in RHEL-6 (still supported) is gcc-4.4. Is that old? > > Thanks > Laszlo > >> -----Original Message----- >> From: edk2-devel [mailto:[email protected]] On Behalf Of >> Ard Biesheuvel >> Sent: Thursday, September 14, 2017 2:52 AM >> To: Laszlo Ersek <[email protected]> >> Cc: Ni, Ruiyu <[email protected]>; Dong, Eric <[email protected]>; >> edk2-devel-01 <[email protected]>; Gao, Liming >> <[email protected]>; Zeng, Star <[email protected]> >> Subject: Re: [edk2] [PATCH 2/2] MdeModulePkg/UdfDxe: suppress >> incorrect compiler warning in ReadFile() >> >> On 13 September 2017 at 11:49, Laszlo Ersek <[email protected]> wrote: >>> On 09/13/17 08:43, Zeng, Star wrote: >>>> Beyond the Rb (I do not want to block this patch series), I am curious >>>> about one question. >>>> >>>> There may be more this kind of workarounds to fix the build failure. >>>> Is it possible to disable the warning (like below example for VS) for >>>> specific version of GCC for this kind of false alarm? >>>> >>>> >>>> ProcessorBind.h: >>>> #if defined(_MSC_EXTENSIONS) >>>> >>>> ... >>>> >>>> #if _MSC_VER == 1800 || _MSC_VER == 1900 >>>> >>>> // >>>> // Disable these warnings for VS2013. >>>> // >>>> >>>> // >>>> // This warning is for potentially uninitialized local variable, and >>>> it may cause false // positive issues in VS2013 and VS2015 build // >>>> #pragma warning ( disable : 4701 ) >>>> >>>> // >>>> // This warning is for potentially uninitialized local pointer >>>> variable, and it may cause // false positive issues in VS2013 and >>>> VS2015 build // #pragma warning ( disable : 4703 ) >>>> >>>> #endif >>>> >>>> #endif >>> >>> I think starting with gcc-4.6, gcc supports the "diagnostics" pragma, >>> which can be used to suppress warnings. >>> >>> Unfortunately, there's no pragma to suppress *only* the incorrect >>> warnings :) So if we set the pragma, we could lose even those >>> warnings that point out real bugs. >>> >> >> That applies to the VS case as well. But I think doing this for older GCCs >> is fine, most EDK2 developers use a newer version anyway, so we will not >> lose any coverage by doing so. >> _______________________________________________ >> 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

