@@ -269,28 +269,36 @@ typedef struct {
269
269
#define ZEND_TYPE_ALLOW_NULL (t ) \
270
270
(((t).type_mask & _ZEND_TYPE_NULLABLE_BIT) != 0)
271
271
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
+
272
280
#define ZEND_TYPE_INIT_NONE (extra_flags ) \
273
- { NULL, (extra_flags) }
281
+ _ZEND_TYPE_PREFIX { NULL, (extra_flags) }
274
282
275
283
#define ZEND_TYPE_INIT_MASK (_type_mask ) \
276
- { NULL, (_type_mask) }
284
+ _ZEND_TYPE_PREFIX { NULL, (_type_mask) }
277
285
278
286
#define ZEND_TYPE_INIT_CODE (code , allow_null , extra_flags ) \
279
287
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))))) \
280
288
| ((allow_null) ? _ZEND_TYPE_NULLABLE_BIT : 0) | (extra_flags))
281
289
282
290
#define ZEND_TYPE_INIT_PTR (ptr , type_kind , allow_null , extra_flags ) \
283
- { (void *) (ptr), \
291
+ _ZEND_TYPE_PREFIX { (void *) (ptr), \
284
292
(type_kind) | ((allow_null) ? _ZEND_TYPE_NULLABLE_BIT : 0) | (extra_flags) }
285
293
286
294
#define ZEND_TYPE_INIT_PTR_MASK (ptr , type_mask ) \
287
- { (void *) (ptr), (type_mask) }
295
+ _ZEND_TYPE_PREFIX { (void *) (ptr), (type_mask) }
288
296
289
297
#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) }
291
299
292
300
#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) }
294
302
295
303
#define ZEND_TYPE_INIT_CLASS (class_name , allow_null , extra_flags ) \
296
304
ZEND_TYPE_INIT_PTR(class_name, _ZEND_TYPE_NAME_BIT, allow_null, extra_flags)
0 commit comments