MdePkg: Check if compiler has __has_builtin before trying to use it

When building AArch64 code, cpp gets run with the `-undef` flag which on
Fedora 40 with gcc version 14.1.1 20240607 (Red Hat 14.1.1-5) causes
__has_builtin to be undefined. When running the check for
__builtin_unreachable in Base.h it causes an error
"missing binary operator before token "("".

Check that we have __has_builtin before trying to use it.

Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
This commit is contained in:
Rebecca Cran 2024-06-16 02:55:33 -06:00 committed by mergify[bot]
parent 95e220e95d
commit 57a890fd03

View File

@ -59,7 +59,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
/// up to the compiler to remove any code past that point.
///
#define UNREACHABLE() __builtin_unreachable ()
#elif defined (__has_feature)
#elif defined (__has_builtin) && defined (__has_feature)
#if __has_builtin (__builtin_unreachable)
///
/// Signal compilers and analyzers that this call is not reachable. It is