audk/ArmPkg/Library
Mike Beaton ae83c6b7fd MdePkg: Fix null macros for XCODE5 and CLANG
When building OvmfPkg in RELEASE mode in the XCODE5 toolchain, the
ASSERT_EFI_ERROR change prevents this error:

.../MdePkg/Library/UefiMemoryAllocationLib/MemoryAllocationLib.c:141:15:
error: variable 'Status' set but not used [-Werror,-Wunused-but-set-variable]
  EFI_STATUS  Status;
              ^

which is currently stopping the build.

When building in RELEASE mode in the CLANGPDB toolchain,the DEBUG macro
change prevents this error:

.../edk2/OvmfPkg/VirtioSerialDxe/VirtioSerial.c:28:22: error:
variable 'EventNames' is not needed and will not be
emitted [-Werror,-Wunneeded-internal-declaration]
STATIC CONST CHAR8  *EventNames[] = {
                     ^

which is currently stopping the build.

CLANGDWARF produces the same error as CLANGPDB above, if
-Wno-unneeded-internal-declaration is removed from its build flags.
With the null DEBUG macro change, this warning suppression
can be removed from CLANGDWARF, which is considered a benefit
as it has the potential to catch real coding errors. This is
done in a subsequent commit.

This commit has the desirable side effect that we no longer require
(and cannot use) explicit `#ifndef MDEPKG_NDEBUG` around items only
used in DEBUG macros. This requires the ArmPkg change made here to
be in the same commit as the MdePkg changes.

Note: In common with existing macros in EDK II, including the pre-existing
and unchanged DEBUG/NOOPT versions of the macros which are modified here,
we use the standard approach of adding `do { ... } while (FALSE)` wrapping
to ensure that the macros behave correctly with surrounding code
(e.g. require a following ';' and do not combine in unexpected ways with
nearby conditionals).

Continuous-integration-options: PatchCheck.ignore-multi-package
Co-authored-by: Mikhail Krichanov <krichanov@ispras.ru>
Signed-off-by: Mike Beaton <mjsbeaton@gmail.com>
2024-10-18 16:22:07 +00:00
..
ArmArchTimerLib
ArmCacheMaintenanceLib
ArmDisassemblerLib
ArmExceptionLib MdePkg: Move AsmMacroIoLib*.h from ArmPkg 2024-09-12 19:36:59 +00:00
ArmGenericTimerPhyCounterLib
ArmGenericTimerVirtCounterLib
ArmGicArchLib
ArmGicArchSecLib
ArmHvcLib MdePkg: Move AsmMacroIoLib*.h from ArmPkg 2024-09-12 19:36:59 +00:00
ArmHvcLibNull
ArmLib ArmPkg/ArmLib: Drop set/way Dcache operations 2024-09-13 00:23:13 +00:00
ArmMmuLib MdePkg: Move AsmMacroIoLib*.h from ArmPkg 2024-09-12 19:36:59 +00:00
ArmMonitorLib MdePkg: Move AsmMacroIoLib*.h from ArmPkg 2024-09-12 19:36:59 +00:00
ArmMtlNullLib
ArmPsciResetSystemLib
ArmSmcLib MdePkg: Move AsmMacroIoLib*.h from ArmPkg 2024-09-12 19:36:59 +00:00
ArmSmcLibNull
ArmSoftFloatLib
ArmSvcLib MdePkg: Move AsmMacroIoLib*.h from ArmPkg 2024-09-12 19:36:59 +00:00
ArmTrngLib
DebugAgentSymbolsBaseLib
DebugPeCoffExtraActionLib
DefaultExceptionHandlerLib MdePkg: Fix null macros for XCODE5 and CLANG 2024-10-18 16:22:07 +00:00
LinuxBootBootManagerLib
OpteeLib
PeiServicesTablePointerLib
PlatformBootManagerLib
SemiHostingDebugLib
SemiHostingSerialPortLib
SemihostLib MdePkg: Move AsmMacroIoLib*.h from ArmPkg 2024-09-12 19:36:59 +00:00
StandaloneMmMmuLib