mirror of https://github.com/acidanthera/audk.git
MdePkg/DebugLib: Flag post-_ASSERT() as unreachable for analyzers.
When a variable is compared to NULL as part of an ASSERT() call, the code implies that the variable may be NULL. Certain Static Analyzers, such as the Clang Static Analyzer, then issue false warnings for any untested access of that pointer, even though that defeats the intention behind ASSERT(). This patch flags the position after _ASSERT() as unreachable for Static Analyzers to indicate that if the variable is NULL, execution cannot pass. As the ANALYZER-prefixed version is used, the executables will not have any code stripped during compilation. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Marvin Haeuser <Marvin.Haeuser@outlook.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
parent
001f28caef
commit
90eda6fc27
|
@ -291,6 +291,7 @@ DebugPrintLevelEnabled (
|
||||||
if (DebugAssertEnabled ()) { \
|
if (DebugAssertEnabled ()) { \
|
||||||
if (!(Expression)) { \
|
if (!(Expression)) { \
|
||||||
_ASSERT (Expression); \
|
_ASSERT (Expression); \
|
||||||
|
ANALYZER_UNREACHABLE (); \
|
||||||
} \
|
} \
|
||||||
} \
|
} \
|
||||||
} while (FALSE)
|
} while (FALSE)
|
||||||
|
|
Loading…
Reference in New Issue