summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2024-04-26 12:59:06 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2024-04-26 12:59:06 (GMT)
commit85c2057c0b593be725789dfcba67e124959e71b7 (patch)
tree6194ec87518aafd3ad7a9f8c9d62abab4568bb22 /generic
parent7fc1793e376c779b947e5698bb75726478706d09 (diff)
parentee896f77072ed47885d31b7123c435e7bdaacba8 (diff)
downloadtcl-85c2057c0b593be725789dfcba67e124959e71b7.zip
tcl-85c2057c0b593be725789dfcba67e124959e71b7.tar.gz
tcl-85c2057c0b593be725789dfcba67e124959e71b7.tar.bz2
Fix [1e48483c8b]: Use of non-standard C code in TCLBOOLWARNING
Diffstat (limited to 'generic')
-rw-r--r--generic/tclDecls.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/generic/tclDecls.h b/generic/tclDecls.h
index 75483a7..b03e114 100644
--- a/generic/tclDecls.h
+++ b/generic/tclDecls.h
@@ -4349,7 +4349,9 @@ extern const TclStubs *tclStubsPtr;
#undef Tcl_GetIndexFromObjStruct
#undef Tcl_GetBooleanFromObj
#undef Tcl_GetBoolean
-#ifdef __GNUC__
+#if !defined(__cplusplus) && !defined(BUILD_tcl) && !defined(BUILD_tk)
+# define TCLBOOLWARNING(boolPtr) (void)(sizeof(struct {_Static_assert(sizeof(*(boolPtr)) <= sizeof(int), "sizeof(boolPtr) too large");int dummy;})),
+#elif defined(__GNUC__)
/* If this gives: "error: size of array ‘_boolVar’ is negative", it means that sizeof(*boolPtr)>sizeof(int), which is not allowed */
# define TCLBOOLWARNING(boolPtr) ({__attribute__((unused)) char _bool_Var[sizeof(*(boolPtr)) > sizeof(int) ? -1 : 1];}),
#else