Skip to content

Commit bb9785a

Browse files
authored
[Driver][UEFI] Enable Microsoft extensions (llvm#121875)
Set "-fms-extensions" for UEFI targets.
1 parent 878a574 commit bb9785a

File tree

2 files changed

+3
-1
lines changed

2 files changed

+3
-1
lines changed

clang/lib/Driver/ToolChains/Clang.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5109,6 +5109,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
51095109
const llvm::Triple *AuxTriple =
51105110
(IsCuda || IsHIP) ? TC.getAuxTriple() : nullptr;
51115111
bool IsWindowsMSVC = RawTriple.isWindowsMSVCEnvironment();
5112+
bool IsUEFI = RawTriple.isUEFI();
51125113
bool IsIAMCU = RawTriple.isOSIAMCU();
51135114

51145115
// Adjust IsWindowsXYZ for CUDA/HIP/SYCL compilations. Even when compiling in
@@ -7252,7 +7253,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
72527253

72537254
// -fms-extensions=0 is default.
72547255
if (Args.hasFlag(options::OPT_fms_extensions, options::OPT_fno_ms_extensions,
7255-
IsWindowsMSVC))
7256+
IsWindowsMSVC || IsUEFI))
72567257
CmdArgs.push_back("-fms-extensions");
72577258

72587259
// -fms-compatibility=0 is default.

clang/test/Driver/uefi-constructed-args.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
// CHECK-SAME: "-triple" "x86_64-unknown-uefi"
55
// CHECK-SAME: "-mrelocation-model" "pic" "-pic-level" "2"
66
// CHECK-SAME: "-mframe-pointer=all"
7+
// CHECK-SAME: "-fms-extensions"
78
// CHECK-NEXT: "-nologo"
89
// CHECK-SAME: "-subsystem:efi_application"
910
// CHECK-SAME: "-entry:EfiMain"

0 commit comments

Comments
 (0)