Acidanthera UEFI Development Kit based on EDK II edk2-stable202311
Go to file
Guo, Dongao 4ee787cc1b MdeModulePkg/RegularExpressionDxe:disable wraning to pass gcc4.8 build
There are three warnings reported by GCC 4.8 and the later GCC release
are workaround with them.
And all the three warnings are invalid,so I just disable warnings rather
than fix them at now.

Following is the analysis from Laszlo Ersek.
(1)

> MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regcomp.c: In
> function 'compile_length_tree':
> MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regcomp.c:1516:7:
> warning: 'len' may be used uninitialized in this function
> [-Wmaybe-uninitialized]
>    int len;
>        ^

I think this is an invalid warning; the type of the controlling expression
(node->type) is enum GimmickType, and the case labels cover all values of
the enum. An assert(0) could be added, I guess, but again, upstream
Oniguruma would be justified to reject the idea.

(2)

> MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regparse.c: In
> function 'parse_callout_args.isra.10.constprop.30':
> MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regparse.c:6753:25:
> warning: 'rl' may be used uninitialized in this function
> [-Wmaybe-uninitialized]
>   vals[n].l = rl;
>               ^

This warning is invalid, given:

  6749    if (cn > 0) {
  6750      long rl;
  6751      r = parse_long(enc, buf, bufend, 1, LONG_MAX, &rl);
  6752      if (r == ONIG_NORMAL) {
  6753        vals[n].l = rl;

Because parse_long() only returns ONIG_NORMAL after it sets (*rl).

(3)

> MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regparse.c: In
> function 'parse_callout_of_name.constprop.29':
> MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regparse.c:6861:38:
> warning: 'tag_end' may be used uninitialized in this function
> [-Wmaybe-uninitialized]
>      if (! is_allowed_callout_tag_name(enc, tag_start, tag_end))

This warning is also invalid, given:

  6852    if (c == '[') {
  6853      if (PEND) return ONIGERR_END_PATTERN_IN_GROUP;
  6854      tag_start = p;
  6855      while (! PEND) {
  6856        if (PEND) return ONIGERR_END_PATTERN_IN_GROUP;
  6857        tag_end = p;
  6858        PFETCH_S(c);
  6859        if (c == ']') break;
  6860      }
  6861      if (! is_allowed_callout_tag_name(enc, tag_start, tag_end))
  6862        return ONIGERR_INVALID_CALLOUT_TAG_NAME;
  6863

To see that, first we should note:
 #define PEND         (p < end ?  0 : 1)

therefore PEND doesn't change if neither "p" nor "end" change.

Second, when we reach line 6855 (the "while") for the very first time,
(!PEND) is certainly true (i.e., PEND is false), because otherwise we
would have bailed at line 6853. Therefore we reach line 6857, and assign
"tag_end". Regardless of whether we iterate zero or more *additional*
times around the loop, "tag_end" will have been set, whenever we reach
line 6861.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Dongao Guo <dongao.guo@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
2018-10-11 13:19:41 +08:00
AppPkg AppPkg: Removing ipf which is no longer supported from edk2. 2018-06-29 16:19:35 +08:00
ArmPkg ArmPkg/PlatformBootManagerLib: fix hotkey of boot option 2018-08-23 16:41:47 +01:00
ArmPlatformPkg ArmPlatformPkg: Removing ipf which is no longer supported from edk2. 2018-06-29 16:19:36 +08:00
ArmVirtPkg ArmVirtPkg/PlatformBDS: Implement PlatformBootManagerUnableToBoot 2018-07-27 15:47:55 +08:00
BaseTools BaseTools: Update Brotli Compress to the latest one 1.0.6 2018-10-09 22:27:32 +08:00
BeagleBoardPkg BeagleBoardPkg: Removing ipf which is no longer supported from edk2. 2018-06-29 16:19:37 +08:00
Conf EDK II: Add .gitignore 2014-10-14 16:08:15 +00:00
CorebootModulePkg CorebootModulePkg: Removing ipf from edk2. 2018-08-14 08:58:28 +08:00
CorebootPayloadPkg CorebootPayloadPkg: Removing ipf from edk2. 2018-08-14 08:58:29 +08:00
CryptoPkg CryptoPkg: Removing ipf which is no longer supported from edk2. 2018-09-25 23:40:41 +08:00
DuetPkg DuetPkg: Removing ipf which is no longer supported from edk2. 2018-06-29 16:19:38 +08:00
EdkCompatibilityPkg EdkCompatibilityPkg: Removing ipf from edk2. 2018-09-25 23:43:46 +08:00
EdkShellBinPkg EdkShellBinPkg: Removing ipf which is no longer supported from edk2. 2018-06-29 16:19:38 +08:00
EdkShellPkg EdkShellPkg: Removing ipf which is no longer supported from edk2. 2018-06-29 16:19:42 +08:00
EmbeddedPkg EmbeddedPkg/VirtualKeyboard: Avoid notification called more than once 2018-09-14 10:18:31 +08:00
EmulatorPkg EmulatorPkg/EmulatorPkg.dsc: override PCD default to avoid boot failure 2018-09-28 10:19:35 +08:00
FatBinPkg FatBinPkg: Removing ipf which is no longer supported from edk2. 2018-09-06 14:44:29 +08:00
FatPkg FatPkg: Removing ipf which is no longer supported from edk2. 2018-09-06 14:44:30 +08:00
FmpDevicePkg FmpDevicePkg FmpDxe: Lock variables in entrypoint instead of callback 2018-08-08 19:18:29 +08:00
IntelFrameworkModulePkg IntelFrameworkModulePkg Lzma: Update LZMA SDK version to 18.05 2018-10-09 09:31:11 +08:00
IntelFrameworkPkg IntelFrameworkPkg FrameworkUefiLib: Add new EfiLocateXXXAcpiTable APIs 2018-09-27 14:25:32 +08:00
IntelFsp2Pkg IntelFsp2Pkg/GenCfgOpt.py: Support PCD input from command line 2018-10-11 07:54:08 +08:00
IntelFsp2WrapperPkg IntelFsp2WrapperPkg/BaseFspWrapperPlatformLibSample: Remove PCDs 2018-09-28 10:55:10 +08:00
IntelFspPkg edk2: Move License.txt file to root 2017-08-03 11:02:17 -07:00
IntelFspWrapperPkg edk2: Move License.txt file to root 2017-08-03 11:02:17 -07:00
IntelSiliconPkg IntelSiliconPkg IntelVTdDxe: Use new EfiLocateFirstAcpiTable() 2018-09-27 14:25:33 +08:00
MdeModulePkg MdeModulePkg/RegularExpressionDxe:disable wraning to pass gcc4.8 build 2018-10-11 13:19:41 +08:00
MdePkg MdePkg: Add PciRoot/PcieRoot text for ACPI Expanded Device Path 2018-10-09 22:20:19 +08:00
NetworkPkg NetworkPkg/UefiPxeBcDxe: Correct comments to align with the input parameter. 2018-10-09 08:43:35 +08:00
Nt32Pkg Nt32Pkg/Nt32Pkg.dsc: override PCD default to avoid boot failure 2018-09-28 10:19:35 +08:00
Omap35xxPkg Omap35xxPkg: Removing ipf which is no longer supported from edk2. 2018-06-29 16:19:46 +08:00
OptionRomPkg OptionRomPkg: Removing ipf which is no longer supported from edk2. 2018-09-06 14:44:30 +08:00
OvmfPkg OvmfPkg/PlatformPei: clear CPU caches 2018-10-05 22:02:55 +02:00
PcAtChipsetPkg PcAtChipsetPkg PcRtc: Use new EfiLocateFirstAcpiTable() 2018-09-27 14:25:35 +08:00
QuarkPlatformPkg QuarkPlatformPkg: Removing ipf which is no longer supported from edk2. 2018-08-14 08:58:30 +08:00
QuarkSocPkg QuarkSocPkg: Removing ipf which is no longer supported from edk2. 2018-08-14 08:58:32 +08:00
SecurityPkg SecurityPkg/Tcg2Dxe: Remove unused PCDs 2018-09-30 07:39:01 +08:00
ShellBinPkg ShellBinPkg: Clean up source files 2018-06-28 11:19:51 +08:00
ShellPkg ShellPkg/TftpDynamicCommand: Correct comments to align with the input parameter. 2018-10-09 08:43:43 +08:00
SignedCapsulePkg SignedCapsulePkg: Remove PalLib in dsc which was missed at 52664c5 2018-09-25 23:40:40 +08:00
SourceLevelDebugPkg SourceLevelDebugPkg: Removing ipf from edk2. 2018-06-29 16:19:50 +08:00
StandaloneMmPkg StandaloneMmPkg: Describe the declaration and definition files. 2018-07-20 10:59:56 +08:00
StdLib StdLib: Removing ipf which is no longer supported from edk2. 2018-06-29 16:19:51 +08:00
StdLibPrivateInternalFiles StdLibPrivateInternalFiles: Removing ipf from edk2. 2018-06-29 16:19:51 +08:00
UefiCpuPkg UefiCpuPkg/PiSmmCpuDxeSmm: [CVE-2017-5753] Fix bounds check bypass 2018-09-30 13:06:42 +08:00
UnixPkg
Vlv2DeviceRefCodePkg edk2: Move License.txt file to root 2017-08-03 11:02:17 -07:00
Vlv2TbltDevicePkg Vlv2TbltDevicePkg: Removing ipf which from edk2. 2018-08-14 08:58:33 +08:00
.gitignore edk2: Add .DS_Store to .gitignore for macOS 2017-05-19 15:14:34 -07:00
.gitmodules CryptoPkg: Adding OpenSSL as one submodule of EDKII repo 2018-01-18 14:06:15 +08:00
BuildNotes2.txt BaseTools: Updated BuildNotes URLs 2016-03-25 09:46:44 +08:00
Contributions.txt edk2: Fix typo in Contributions.txt 2017-08-16 17:50:44 +08:00
License.txt edk2: Move License.txt file to root 2017-08-03 11:02:17 -07:00
Maintainers.txt Maintainer.txt: Add Ray to be co-maintainer of EmulatorPkg 2018-09-07 12:33:16 +08:00
Readme.md edk2: Add Readme.md to root of edk2 repository 2017-08-03 11:02:25 -07:00
edksetup.bat BaseTools: Fix incorrect %EDK_TOOLS_PATH% 2018-08-08 08:44:22 +08:00
edksetup.sh BaseTools/edksetup.sh: fix invalid test for current working directory 2017-08-10 12:54:58 +08:00

Readme.md

EDK II Project

A modern, feature-rich, cross-platform firmware development environment for the UEFI and PI specifications from www.uefi.org.

Contributions to the EDK II open source project are covered by the TianoCore Contribution Agreement 1.1

The majority of the content in the EDK II open source project uses a BSD 2-Clause License. The EDK II open source project contains the following components that are covered by additional licenses:

The EDK II Project is composed of packages. The maintainers for each package are listed in Maintainers.txt.

Resources