[clang] 5c6cbe2 - [clang] UEFI default ABI (#138364)

via cfe-commits cfe-commits at lists.llvm.org
Thu May 8 09:08:49 PDT 2025


Author: Prabhu Rajasekaran
Date: 2025-05-08T09:08:46-07:00
New Revision: 5c6cbe25175be37ffa1c809f5163ab7aebecef1a

URL: https://github.com/llvm/llvm-project/commit/5c6cbe25175be37ffa1c809f5163ab7aebecef1a
DIFF: https://github.com/llvm/llvm-project/commit/5c6cbe25175be37ffa1c809f5163ab7aebecef1a.diff

LOG: [clang] UEFI default ABI (#138364)

Set MS ABI as default ABI for UEFI.

Added: 
    

Modified: 
    clang/lib/Driver/ToolChains/Arch/X86.cpp
    clang/test/Driver/x86-mabi.c

Removed: 
    


################################################################################
diff  --git a/clang/lib/Driver/ToolChains/Arch/X86.cpp b/clang/lib/Driver/ToolChains/Arch/X86.cpp
index e6ac3a9e4b350..a7362e960c3d4 100644
--- a/clang/lib/Driver/ToolChains/Arch/X86.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/X86.cpp
@@ -122,7 +122,8 @@ void x86::getX86TargetFeatures(const Driver &D, const llvm::Triple &Triple,
   // Claim and report unsupported -mabi=. Note: we don't support "sysv_abi" or
   // "ms_abi" as default function attributes.
   if (const Arg *A = Args.getLastArg(clang::driver::options::OPT_mabi_EQ)) {
-    StringRef DefaultAbi = Triple.isOSWindows() ? "ms" : "sysv";
+    StringRef DefaultAbi =
+        (Triple.isOSWindows() || Triple.isUEFI()) ? "ms" : "sysv";
     if (A->getValue() != DefaultAbi)
       D.Diag(diag::err_drv_unsupported_opt_for_target)
           << A->getSpelling() << Triple.getTriple();

diff  --git a/clang/test/Driver/x86-mabi.c b/clang/test/Driver/x86-mabi.c
index 5d15337cb1118..1aae5e08507a7 100644
--- a/clang/test/Driver/x86-mabi.c
+++ b/clang/test/Driver/x86-mabi.c
@@ -1,6 +1,8 @@
 // RUN: %clang -### --target=x86_64-windows-msvc -mabi=ms -S %s 2>&1 | FileCheck %s
+// RUN: %clang -### --target=x86_64-uefi -mabi=ms -S %s 2>&1 | FileCheck %s
 // RUN: not %clang -### --target=i386-unknown-linux -mabi=ms -S %s 2>&1 | FileCheck --check-prefix=ERR %s
 // RUN: not %clang -### --target=x86_64-windows-msvc -mabi=sysv -S %s 2>&1 | FileCheck --check-prefix=ERR %s
+// RUN: not %clang -### --target=x86_64-uefi -mabi=sysv -S %s 2>&1 | FileCheck --check-prefix=ERR %s
 // RUN: %clang -### --target=i386-unknown-linux -mabi=sysv -S %s 2>&1 | FileCheck %s
 
 // RUN: %clang -### --target=x86_64-windows-gnu -mabi=ms -S %s 2>&1 | FileCheck %s


        


More information about the cfe-commits mailing list