From 57a890fd03356350a1b7a2a0064c8118f44e9958 Mon Sep 17 00:00:00 2001 From: Rebecca Cran Date: Sun, 16 Jun 2024 02:55:33 -0600 Subject: [PATCH] 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 --- MdePkg/Include/Base.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MdePkg/Include/Base.h b/MdePkg/Include/Base.h index e02970a052fc..7caebbeb1f4a 100644 --- a/MdePkg/Include/Base.h +++ b/MdePkg/Include/Base.h @@ -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