jdenny added inline comments.
Comment at: clang/lib/Sema/SemaOpenMP.cpp:1596
<< Ty << E->getSourceRange();
+ if (Ty->isRealFloatingType()) {
+llvm::APFloatBase::Semantics Sem = llvm::APFloatBase::SemanticsToEnum(
ABataev wrote:
> jdenny wrote:
> > A
ABataev added inline comments.
Comment at: clang/lib/Sema/SemaOpenMP.cpp:1596
<< Ty << E->getSourceRange();
+ if (Ty->isRealFloatingType()) {
+llvm::APFloatBase::Semantics Sem = llvm::APFloatBase::SemanticsToEnum(
jdenny wrote:
> ABataev wrote:
> >
jdenny abandoned this revision.
jdenny added inline comments.
Comment at: clang/lib/Sema/SemaOpenMP.cpp:1596
<< Ty << E->getSourceRange();
+ if (Ty->isRealFloatingType()) {
+llvm::APFloatBase::Semantics Sem = llvm::APFloatBase::SemanticsToEnum(
ABat
ABataev added inline comments.
Comment at: clang/lib/Sema/SemaOpenMP.cpp:1596
<< Ty << E->getSourceRange();
+ if (Ty->isRealFloatingType()) {
+llvm::APFloatBase::Semantics Sem = llvm::APFloatBase::SemanticsToEnum(
jdenny wrote:
> ABataev wrote:
> >
jdenny added inline comments.
Comment at: clang/lib/Sema/SemaOpenMP.cpp:1596
<< Ty << E->getSourceRange();
+ if (Ty->isRealFloatingType()) {
+llvm::APFloatBase::Semantics Sem = llvm::APFloatBase::SemanticsToEnum(
ABataev wrote:
> jdenny wrote:
> > A
ABataev added inline comments.
Comment at: clang/lib/Sema/SemaOpenMP.cpp:1596
<< Ty << E->getSourceRange();
+ if (Ty->isRealFloatingType()) {
+llvm::APFloatBase::Semantics Sem = llvm::APFloatBase::SemanticsToEnum(
jdenny wrote:
> ABataev wrote:
> >
jdenny added inline comments.
Comment at: clang/lib/Sema/SemaOpenMP.cpp:1596
<< Ty << E->getSourceRange();
+ if (Ty->isRealFloatingType()) {
+llvm::APFloatBase::Semantics Sem = llvm::APFloatBase::SemanticsToEnum(
ABataev wrote:
> jdenny wrote:
> > A
ABataev added inline comments.
Comment at: clang/lib/Sema/SemaOpenMP.cpp:1596
<< Ty << E->getSourceRange();
+ if (Ty->isRealFloatingType()) {
+llvm::APFloatBase::Semantics Sem = llvm::APFloatBase::SemanticsToEnum(
jdenny wrote:
> ABataev wrote:
> >
jdenny added inline comments.
Comment at: clang/lib/Sema/SemaOpenMP.cpp:1596
<< Ty << E->getSourceRange();
+ if (Ty->isRealFloatingType()) {
+llvm::APFloatBase::Semantics Sem = llvm::APFloatBase::SemanticsToEnum(
ABataev wrote:
> jdenny wrote:
> > A
ABataev added inline comments.
Comment at: clang/lib/Sema/SemaOpenMP.cpp:1596
<< Ty << E->getSourceRange();
+ if (Ty->isRealFloatingType()) {
+llvm::APFloatBase::Semantics Sem = llvm::APFloatBase::SemanticsToEnum(
jdenny wrote:
> ABataev wrote:
> >
jdenny added inline comments.
Comment at: clang/lib/Sema/SemaOpenMP.cpp:1596
<< Ty << E->getSourceRange();
+ if (Ty->isRealFloatingType()) {
+llvm::APFloatBase::Semantics Sem = llvm::APFloatBase::SemanticsToEnum(
ABataev wrote:
> Why do we need all
ABataev added inline comments.
Comment at: clang/include/clang/Basic/DiagnosticSemaKinds.td:8515
"%0 is not supported on this target">;
+def err_type_not_equivalent : Error<
+ "%0 is not equivalent between host and target">;
No, this message shall tell someth
jdenny updated this revision to Diff 208286.
jdenny added a comment.
This incorporates all the improvements I think we've discussed so far:
- In diagnostics, distinguish between unsupported types and non-equivalent
types.
- Don't treat `__float128` and `long double` as equivalent.
- Compare exac
jdenny added inline comments.
Comment at: clang/lib/Sema/SemaOpenMP.cpp:1594
+ !Context.getTargetInfo().hasFloat128Type() &&
+ Context.getTargetInfo().getLongDoubleWidth() != 128) ||
(Ty->isIntegerType() && Context.getTypeSize(Ty) == 128 &&
ABa
ABataev added inline comments.
Comment at: clang/lib/Sema/SemaOpenMP.cpp:1594
+ !Context.getTargetInfo().hasFloat128Type() &&
+ Context.getTargetInfo().getLongDoubleWidth() != 128) ||
(Ty->isIntegerType() && Context.getTypeSize(Ty) == 128 &&
jd
jdenny added inline comments.
Comment at: clang/lib/Sema/SemaOpenMP.cpp:1594
+ !Context.getTargetInfo().hasFloat128Type() &&
+ Context.getTargetInfo().getLongDoubleWidth() != 128) ||
(Ty->isIntegerType() && Context.getTypeSize(Ty) == 128 &&
ABa
ABataev added inline comments.
Comment at: clang/lib/Sema/SemaOpenMP.cpp:1594
+ !Context.getTargetInfo().hasFloat128Type() &&
+ Context.getTargetInfo().getLongDoubleWidth() != 128) ||
(Ty->isIntegerType() && Context.getTypeSize(Ty) == 128 &&
Ma
MaskRay added inline comments.
Comment at: clang/lib/Sema/SemaOpenMP.cpp:1594
+ !Context.getTargetInfo().hasFloat128Type() &&
+ Context.getTargetInfo().getLongDoubleWidth() != 128) ||
(Ty->isIntegerType() && Context.getTypeSize(Ty) == 128 &&
AB
MaskRay added a comment.
Drive-by comment :)
In gcc, (1) -mlong-double-128 uses IEEE 754 quad as the representation of long
double on x86_64 (2) -mlong-double-128 -mabi=ieeelongdouble uses IEEE 754 quad
as the representation of long double on powerpc{32,64}. (On Linux
powerpc{32,64}, `-mlong
ABataev added inline comments.
Comment at: clang/lib/Sema/SemaOpenMP.cpp:1594
+ !Context.getTargetInfo().hasFloat128Type() &&
+ Context.getTargetInfo().getLongDoubleWidth() != 128) ||
(Ty->isIntegerType() && Context.getTypeSize(Ty) == 128 &&
jd
jdenny added inline comments.
Comment at: clang/lib/Sema/SemaOpenMP.cpp:1594
+ !Context.getTargetInfo().hasFloat128Type() &&
+ Context.getTargetInfo().getLongDoubleWidth() != 128) ||
(Ty->isIntegerType() && Context.getTypeSize(Ty) == 128 &&
ABa
ABataev added inline comments.
Comment at: clang/lib/Sema/SemaOpenMP.cpp:1594
+ !Context.getTargetInfo().hasFloat128Type() &&
+ Context.getTargetInfo().getLongDoubleWidth() != 128) ||
(Ty->isIntegerType() && Context.getTypeSize(Ty) == 128 &&
jd
jdenny added inline comments.
Comment at: clang/lib/Sema/SemaOpenMP.cpp:1594
+ !Context.getTargetInfo().hasFloat128Type() &&
+ Context.getTargetInfo().getLongDoubleWidth() != 128) ||
(Ty->isIntegerType() && Context.getTypeSize(Ty) == 128 &&
ABa
ABataev added inline comments.
Comment at: clang/lib/Sema/SemaOpenMP.cpp:1594
+ !Context.getTargetInfo().hasFloat128Type() &&
+ Context.getTargetInfo().getLongDoubleWidth() != 128) ||
(Ty->isIntegerType() && Context.getTypeSize(Ty) == 128 &&
jd
jdenny added inline comments.
Comment at: clang/lib/Sema/SemaOpenMP.cpp:1594
+ !Context.getTargetInfo().hasFloat128Type() &&
+ Context.getTargetInfo().getLongDoubleWidth() != 128) ||
(Ty->isIntegerType() && Context.getTypeSize(Ty) == 128 &&
ABa
ABataev added inline comments.
Comment at: clang/lib/Sema/SemaOpenMP.cpp:1594
+ !Context.getTargetInfo().hasFloat128Type() &&
+ Context.getTargetInfo().getLongDoubleWidth() != 128) ||
(Ty->isIntegerType() && Context.getTypeSize(Ty) == 128 &&
jd
jdenny added inline comments.
Comment at: clang/lib/Sema/SemaOpenMP.cpp:1594
+ !Context.getTargetInfo().hasFloat128Type() &&
+ Context.getTargetInfo().getLongDoubleWidth() != 128) ||
(Ty->isIntegerType() && Context.getTypeSize(Ty) == 128 &&
ABa
ABataev added inline comments.
Comment at: clang/lib/Sema/SemaOpenMP.cpp:1594
+ !Context.getTargetInfo().hasFloat128Type() &&
+ Context.getTargetInfo().getLongDoubleWidth() != 128) ||
(Ty->isIntegerType() && Context.getTypeSize(Ty) == 128 &&
jd
jdenny added inline comments.
Comment at: clang/lib/Sema/SemaOpenMP.cpp:1594
+ !Context.getTargetInfo().hasFloat128Type() &&
+ Context.getTargetInfo().getLongDoubleWidth() != 128) ||
(Ty->isIntegerType() && Context.getTypeSize(Ty) == 128 &&
ABa
ABataev added inline comments.
Comment at: clang/lib/Sema/SemaOpenMP.cpp:1594
+ !Context.getTargetInfo().hasFloat128Type() &&
+ Context.getTargetInfo().getLongDoubleWidth() != 128) ||
(Ty->isIntegerType() && Context.getTypeSize(Ty) == 128 &&
Hm
jdenny created this revision.
jdenny added a reviewer: ABataev.
Herald added subscribers: jdoerfert, guansong.
Herald added a project: clang.
For example, without this fix, when the host is x86_64, long double is
sometimes rejected when offloading to x86_64:
$ cat test.c
int main() {
long
31 matches
Mail list logo