Skip to content

Commit

Permalink
DebugLib: Simplify DEBUG and ASSERT macros used when MDEPKG_NDEBUG is…
Browse files Browse the repository at this point in the history
… defined

The variants provided when MDEPKG_NDEBUG is defined will be optimised
away in RELEASE builds, but by referencing the argument (or argument list,
in the case of DEBUG) avoid unused variable errors from valid debug code,
for example when STATIC variables are used only in DEBUG statements.
  • Loading branch information
mikebeaton authored and MikhailKrichanov committed Dec 21, 2023
1 parent 8023b33 commit 5d42621
Showing 1 changed file with 9 additions and 14 deletions.
23 changes: 9 additions & 14 deletions MdePkg/Include/Library/DebugLib.h
Original file line number Diff line number Diff line change
Expand Up @@ -408,7 +408,7 @@ UnitTestDebugAssert (
#else
#define ASSERT(Expression) \
do { \
if ((FALSE)) { \
if (FALSE) { \
(VOID) (Expression); \
} \
} while (FALSE)
Expand All @@ -433,18 +433,13 @@ UnitTestDebugAssert (
_DEBUG (Expression); \
} \
} while (FALSE)
#elif defined (__GNUC__) || defined (__clang__)
#define DEBUG(Expression) \
do { \
_Pragma("GCC diagnostic push") \
_Pragma("GCC diagnostic ignored \"-Wunused-value\"") \
if ((FALSE)) { \
(VOID) Expression; \
} \
_Pragma("GCC diagnostic pop") \
} while (FALSE)
#else
#define DEBUG(Expression)
#define DEBUG(Expression) \
do { \
if (FALSE) { \
_DEBUG (Expression); \
} \
} while (FALSE)
#endif

/**
Expand Down Expand Up @@ -472,7 +467,7 @@ UnitTestDebugAssert (
#else
#define ASSERT_EFI_ERROR(StatusParameter) \
do { \
if ((FALSE)) { \
if (FALSE) { \
(VOID) (StatusParameter); \
} \
} while (FALSE)
Expand Down Expand Up @@ -504,7 +499,7 @@ UnitTestDebugAssert (
#else
#define ASSERT_RETURN_ERROR(StatusParameter) \
do { \
if ((FALSE)) { \
if (FALSE) { \
(VOID) (StatusParameter); \
} \
} while (FALSE)
Expand Down

0 comments on commit 5d42621

Please sign in to comment.