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 Mikhail Krichanov committed Dec 21, 2023
1 parent 63b4bc2 commit 3fa1aa4
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 3fa1aa4

Please sign in to comment.