public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Laszlo Ersek <lersek@redhat.com>
To: "Zeng, Star" <star.zeng@intel.com>,
	Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: "Ni, Ruiyu" <ruiyu.ni@intel.com>,
	"Dong, Eric" <eric.dong@intel.com>,
	edk2-devel-01 <edk2-devel@lists.01.org>,
	"Gao, Liming" <liming.gao@intel.com>
Subject: Re: [PATCH 2/2] MdeModulePkg/UdfDxe: suppress incorrect compiler warning in ReadFile()
Date: Thu, 14 Sep 2017 11:01:05 +0200	[thread overview]
Message-ID: <77374b3b-f322-7d71-9119-eee76222aee4@redhat.com> (raw)
In-Reply-To: <0C09AFA07DD0434D9E2A0C6AEB0483103B956B56@SHSMSX151.ccr.corp.intel.com>

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:lersek@redhat.com] 
> Sent: Thursday, September 14, 2017 4:17 PM
> To: Zeng, Star <star.zeng@intel.com>; Ard Biesheuvel <ard.biesheuvel@linaro.org>
> Cc: Ni, Ruiyu <ruiyu.ni@intel.com>; Dong, Eric <eric.dong@intel.com>; edk2-devel-01 <edk2-devel@lists.01.org>; Gao, Liming <liming.gao@intel.com>
> 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:edk2-devel-bounces@lists.01.org] On Behalf Of 
>> Ard Biesheuvel
>> Sent: Thursday, September 14, 2017 2:52 AM
>> To: Laszlo Ersek <lersek@redhat.com>
>> Cc: Ni, Ruiyu <ruiyu.ni@intel.com>; Dong, Eric <eric.dong@intel.com>; 
>> edk2-devel-01 <edk2-devel@lists.01.org>; Gao, Liming 
>> <liming.gao@intel.com>; Zeng, Star <star.zeng@intel.com>
>> Subject: Re: [edk2] [PATCH 2/2] MdeModulePkg/UdfDxe: suppress 
>> incorrect compiler warning in ReadFile()
>>
>> On 13 September 2017 at 11:49, Laszlo Ersek <lersek@redhat.com> 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
>> edk2-devel@lists.01.org
>> https://lists.01.org/mailman/listinfo/edk2-devel
>>
> 



  reply	other threads:[~2017-09-14  8:58 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-12 22:26 [PATCH 0/2] MdeModulePkg: UDF fixes and cleanups, round 2 Laszlo Ersek
2017-09-12 22:26 ` [PATCH 1/2] MdeModulePkg/UdfDxe: reject reserved values in ICB.Flags[2:0] Laszlo Ersek
2017-09-13  2:26   ` Ni, Ruiyu
2017-09-13  6:35   ` Zeng, Star
2017-09-12 22:26 ` [PATCH 2/2] MdeModulePkg/UdfDxe: suppress incorrect compiler warning in ReadFile() Laszlo Ersek
2017-09-13  6:33   ` Zeng, Star
2017-09-13  6:43     ` Zeng, Star
2017-09-13 18:49       ` Laszlo Ersek
2017-09-13 18:52         ` Ard Biesheuvel
2017-09-14  0:42           ` Zeng, Star
2017-09-14  1:20             ` Zeng, Star
2017-09-14  1:30               ` Gao, Liming
2017-09-14  8:19               ` Laszlo Ersek
2017-09-14  8:53                 ` Zeng, Star
2017-09-14  8:17             ` Laszlo Ersek
2017-09-14  8:50               ` Zeng, Star
2017-09-14  9:01                 ` Laszlo Ersek [this message]
2017-09-13 13:42 ` [PATCH 0/2] MdeModulePkg: UDF fixes and cleanups, round 2 Paulo Alcantara
2017-09-13 22:08   ` Laszlo Ersek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=77374b3b-f322-7d71-9119-eee76222aee4@redhat.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox