Skip to content

Commit 62341c0

Browse files
iluuu1994kocsismate
authored andcommitted
Fix type macros for C++
They are now used in arginfo files.
1 parent 3e0e7e3 commit 62341c0

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

Zend/zend_types.h

+14-6
Original file line numberDiff line numberDiff line change
@@ -269,28 +269,36 @@ typedef struct {
269269
#define ZEND_TYPE_ALLOW_NULL(t) \
270270
(((t).type_mask & _ZEND_TYPE_NULLABLE_BIT) != 0)
271271

272+
#ifdef __cplusplus
273+
# define _ZEND_TYPE_PREFIX zend_type
274+
#else
275+
/* FIXME: We could add (zend_type) here at some point but this breaks in MSVC because
276+
* (zend_type)(zend_type){} is no longer considered constant. */
277+
# define _ZEND_TYPE_PREFIX
278+
#endif
279+
272280
#define ZEND_TYPE_INIT_NONE(extra_flags) \
273-
{ NULL, (extra_flags) }
281+
_ZEND_TYPE_PREFIX { NULL, (extra_flags) }
274282

275283
#define ZEND_TYPE_INIT_MASK(_type_mask) \
276-
{ NULL, (_type_mask) }
284+
_ZEND_TYPE_PREFIX { NULL, (_type_mask) }
277285

278286
#define ZEND_TYPE_INIT_CODE(code, allow_null, extra_flags) \
279287
ZEND_TYPE_INIT_MASK(((code) == _IS_BOOL ? MAY_BE_BOOL : ( (code) == IS_ITERABLE ? _ZEND_TYPE_ITERABLE_BIT : ((code) == IS_MIXED ? MAY_BE_ANY : (1 << (code))))) \
280288
| ((allow_null) ? _ZEND_TYPE_NULLABLE_BIT : 0) | (extra_flags))
281289

282290
#define ZEND_TYPE_INIT_PTR(ptr, type_kind, allow_null, extra_flags) \
283-
{ (void *) (ptr), \
291+
_ZEND_TYPE_PREFIX { (void *) (ptr), \
284292
(type_kind) | ((allow_null) ? _ZEND_TYPE_NULLABLE_BIT : 0) | (extra_flags) }
285293

286294
#define ZEND_TYPE_INIT_PTR_MASK(ptr, type_mask) \
287-
{ (void *) (ptr), (type_mask) }
295+
_ZEND_TYPE_PREFIX { (void *) (ptr), (type_mask) }
288296

289297
#define ZEND_TYPE_INIT_UNION(ptr, extra_flags) \
290-
{ (void *) (ptr), (_ZEND_TYPE_LIST_BIT|_ZEND_TYPE_UNION_BIT) | (extra_flags) }
298+
_ZEND_TYPE_PREFIX { (void *) (ptr), (_ZEND_TYPE_LIST_BIT|_ZEND_TYPE_UNION_BIT) | (extra_flags) }
291299

292300
#define ZEND_TYPE_INIT_INTERSECTION(ptr, extra_flags) \
293-
{ (void *) (ptr), (_ZEND_TYPE_LIST_BIT|_ZEND_TYPE_INTERSECTION_BIT) | (extra_flags) }
301+
_ZEND_TYPE_PREFIX { (void *) (ptr), (_ZEND_TYPE_LIST_BIT|_ZEND_TYPE_INTERSECTION_BIT) | (extra_flags) }
294302

295303
#define ZEND_TYPE_INIT_CLASS(class_name, allow_null, extra_flags) \
296304
ZEND_TYPE_INIT_PTR(class_name, _ZEND_TYPE_NAME_BIT, allow_null, extra_flags)

0 commit comments

Comments
 (0)