@@ -263,28 +263,36 @@ typedef struct {
263
263
#define ZEND_TYPE_ALLOW_NULL (t ) \
264
264
(((t).type_mask & _ZEND_TYPE_NULLABLE_BIT) != 0)
265
265
266
+ #ifdef __cplusplus
267
+ # define _ZEND_TYPE_PREFIX zend_type
268
+ #else
269
+ /* FIXME: We could add (zend_type) here at some point but this breaks in MSVC because
270
+ * (zend_type)(zend_type){} is no longer considered constant. */
271
+ # define _ZEND_TYPE_PREFIX
272
+ #endif
273
+
266
274
#define ZEND_TYPE_INIT_NONE (extra_flags ) \
267
- { NULL, (extra_flags) }
275
+ _ZEND_TYPE_PREFIX { NULL, (extra_flags) }
268
276
269
277
#define ZEND_TYPE_INIT_MASK (_type_mask ) \
270
- { NULL, (_type_mask) }
278
+ _ZEND_TYPE_PREFIX { NULL, (_type_mask) }
271
279
272
280
#define ZEND_TYPE_INIT_CODE (code , allow_null , extra_flags ) \
273
281
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))))) \
274
282
| ((allow_null) ? _ZEND_TYPE_NULLABLE_BIT : 0) | (extra_flags))
275
283
276
284
#define ZEND_TYPE_INIT_PTR (ptr , type_kind , allow_null , extra_flags ) \
277
- { (void *) (ptr), \
285
+ _ZEND_TYPE_PREFIX { (void *) (ptr), \
278
286
(type_kind) | ((allow_null) ? _ZEND_TYPE_NULLABLE_BIT : 0) | (extra_flags) }
279
287
280
288
#define ZEND_TYPE_INIT_PTR_MASK (ptr , type_mask ) \
281
- { (void *) (ptr), (type_mask) }
289
+ _ZEND_TYPE_PREFIX { (void *) (ptr), (type_mask) }
282
290
283
291
#define ZEND_TYPE_INIT_UNION (ptr , extra_flags ) \
284
- { (void *) (ptr), (_ZEND_TYPE_LIST_BIT|_ZEND_TYPE_UNION_BIT) | (extra_flags) }
292
+ _ZEND_TYPE_PREFIX { (void *) (ptr), (_ZEND_TYPE_LIST_BIT|_ZEND_TYPE_UNION_BIT) | (extra_flags) }
285
293
286
294
#define ZEND_TYPE_INIT_INTERSECTION (ptr , extra_flags ) \
287
- { (void *) (ptr), (_ZEND_TYPE_LIST_BIT|_ZEND_TYPE_INTERSECTION_BIT) | (extra_flags) }
295
+ _ZEND_TYPE_PREFIX { (void *) (ptr), (_ZEND_TYPE_LIST_BIT|_ZEND_TYPE_INTERSECTION_BIT) | (extra_flags) }
288
296
289
297
#define ZEND_TYPE_INIT_CLASS (class_name , allow_null , extra_flags ) \
290
298
ZEND_TYPE_INIT_PTR(class_name, _ZEND_TYPE_NAME_BIT, allow_null, extra_flags)
0 commit comments