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 committed Dec 13, 2023
1 parent 8023b33 commit e51362e
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 e51362e

Please sign in to comment.