Skip to content

Commit ac586fd

Browse files
authored
[clang] Introduce a new UEFI target predefine. (llvm#111719)
Add a `__UEFI__` predefine for UEFI target. Co-authored-by: RossComputerGuy
1 parent 5db5dd7 commit ac586fd

File tree

3 files changed

+13
-1
lines changed

3 files changed

+13
-1
lines changed

clang/lib/Basic/Targets/OSTargets.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -790,7 +790,9 @@ template <typename Target>
790790
class LLVM_LIBRARY_VISIBILITY UEFITargetInfo : public OSTargetInfo<Target> {
791791
protected:
792792
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
793-
MacroBuilder &Builder) const override {}
793+
MacroBuilder &Builder) const override {
794+
Builder.defineMacro("__UEFI__");
795+
}
794796

795797
public:
796798
UEFITargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)

clang/test/Driver/uefi-defines.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// RUN: %clang -target x86_64-unknown-uefi %s -emit-llvm -S -c -o - | FileCheck %s
2+
3+
// CHECK: __UEFI__defined
4+
#ifdef __UEFI__
5+
void __UEFI__defined() {}
6+
#endif

clang/test/Preprocessor/init.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2742,3 +2742,7 @@
27422742
// RISCV64-LINUX: #define __unix__ 1
27432743
// RISCV64-LINUX: #define linux 1
27442744
// RISCV64-LINUX: #define unix 1
2745+
2746+
// RUN: %clang_cc1 -dM -triple=x86_64-uefi -E /dev/null | FileCheck -match-full-lines -check-prefix UEFI %s
2747+
2748+
// UEFI: #define __UEFI__ 1

0 commit comments

Comments
 (0)