10000 [3.13] gh-118124: fix assert related C++ checks on Solaris/Illumos (G… · python/cpython@82db815 · GitHub
[go: up one dir, main page]

Skip to content

Commit 82db815

Browse files
authored
[3.13] gh-118124: fix assert related C++ checks on Solaris/Illumos (GH-121974) (#122108)
Fix check for static_assert() for C++ on some platforms.. (cherry picked from commit e88bd96)
1 parent 3ae1236 commit 82db815

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

Include/pymacro.h

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@
1515
// MSVC makes static_assert a keyword in C11-17, contrary to the standards.
1616
//
1717
// In C++11 and C2x, static_assert is a keyword, redefining is undefined
18-
// behaviour. So only define if building as C (if __STDC_VERSION__ is defined),
19-
// not C++, and only for C11-17.
18+
// behaviour. So only define if building as C, not C++ (if __cplusplus is
19+
// not defined), and only for C11-17.
2020
#if !defined(static_assert) && (defined(__GNUC__) || defined(__clang__)) \
21-
&& defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L \
22-
&& __STDC_VERSION__ <= 201710L
21+
&& !defined(__cplusplus) && defined(__STDC_VERSION__) \
22+
&& __STDC_VERSION__ >= 201112L && __STDC_VERSION__ <= 201710L
2323
# define static_assert _Static_assert
2424
#endif
2525

@@ -46,7 +46,8 @@
4646
/* Argument must be a char or an int in [-128, 127] or [0, 255]. */
4747
#define Py_CHARMASK(c) ((unsigned char)((c) & 0xff))
4848

49-
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
49+
#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L \
50+
&& !defined(__cplusplus))
5051
# define Py_BUILD_ASSERT_EXPR(cond) \
5152
((void)sizeof(struct { int dummy; _Static_assert(cond, #cond); }), \
5253
0)

0 commit comments

Comments
 (0)
0