zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit f9f9c4a083b4e268caac3feff3a848df7a4f17cb (tree)
parent c442fbf82a67740d91664674650d27ddf3cd11d6
Author: Andrew Kelley <andrew@ziglang.org>
Date:   Wed, 13 Sep 2023 15:07:01 -0700

clang bindings: fix APFloatBaseSemantics enum

This wasn't caught due to missing C++ static asserts for this enum. This
commit adds them and fixes the enum.

Diffstat:
Msrc/clang.zig | 4++++
Msrc/zig_clang.cpp | 14++++++++++++++
Msrc/zig_clang.h | 9++++++++-
3 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/src/clang.zig b/src/clang.zig @@ -113,7 +113,11 @@ pub const APFloatBaseSemantics = enum(c_int) { IEEEquad, PPCDoubleDouble, Float8E5M2, + Float8E5M2FNUZ, Float8E4M3FN, + Float8E4M3FNUZ, + Float8E4M3B11FNUZ, + FloatTF32, x87DoubleExtended, }; diff --git a/src/zig_clang.cpp b/src/zig_clang.cpp @@ -3986,3 +3986,17 @@ bool ZigClangIsLLVMUsingSeparateLibcxx() { return EC.category() != std::generic_category(); } +static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_IEEEhalf == llvm::APFloatBase::S_IEEEhalf, ""); +static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_BFloat == llvm::APFloatBase::S_BFloat); +static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_IEEEsingle == llvm::APFloatBase::S_IEEEsingle); +static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_IEEEdouble == llvm::APFloatBase::S_IEEEdouble); +static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_IEEEquad == llvm::APFloatBase::S_IEEEquad); +static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_PPCDoubleDouble == llvm::APFloatBase::S_PPCDoubleDouble); +static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float8E5M2 == llvm::APFloatBase::S_Float8E5M2); +static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float8E5M2FNUZ == llvm::APFloatBase::S_Float8E5M2FNUZ); +static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float8E4M3FN == llvm::APFloatBase::S_Float8E4M3FN); +static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float8E4M3FNUZ == llvm::APFloatBase::S_Float8E4M3FNUZ); +static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float8E4M3B11FNUZ == llvm::APFloatBase::S_Float8E4M3B11FNUZ); +static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_FloatTF32 == llvm::APFloatBase::S_FloatTF32); +static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_x87DoubleExtended == llvm::APFloatBase::S_x87DoubleExtended); +static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_MaxSemantics == llvm::APFloatBase::S_MaxSemantics); diff --git a/src/zig_clang.h b/src/zig_clang.h @@ -1219,9 +1219,16 @@ enum ZigClangAPFloatBase_Semantics { ZigClangAPFloatBase_Semantics_BFloat, ZigClangAPFloatBase_Semantics_IEEEsingle, ZigClangAPFloatBase_Semantics_IEEEdouble, - ZigClangAPFloatBase_Semantics_x87DoubleExtended, ZigClangAPFloatBase_Semantics_IEEEquad, ZigClangAPFloatBase_Semantics_PPCDoubleDouble, + ZigClangAPFloatBase_Semantics_Float8E5M2, + ZigClangAPFloatBase_Semantics_Float8E5M2FNUZ, + ZigClangAPFloatBase_Semantics_Float8E4M3FN, + ZigClangAPFloatBase_Semantics_Float8E4M3FNUZ, + ZigClangAPFloatBase_Semantics_Float8E4M3B11FNUZ, + ZigClangAPFloatBase_Semantics_FloatTF32, + ZigClangAPFloatBase_Semantics_x87DoubleExtended, + ZigClangAPFloatBase_Semantics_MaxSemantics = ZigClangAPFloatBase_Semantics_x87DoubleExtended, }; enum ZigClangStringLiteral_StringKind {