enabling float128 support in clang?
- Reply: Alexander Richardson : "Re: enabling float128 support in clang?"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 03 Oct 2022 18:43:10 UTC
TL;DR: Is there a reason not to enable float128 support in clang for x86? Due to a build breakage with the flang runtime, I recently noticed that unlike most other OSes we don't support float128 in clang. It's enable in modern GCC and other OSes have it enable in clang: - Hakiu 2018: https://reviews.llvm.org/D54901 - Solaris 2018: https://reviews.llvm.org/D41240 - WASM 2019: https://reviews.llvm.org/D57154 - Dragonfly 2021: https://reviews.llvm.org/D111760 - OpenBSD (history hard to find...) Is there a known reason not to enable this? Patch to enable below (I'm a bit skeptical of the __FLOAT128__ part as GCC doesn't define it...) -- Brooks diff --git a/clang/lib/Basic/Targets/OSTargets.h b/clang/lib/Basic/Targets/OSTargets.h index c75f7d9fbafe..ea95f40e81a0 100644 --- a/clang/lib/Basic/Targets/OSTargets.h +++ b/clang/lib/Basic/Targets/OSTargets.h @@ -232,6 +232,9 @@ protected: // setting this to 1 is conforming even if all the basic source // character literals have the same encoding as char and wchar_t. Builder.defineMacro("__STDC_MB_MIGHT_NEQ_WC__", "1"); + + if (this->HasFloat128) + Builder.defineMacro("__FLOAT128__"); } public: @@ -241,6 +244,7 @@ public: default: case llvm::Triple::x86: case llvm::Triple::x86_64: + this->HasFloat128 = true; this->MCountName = ".mcount"; break; case llvm::Triple::mips: