summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2024-04-26 13:00:46 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2024-04-26 13:00:46 (GMT)
commit3e835f1558212d3115dfac7b876343d41a79828b (patch)
tree3f9eae730bfa4b5ecc9c26208eebd61aed9d4463 /generic
parent0ab0962567b070c7108bac68afdfc380e7c994e4 (diff)
parent85c2057c0b593be725789dfcba67e124959e71b7 (diff)
downloadtcl-3e835f1558212d3115dfac7b876343d41a79828b.zip
tcl-3e835f1558212d3115dfac7b876343d41a79828b.tar.gz
tcl-3e835f1558212d3115dfac7b876343d41a79828b.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 c786392..69489de 100644
--- a/generic/tclDecls.h
+++ b/generic/tclDecls.h
@@ -4032,7 +4032,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 ‘_bool_Var’ 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