Processor or Compiler specific defines and types for IA-32 architecture.\r
\r
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials are licensed and made available under\r
-the terms and conditions of the BSD License that accompanies this distribution.\r
-The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php.\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
\r
//\r
#pragma warning ( disable : 4206 )\r
\r
-#if _MSC_VER == 1800 || _MSC_VER == 1900 || _MSC_VER >= 1910\r
+#if defined(_MSC_VER) && _MSC_VER >= 1800\r
\r
//\r
// Disable these warnings for VS2013.\r
/// Microsoft* compiler specific method for EFIAPI calling convention.\r
///\r
#define EFIAPI __cdecl\r
-#elif defined(__GNUC__)\r
+#elif defined(__GNUC__) || defined(__clang__)\r
///\r
/// GCC specific method for EFIAPI calling convention.\r
///\r
#define EFIAPI\r
#endif\r
\r
-#if defined(__GNUC__)\r
+#if defined(__GNUC__) || defined(__clang__)\r
///\r
/// For GNU assembly code, .global or .globl can declare global symbols.\r
/// Define this macro to unify the usage.\r