Skip to content

Commit 10ac41f

Browse files
committed
Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3: Fix GH-20492: mbstring compile warning due to non-strings Fix GH-20491: SLES15 compile error with mbstring oniguruma
2 parents 6eb10dc + 159ef14 commit 10ac41f

File tree

4 files changed

+28
-4
lines changed

4 files changed

+28
-4
lines changed

NEWS

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ PHP NEWS
3030
. Fix some deprecations on newer libxml versions regarding input
3131
buffer/parser handling. (ndossche)
3232

33+
- MbString:
34+
. Fixed bug GH-20491 (SLES15 compile error with mbstring oniguruma).
35+
(ndossche)
36+
. Fixed bug GH-20492 (mbstring compile warning due to non-strings).
37+
(ndossche)
38+
3339
- Opcache:
3440
. Fixed bug GH-20329 (opcache.file_cache broken with full interned string
3541
buffer). (Arnaud)

ext/mbstring/libmbfl/filters/mbfilter_cjk.c

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,21 @@
2121
* This macro converts uppercase ASCII values to Regional Indicator codepoints */
2222
#define NFLAGS(c) (0x1F1A5+((unsigned int)(c)))
2323

24-
static const char nflags_s[10][2] = {"CN", "DE", "ES", "FR", "GB", "IT", "JP", "KR", "RU", "US"};
24+
#if __has_attribute(nonstring) && defined(__GNUC__) && ((!defined(__clang__) && __GNUC__ >= 15) || (defined(__clang_major__) && __clang_major__ >= 20))
25+
# define ZEND_NONSTRING __attribute__((nonstring))
26+
#else
27+
# define ZEND_NONSTRING
28+
#endif
29+
30+
static const char nflags_s[10][2] ZEND_NONSTRING = {"CN", "DE", "ES", "FR", "GB", "IT", "JP", "KR", "RU", "US"};
2531
static const int nflags_code_kddi[10] = { 0x2549, 0x2546, 0x24C0, 0x2545, 0x2548, 0x2547, 0x2750, 0x254A, 0x24C1, 0x27F7 };
2632
static const int nflags_code_sb[10] = { 0x2B0A, 0x2B05, 0x2B08, 0x2B04, 0x2B07, 0x2B06, 0x2B02, 0x2B0B, 0x2B09, 0x2B03 };
2733

2834
#define EMIT_KEYPAD_EMOJI(c) do { *snd = (c); return 0x20E3; } while(0)
2935
#define EMIT_FLAG_EMOJI(country) do { *snd = NFLAGS((country)[0]); return NFLAGS((country)[1]); } while(0)
3036

31-
static const char nflags_kddi[6][2] = {"FR", "DE", "IT", "GB", "CN", "KR"};
32-
static const char nflags_sb[10][2] = {"JP", "US", "FR", "DE", "IT", "GB", "ES", "RU", "CN", "KR"};
37+
static const char nflags_kddi[6][2] ZEND_NONSTRING = {"FR", "DE", "IT", "GB", "CN", "KR"};
38+
static const char nflags_sb[10][2] ZEND_NONSTRING = {"JP", "US", "FR", "DE", "IT", "GB", "ES", "RU", "CN", "KR"};
3339

3440
/* number -> (ku*94)+ten value for telephone keypad character */
3541
#define DOCOMO_KEYPAD(n) ((n) == 0 ? 0x296F : (0x2965 + (n)))

ext/mbstring/libmbfl/filters/mbfilter_utf8.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -725,7 +725,13 @@ static int mbfl_filt_conv_wchar_utf8_mobile(int c, mbfl_convert_filter *filter)
725725
* This macro converts uppercase ASCII values to Regional Indicator codepoints */
726726
#define NFLAGS(c) (0x1F1A5+(int)(c))
727727

728-
static const char nflags_s[10][2] = {"CN","DE","ES","FR","GB","IT","JP","KR","RU","US"};
728+
#if __has_attribute(nonstring) && defined(__GNUC__) && ((!defined(__clang__) && __GNUC__ >= 15) || (defined(__clang_major__) && __clang_major__ >= 20))
729+
# define ZEND_NONSTRING __attribute__((nonstring))
730+
#else
731+
# define ZEND_NONSTRING
732+
#endif
733+
734+
static const char nflags_s[10][2] ZEND_NONSTRING = {"CN","DE","ES","FR","GB","IT","JP","KR","RU","US"};
729735
static const int nflags_code_kddi[10] = { 0x2549, 0x2546, 0x24C0, 0x2545, 0x2548, 0x2547, 0x2750, 0x254A, 0x24C1, 0x27F7 };
730736
static const int nflags_code_sb[10] = { 0x2B0A, 0x2B05, 0x2B08, 0x2B04, 0x2B07, 0x2B06, 0x2B02, 0x2B0B, 0x2B09, 0x2B03 };
731737

ext/mbstring/php_onig_compat.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,10 @@
55
#define regex_t php_mb_regex_t
66
#define re_registers php_mb_re_registers
77

8+
/* Required for some distros that conditionally override PV_.
9+
* As we're in C99 this header is always available. */
10+
#ifndef HAVE_STDARG_H
11+
# define HAVE_STDARG_H
12+
#endif
13+
814
#endif /* _PHP_ONIG_COMPAT_H */

0 commit comments

Comments
 (0)