@@ -129,6 +129,19 @@ inline PyObject* Clif_PyObjFrom(absl::uint128 c, const py::PostConv& pc) {
129
129
return pc.Apply (PyNumber_Add (hi, lo));
130
130
}
131
131
#endif
132
+
133
+ #ifdef ABSL_HAVE_INTRINSIC_INT128
134
+ // CLIF use2 `__int128` as int
135
+ inline PyObject* Clif_PyObjFrom (__int128 c, const py::PostConv& pc) {
136
+ return Clif_PyObjFrom (absl::int128{c}, pc);
137
+ }
138
+
139
+ // CLIF use2 `unsigned __int128` as int
140
+ inline PyObject* Clif_PyObjFrom (unsigned __int128 c, const py::PostConv& pc) {
141
+ return Clif_PyObjFrom (absl::uint128{c}, pc);
142
+ }
143
+ #endif
144
+
132
145
// CLIF use `unsigned char` as uint8
133
146
inline PyObject* Clif_PyObjFrom (unsigned char c, const py::PostConv& pc) {
134
147
return pc.Apply (PyLong_FromLong (c));
@@ -188,6 +201,10 @@ bool Clif_PyObjAs(PyObject*, long long*); // NOLINT runtime/int
188
201
bool Clif_PyObjAs (PyObject*, absl::int128*); // NOLINT runtime/int
189
202
bool Clif_PyObjAs (PyObject*, absl::uint128*); // NOLINT runtime/int
190
203
#endif
204
+ #ifdef ABSL_HAVE_INTRINSIC_INT128
205
+ bool Clif_PyObjAs (PyObject*, __int128*);
206
+ bool Clif_PyObjAs (PyObject*, unsigned __int128*);
207
+ #endif
191
208
bool Clif_PyObjAs (PyObject*, short *); // NOLINT runtime/int
192
209
bool Clif_PyObjAs (PyObject*, int *);
193
210
bool Clif_PyObjAs (PyObject*, long *); // NOLINT runtime/int // Py_ssize_t on x64
0 commit comments