@@ -1000,38 +1000,48 @@ static zend_always_inline void *zend_hash_get_current_data_ptr_ex(HashTable *ht,
1000
1000
((zval*)(((char*)(_el)) - (_size)))
1001
1001
1002
1002
#define _ZEND_HASH_FOREACH_VAL (_ht ) do { \
1003
+ ZEND_DIAGNOSTIC_IGNORED_START("-Wshadow") \
1003
1004
const HashTable *__ht = (_ht); \
1004
1005
uint32_t _count = __ht->nNumUsed; \
1005
1006
size_t _size = ZEND_HASH_ELEMENT_SIZE(__ht); \
1006
1007
zval *_z = __ht->arPacked; \
1008
+ ZEND_DIAGNOSTIC_IGNORED_END \
1007
1009
for (; _count > 0; _z = ZEND_HASH_NEXT_ELEMENT(_z, _size), _count--) { \
1008
1010
if (UNEXPECTED(Z_TYPE_P(_z) == IS_UNDEF)) continue;
1009
1011
1010
1012
#define _ZEND_HASH_REVERSE_FOREACH_VAL (_ht ) do { \
1013
+ ZEND_DIAGNOSTIC_IGNORED_START("-Wshadow") \
1011
1014
const HashTable *__ht = (_ht); \
1012
1015
uint32_t _idx = __ht->nNumUsed; \
1013
1016
size_t _size = ZEND_HASH_ELEMENT_SIZE(__ht); \
1014
1017
zval *_z = ZEND_HASH_ELEMENT_EX(__ht, _idx, _size); \
1018
+ ZEND_DIAGNOSTIC_IGNORED_END \
1015
1019
for (;_idx > 0; _idx--) { \
1016
1020
_z = ZEND_HASH_PREV_ELEMENT(_z, _size); \
1017
1021
if (UNEXPECTED(Z_TYPE_P(_z) == IS_UNDEF)) continue;
1018
1022
1019
1023
#define ZEND_HASH_FOREACH_FROM (_ht , indirect , _from ) do { \
1024
+ ZEND_DIAGNOSTIC_IGNORED_START("-Wshadow") \
1020
1025
const HashTable *__ht = (_ht); \
1021
1026
zend_ulong __h; \
1022
1027
zend_string *__key = NULL; \
1023
1028
uint32_t _idx = (_from); \
1024
1029
size_t _size = ZEND_HASH_ELEMENT_SIZE(__ht); \
1025
1030
zval *__z = ZEND_HASH_ELEMENT_EX(__ht, _idx, _size); \
1026
1031
uint32_t _count = __ht->nNumUsed - _idx; \
1032
+ ZEND_DIAGNOSTIC_IGNORED_END \
1027
1033
for (;_count > 0; _count--) { \
1034
+ ZEND_DIAGNOSTIC_IGNORED_START("-Wshadow") \
1028
1035
zval *_z = __z; \
1036
+ ZEND_DIAGNOSTIC_IGNORED_END \
1029
1037
if (HT_IS_PACKED(__ht)) { \
1030
1038
__z++; \
1031
1039
__h = _idx; \
1032
1040
_idx++; \
1033
1041
} else { \
1042
+ ZEND_DIAGNOSTIC_IGNORED_START("-Wshadow") \
1034
1043
Bucket *_p = (Bucket*)__z; \
1044
+ ZEND_DIAGNOSTIC_IGNORED_END \
1035
1045
__z = &(_p + 1)->val; \
1036
1046
__h = _p->h; \
1037
1047
__key = _p->key; \
@@ -1045,20 +1055,24 @@ static zend_always_inline void *zend_hash_get_current_data_ptr_ex(HashTable *ht,
1045
1055
#define ZEND_HASH_FOREACH (_ht , indirect ) ZEND_HASH_FOREACH_FROM(_ht, indirect, 0)
1046
1056
1047
1057
#define ZEND_HASH_REVERSE_FOREACH (_ht , indirect ) do { \
1058
+ ZEND_DIAGNOSTIC_IGNORED_START("-Wshadow") \
1048
1059
const HashTable *__ht = (_ht); \
1049
1060
uint32_t _idx = __ht->nNumUsed; \
1050
1061
zval *_z; \
1051
1062
zend_ulong __h; \
1052
1063
zend_string *__key = NULL; \
1053
1064
size_t _size = ZEND_HASH_ELEMENT_SIZE(__ht); \
1054
1065
zval *__z = ZEND_HASH_ELEMENT_EX(__ht, _idx, _size); \
1066
+ ZEND_DIAGNOSTIC_IGNORED_END \
1055
1067
for (;_idx > 0; _idx--) { \
1056
1068
if (HT_IS_PACKED(__ht)) { \
1057
1069
__z--; \
1058
1070
_z = __z; \
1059
1071
__h = _idx - 1; \
1060
1072
} else { \
1073
+ ZEND_DIAGNOSTIC_IGNORED_START("-Wshadow") \
1061
1074
Bucket *_p = (Bucket*)__z; \
1075
+ ZEND_DIAGNOSTIC_IGNORED_END \
1062
1076
_p--; \
1063
1077
__z = &_p->val; \
1064
1078
_z = __z; \
@@ -1234,12 +1248,16 @@ static zend_always_inline void *zend_hash_get_current_data_ptr_ex(HashTable *ht,
1234
1248
1235
1249
/* Hash array iterators */
1236
1250
#define ZEND_HASH_MAP_FOREACH_FROM (_ht , indirect , _from ) do { \
1251
+ ZEND_DIAGNOSTIC_IGNORED_START("-Wshadow") \
1237
1252
const HashTable *__ht = (_ht); \
1238
1253
Bucket *_p = __ht->arData + (_from); \
1239
1254
const Bucket *_end = __ht->arData + __ht->nNumUsed; \
1255
+ ZEND_DIAGNOSTIC_IGNORED_END \
1240
1256
ZEND_ASSERT(!HT_IS_PACKED(__ht)); \
1241
1257
for (; _p != _end; _p++) { \
1258
+ ZEND_DIAGNOSTIC_IGNORED_START("-Wshadow") \
1242
1259
zval *_z = &_p->val; \
1260
+ ZEND_DIAGNOSTIC_IGNORED_END \
1243
1261
if (indirect && Z_TYPE_P(_z) == IS_INDIRECT) { \
1244
1262
_z = Z_INDIRECT_P(_z); \
1245
1263
} \
@@ -1248,10 +1266,12 @@ static zend_always_inline void *zend_hash_get_current_data_ptr_ex(HashTable *ht,
1248
1266
#define ZEND_HASH_MAP_FOREACH (_ht , indirect ) ZEND_HASH_MAP_FOREACH_FROM(_ht, indirect, 0)
1249
1267
1250
1268
#define ZEND_HASH_MAP_REVERSE_FOREACH (_ht , indirect ) do { \
1269
+ ZEND_DIAGNOSTIC_IGNORED_START("-Wshadow") \
1251
1270
/* const */ HashTable *__ht = (_ht); \
1252
1271
uint32_t _idx = __ht->nNumUsed; \
1253
1272
Bucket *_p = __ht->arData + _idx; \
1254
1273
zval *_z; \
1274
+ ZEND_DIAGNOSTIC_IGNORED_END \
1255
1275
ZEND_ASSERT(!HT_IS_PACKED(__ht)); \
1256
1276
for (_idx = __ht->nNumUsed; _idx > 0; _idx--) { \
1257
1277
_p--; \
@@ -1265,11 +1285,15 @@ static zend_always_inline void *zend_hash_get_current_data_ptr_ex(HashTable *ht,
1265
1285
ZEND_ASSERT(!HT_IS_PACKED(__ht)); \
1266
1286
__ht->nNumOfElements--; \
1267
1287
do { \
1288
+ ZEND_DIAGNOSTIC_IGNORED_START("-Wshadow") \
1268
1289
uint32_t j = HT_IDX_TO_HASH(_idx - 1); \
1269
1290
uint32_t nIndex = _p->h | __ht->nTableMask; \
1270
1291
uint32_t i = HT_HASH(__ht, nIndex); \
1292
+ ZEND_DIAGNOSTIC_IGNORED_END \
1271
1293
if (UNEXPECTED(j != i)) { \
1294
+ ZEND_DIAGNOSTIC_IGNORED_START("-Wshadow") \
1272
1295
Bucket *prev = HT_HASH_TO_BUCKET(__ht, i); \
1296
+ ZEND_DIAGNOSTIC_IGNORED_END \
1273
1297
while (Z_NEXT(prev->val) != j) { \
1274
1298
i = Z_NEXT(prev->val); \
1275
1299
prev = HT_HASH_TO_BUCKET(__ht, i); \
@@ -1442,10 +1466,12 @@ static zend_always_inline void *zend_hash_get_current_data_ptr_ex(HashTable *ht,
1442
1466
1443
1467
/* Packed array iterators */
1444
1468
#define ZEND_HASH_PACKED_FOREACH_FROM (_ht , _from ) do { \
1469
+ ZEND_DIAGNOSTIC_IGNORED_START("-Wshadow") \
1445
1470
const HashTable *__ht = (_ht); \
1446
1471
zend_ulong _idx = (_from); \
1447
1472
zval *_z = __ht->arPacked + (_from); \
1448
1473
zval *_end = __ht->arPacked + __ht->nNumUsed; \
1474
+ ZEND_DIAGNOSTIC_IGNORED_END \
1449
1475
ZEND_ASSERT(HT_IS_PACKED(__ht)); \
1450
1476
for (;_z != _end; _z++, _idx++) { \
1451
1477
(void) _idx; \
@@ -1454,9 +1480,11 @@ static zend_always_inline void *zend_hash_get_current_data_ptr_ex(HashTable *ht,
1454
1480
#define ZEND_HASH_PACKED_FOREACH (_ht ) ZEND_HASH_PACKED_FOREACH_FROM(_ht, 0)
1455
1481
1456
1482
#define ZEND_HASH_PACKED_REVERSE_FOREACH (_ht ) do { \
1483
+ ZEND_DIAGNOSTIC_IGNORED_START("-Wshadow") \
1457
1484
const HashTable *__ht = (_ht); \
1458
1485
zend_ulong _idx = __ht->nNumUsed; \
1459
1486
zval *_z = __ht->arPacked + _idx; \
1487
+ ZEND_DIAGNOSTIC_IGNORED_END \
1460
1488
ZEND_ASSERT(HT_IS_PACKED(__ht)); \
1461
1489
while (_idx > 0) { \
1462
1490
_z--; \
@@ -1514,9 +1542,11 @@ static zend_always_inline void *zend_hash_get_current_data_ptr_ex(HashTable *ht,
1514
1542
* (HashTable must have enough free buckets).
1515
1543
*/
1516
1544
#define ZEND_HASH_FILL_PACKED (ht ) do { \
1545
+ ZEND_DIAGNOSTIC_IGNORED_START("-Wshadow") \
1517
1546
HashTable *__fill_ht = (ht); \
1518
1547
zval *__fill_val = __fill_ht->arPacked + __fill_ht->nNumUsed; \
1519
1548
uint32_t __fill_idx = __fill_ht->nNumUsed; \
1549
+ ZEND_DIAGNOSTIC_IGNORED_END \
1520
1550
ZEND_ASSERT(HT_IS_PACKED(__fill_ht));
1521
1551
1522
1552
#define ZEND_HASH_FILL_GROW () do { \
0 commit comments