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


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to