(cc MdePkg and BaseTools maintainers) On Thu, 14 Dec 2023 at 00:08, Mike Beaton <mjsbea...@gmail.com> wrote: > > From: Mike Beaton <mjsbea...@gmail.com> > > The variant provided when MDEPKG_NDEBUG is defined will be optimised > away in RELEASE builds, but by referencing the argument list, avoids > unused variable errors from valid debug code, for example when STATIC > variables are used only in DEBUG statements. > > Signed-off-by: Mike Beaton <mjsbea...@gmail.com>
I think this is an improvement, but others should confirm that other toolchains are happy with this too (the change is no longer specific to clang) > --- > BaseTools/Conf/tools_def.template | 2 +- > MdePkg/Include/Library/DebugLib.h | 7 ++++++- > 2 files changed, 7 insertions(+), 2 deletions(-) > > diff --git a/BaseTools/Conf/tools_def.template > b/BaseTools/Conf/tools_def.template > index c34ecfd557..eaccf0b698 100755 > --- a/BaseTools/Conf/tools_def.template > +++ b/BaseTools/Conf/tools_def.template > @@ -1859,7 +1859,7 @@ DEFINE CLANGDWARF_X64_DLINK2_FLAGS = > -Wl,--defsym=PECOFF_HEADER_SIZE=0x22 > DEFINE CLANGDWARF_IA32_TARGET = -target i686-pc-linux-gnu > DEFINE CLANGDWARF_X64_TARGET = -target x86_64-pc-linux-gnu > > -DEFINE CLANGDWARF_WARNING_OVERRIDES = -Wno-parentheses-equality > -Wno-empty-body -Wno-unused-const-variable -Wno-varargs > -Wno-unknown-warning-option -Wno-unused-but-set-variable > -Wno-unused-const-variable -Wno-unaligned-access > -Wno-unneeded-internal-declaration > +DEFINE CLANGDWARF_WARNING_OVERRIDES = -Wno-parentheses-equality > -Wno-empty-body -Wno-unused-const-variable -Wno-varargs > -Wno-unknown-warning-option -Wno-unused-but-set-variable > -Wno-unused-const-variable -Wno-unaligned-access > DEFINE CLANGDWARF_ALL_CC_FLAGS = DEF(GCC48_ALL_CC_FLAGS) > DEF(CLANGDWARF_WARNING_OVERRIDES) -fno-stack-protector -mms-bitfields > -Wno-address -Wno-shift-negative-value -Wno-unknown-pragmas > -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 > > ########################### > diff --git a/MdePkg/Include/Library/DebugLib.h > b/MdePkg/Include/Library/DebugLib.h > index 40772f2e0f..bc7789f01c 100644 > --- a/MdePkg/Include/Library/DebugLib.h > +++ b/MdePkg/Include/Library/DebugLib.h > @@ -426,7 +426,12 @@ UnitTestDebugAssert ( > } \ > } while (FALSE) > #else > -#define DEBUG(Expression) > +#define DEBUG(Expression) \ > + do { \ > + if (FALSE) { \ > + _DEBUG (Expression); \ > + } \ > + } while (FALSE) > #endif > > /** > -- > 2.39.2 > > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#112505): https://edk2.groups.io/g/devel/message/112505 Mute This Topic: https://groups.io/mt/103160238/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-