[clang] [clang] Fix UEFI Target info (PR #127290)

Petr Hosek via cfe-commits cfe-commits at lists.llvm.org
Mon Mar 17 11:27:49 PDT 2025


================
@@ -835,16 +835,22 @@ class LLVM_LIBRARY_VISIBILITY UEFIX86_64TargetInfo
 public:
   UEFIX86_64TargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
       : UEFITargetInfo<X86_64TargetInfo>(Triple, Opts) {
+    LongWidth = LongAlign = 32;
+    DoubleAlign = LongLongAlign = 64;
+    IntMaxType = SignedLongLong;
+    Int64Type = SignedLongLong;
+    SizeType = UnsignedLongLong;
+    PtrDiffType = SignedLongLong;
+    IntPtrType = SignedLongLong;
+    LongDoubleWidth = LongDoubleAlign = 64;
+    LongDoubleFormat = &llvm::APFloat::IEEEdouble();
----------------
petrhosek wrote:

I understand that this was copied from the MSVC target but it's worth pointing out that neither [UEFI specification](https://uefi.org/specs/UEFI/2.11/02_Overview.html#data-types) nor the [TianoCore reference implementation](https://github.com/tianocore/edk2/blob/master/MdePkg/Include/X64/ProcessorBind.h) mention anything about floating point types so it's not clear whether this is correct or not.

https://github.com/llvm/llvm-project/pull/127290


More information about the cfe-commits mailing list