Skip to content

Commit 47211c4

Browse files
authored
[Driver] Enable __float128 support on X86 on Hurd (#160045)
1 parent 96a3a58 commit 47211c4

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

clang/lib/Basic/Targets/OSTargets.h

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -328,9 +328,21 @@ class LLVM_LIBRARY_VISIBILITY HurdTargetInfo : public OSTargetInfo<Target> {
328328
Builder.defineMacro("_REENTRANT");
329329
if (Opts.CPlusPlus)
330330
Builder.defineMacro("_GNU_SOURCE");
331+
if (this->HasFloat128)
332+
Builder.defineMacro("__FLOAT128__");
331333
}
332334
public:
333-
using OSTargetInfo<Target>::OSTargetInfo;
335+
HurdTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
336+
: OSTargetInfo<Target>(Triple, Opts) {
337+
switch (Triple.getArch()) {
338+
default:
339+
break;
340+
case llvm::Triple::x86:
341+
case llvm::Triple::x86_64:
342+
this->HasFloat128 = true;
343+
break;
344+
}
345+
}
334346
};
335347

336348
// Linux target

clang/test/CodeGenCXX/float128-declarations.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@
66
// RUN: %s -o - | FileCheck %s -check-prefix=CHECK-X86
77
// RUN: %clang_cc1 -emit-llvm -triple x86_64-unknown-linux-gnu -std=c++11 \
88
// RUN: %s -o - | FileCheck %s -check-prefix=CHECK-X86
9+
// RUN: %clang_cc1 -emit-llvm -triple i386-unknown-hurd-gnu -std=c++11 \
10+
// RUN: %s -o - | FileCheck %s -check-prefix=CHECK-X86
11+
// RUN: %clang_cc1 -emit-llvm -triple x86_64-unknown-hurd-gnu -std=c++11 \
12+
// RUN: %s -o - | FileCheck %s -check-prefix=CHECK-X86
913
// RUN: %clang_cc1 -emit-llvm -triple i386-unknown-freebsd -std=c++11 \
1014
// RUN: %s -o - | FileCheck %s -check-prefix=CHECK-X86
1115
// RUN: %clang_cc1 -emit-llvm -triple amd64-unknown-freebsd -std=c++11 \

0 commit comments

Comments
 (0)