From 0687fef515207f04fc3b520afaeb26a752c3e017 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Sun, 22 May 2022 11:49:18 +0000 Subject: Better solution for previous commit: See: [https://developercommunity.visualstudio.com/t/c-compiler-incorrect-propagation-of-const-qualifie/390711]. Conclusion: This is a bug in Visual Studio, better not get false warnings because of that. --- generic/tkCanvas.c | 2 +- win/rules.vc | 4 ++-- win/tkWinPort.h | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/generic/tkCanvas.c b/generic/tkCanvas.c index 0c9644c..9a7e938 100644 --- a/generic/tkCanvas.c +++ b/generic/tkCanvas.c @@ -4248,7 +4248,7 @@ DoItem( itemPtr->tagSpace += 5; newTagPtr = (Tk_Uid *)ckalloc(itemPtr->tagSpace * sizeof(Tk_Uid)); - memcpy((void *) newTagPtr, itemPtr->tagPtr, + memcpy(newTagPtr, itemPtr->tagPtr, itemPtr->numTags * sizeof(Tk_Uid)); if (itemPtr->tagPtr != itemPtr->staticTagSpace) { ckfree(itemPtr->tagPtr); diff --git a/win/rules.vc b/win/rules.vc index 3107756..47c0742 100644 --- a/win/rules.vc +++ b/win/rules.vc @@ -1470,8 +1470,8 @@ cdebug = $(cdebug) -Zi !endif # $(DEBUG) -# cwarn includes default warning levels, also C4146 is useless. -cwarn = $(WARNINGS) -wd4146 +# cwarn includes default warning levels, also C4090 (buggy) and C4146 is useless. +cwarn = $(WARNINGS) -wd4090 -wd4146 !if "$(MACHINE)" == "AMD64" || "$(MACHINE)" == "ARM64" # Disable pointer<->int warnings related to cast between different sizes diff --git a/win/tkWinPort.h b/win/tkWinPort.h index 0118608..7978730 100644 --- a/win/tkWinPort.h +++ b/win/tkWinPort.h @@ -95,6 +95,7 @@ * See ticket [916c1095438eae56]: GetVersionExW triggers warnings */ #if defined(_MSC_VER) +# pragma warning(disable:4090) /* see: https://developercommunity.visualstudio.com/t/c-compiler-incorrect-propagation-of-const-qualifie/390711 */ # pragma warning(disable:4146) # pragma warning(disable:4267) # pragma warning(disable:4244) -- cgit v0.12