[clang] ac586fd - [clang] Introduce a new UEFI target predefine. (#111719)

via cfe-commits cfe-commits at lists.llvm.org
Mon Dec 23 14:15:20 PST 2024


Author: Prabhuk
Date: 2024-12-23T14:15:16-08:00
New Revision: ac586fd204e92b76b1ee255342ba26a45a29a1d9

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

LOG: [clang] Introduce a new UEFI target predefine. (#111719)

Add a `__UEFI__` predefine for UEFI target.

Co-authored-by: RossComputerGuy

Added: 
    clang/test/Driver/uefi-defines.c

Modified: 
    clang/lib/Basic/Targets/OSTargets.h
    clang/test/Preprocessor/init.c

Removed: 
    


################################################################################
diff  --git a/clang/lib/Basic/Targets/OSTargets.h b/clang/lib/Basic/Targets/OSTargets.h
index cd9b3760ca5874..53dd23c3129636 100644
--- a/clang/lib/Basic/Targets/OSTargets.h
+++ b/clang/lib/Basic/Targets/OSTargets.h
@@ -790,7 +790,9 @@ template <typename Target>
 class LLVM_LIBRARY_VISIBILITY UEFITargetInfo : public OSTargetInfo<Target> {
 protected:
   void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
-                    MacroBuilder &Builder) const override {}
+                    MacroBuilder &Builder) const override {
+    Builder.defineMacro("__UEFI__");
+  }
 
 public:
   UEFITargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)

diff  --git a/clang/test/Driver/uefi-defines.c b/clang/test/Driver/uefi-defines.c
new file mode 100644
index 00000000000000..45f27bfdb9fa98
--- /dev/null
+++ b/clang/test/Driver/uefi-defines.c
@@ -0,0 +1,6 @@
+// RUN: %clang -target x86_64-unknown-uefi %s -emit-llvm -S -c -o - | FileCheck %s
+
+// CHECK: __UEFI__defined
+#ifdef __UEFI__
+void __UEFI__defined() {}
+#endif

diff  --git a/clang/test/Preprocessor/init.c b/clang/test/Preprocessor/init.c
index 05225c120b13de..3b99204acd7a44 100644
--- a/clang/test/Preprocessor/init.c
+++ b/clang/test/Preprocessor/init.c
@@ -2742,3 +2742,7 @@
 // RISCV64-LINUX: #define __unix__ 1
 // RISCV64-LINUX: #define linux 1
 // RISCV64-LINUX: #define unix 1
+
+// RUN: %clang_cc1 -dM -triple=x86_64-uefi -E /dev/null | FileCheck -match-full-lines -check-prefix UEFI %s
+
+// UEFI: #define __UEFI__ 1


        


More information about the cfe-commits mailing list