| Ticket UUID: | 1dcda0e862a79254fc1188f49848666b9490e991 | ||
| Title: | Build broken (trunk branch) tclCompExpr.c tclOOCall.c | ||
| Type: | Bug | Created on: | 2025-05-24 08:31:52 |
| Submitter: | fvogel | Assigned to: | jan.nijtmans |
| Subsystem: | None | Severity: | Severe |
| Priority: | 5 Medium | Last modified: | 2025-05-26 11:51:58 |
| Status: | Closed | Closed by: | jan.nijtmans |
| Resolution: | Fixed | Closed on: | 2025-05-26 11:51:58 |
| Version: | trunk, core-9-0-branch | ||
| Description: | ||||
|
Building Tcl trunk branch on Windows with MSVC 2022 spits: tclCompCmdsSZ.c tclCompExpr.c C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\..\generic\tclCompExpr.c(175): error C2220: l'avertissement suivant est traité comme une erreur C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\..\generic\tclCompExpr.c(175): warning C5287: les opérandes sont des types enum différents « LexemeTypes » et « LexemeCodes » ; utilisez un forçage de type explicite pour mettre cet avertissement en sourdine C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\..\generic\tclCompExpr.c(175): note: pour simplifier la migration, utilisez temporairement l'indicateur /Wv:18 avec la version du compilateur que vous avez utilisé pour générer sans avertissement C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\..\generic\tclCompExpr.c(185): warning C5287: les opérandes sont des types enum différents « LexemeTypes » et « LexemeCodes » ; utilisez un forçage de type explicite pour mettre cet avertissement en sourdine C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\..\generic\tclCompExpr.c(185): note: pour simplifier la migration, utilisez temporairement l'indicateur /Wv:18 avec la version du compilateur que vous avez utilisé pour générer sans avertissement C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\..\generic\tclCompExpr.c(186): warning C5287: les opérandes sont des types enum différents « LexemeTypes » et « LexemeCodes » ; utilisez un forçage de type explicite pour mettre cet avertissement en sourdine C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\..\generic\tclCompExpr.c(186): note: pour simplifier la migration, utilisez temporairement l'indicateur /Wv:18 avec la version du compilateur que vous avez utilisé pour générer sans avertissement C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\..\generic\tclCompExpr.c(187): warning C5287: les opérandes sont des types enum différents « LexemeTypes » et « LexemeCodes » ; utilisez un forçage de type explicite pour mettre cet avertissement en sourdine C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\..\generic\tclCompExpr.c(187): note: pour simplifier la migration, utilisez temporairement l'indicateur /Wv:18 avec la version du compilateur que vous avez utilisé pour générer sans avertissement C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\..\generic\tclCompExpr.c(218): warning C5287: les opérandes sont des types enum différents « LexemeTypes » et « LexemeCodes » ; utilisez un forçage de type explicite pour mettre cet avertissement en sourdine C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\..\generic\tclCompExpr.c(218): note: pour simplifier la migration, utilisez temporairement l'indicateur /Wv:18 avec la version du compilateur que vous avez utilisé pour générer sans avertissement C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\..\generic\tclCompExpr.c(219): warning C5287: les opérandes sont des types enum différents « LexemeTypes » et « LexemeCodes » ; utilisez un forçage de type explicite pour mettre cet avertissement en sourdine C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\..\generic\tclCompExpr.c(219): note: pour simplifier la migration, utilisez temporairement l'indicateur /Wv:18 avec la version du compilateur que vous avez utilisé pour générer sans avertissement Génération de code en cours... Compilation en cours... tclCompile.c tclConfig.c [...] tclOOBasic.c tclOOCall.c C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\..\generic\tclOOCall.c(57): error C2220: l'avertissement suivant est traité comme une erreur C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\..\generic\tclOOCall.c(57): warning C5287: les opérandes sont des types enum différents « TclOOCallChainFlags » et « ObjectFlags » ; utilisez un forçage de type explicite pour mettre cet avertissement en sourdine C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\..\generic\tclOOCall.c(57): note: pour simplifier la migration, utilisez temporairement l'indicateur /Wv:18 avec la version du compilateur que vous avez utilisé pour générer sans avertissement C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\..\generic\tclOOCall.c(1082): warning C5287: les opérandes sont des types enum différents « TclOOCallChainFlags » et « CallChainFlags » ; utilisez un forçage de type explicite pour mettre cet avertissement en sourdine C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\..\generic\tclOOCall.c(1082): note: pour simplifier la migration, utilisez temporairement l'indicateur /Wv:18 avec la version du compilateur que vous avez utilisé pour générer sans avertissement C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\..\generic\tclOOCall.c(1185): warning C5287: les opérandes sont des types enum différents « CallChainFlags » et « ObjectFlags » ; utilisez un forçage de type explicite pour mettre cet avertissement en sourdine C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\..\generic\tclOOCall.c(1185): note: pour simplifier la migration, utilisez temporairement l'indicateur /Wv:18 avec la version du compilateur que vous avez utilisé pour générer sans avertissement C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\..\generic\tclOOCall.c(1503): warning C5287: les opérandes sont des types enum différents « TclOOCallChainFlags » et « ObjectFlags » ; utilisez un forçage de type explicite pour mettre cet avertissement en sourdine C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\..\generic\tclOOCall.c(1503): note: pour simplifier la migration, utilisez temporairement l'indicateur /Wv:18 avec la version du compilateur que vous avez utilisé pour générer sans avertissement tclOODefineCmds.c tclOOInfo.c [...] tclVar.c Génération de code en cours... NMAKE : fatal error U1077: 'cl -nologo -c /DHAVE_CPUID=1 -W3 -wd4090 -wd4146 -wd4311 -wd4312 -WX -FpC:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\Debug_AMD64_VC1944\tcl_Dynamic\ -Zi -Od -fp:strict -RTC1 -MDd -I"C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\..\win" -I"C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\..\generic" -I"C:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\..\libtommath" /DMP_PREC=4 /Dinline=__inline /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /DMP_FIXED_CUTOFFS /DSTDC_HEADERS /DUSE_NMAKE=1 /DHAVE_STDINT_H=1 /DHAVE_INTTYPES_H=1 /DHAVE_STDBOOL_H=1 /DTCL_WITH_EXTERNAL_TOMMATH /DMP_64BIT /DTCL_CFG_DO64BIT /DBUILD_tcl -FoC:\Users\francois\Documents\Development\tcltk-fossil\tcl\win\Debug_AMD64_VC1944\tcl_Dynamic\ @C:\Users\francois\AppData\Local\Temp\nmAA18.tmp'á: code retour '0x2' Stop. (Sorry, error messages are in French). Interestingly this does not seem to happen at Github CI. In trunk the issue in tclCompExpr.c happens first with commit [47f9090e53]. In trunk the issue in tclOOCall.c happens first with commit [c6393caddb]. Strangely, these commits are several months old and I'm sure I have built Tcl trunk since these commits went in. Perhaps this is due to a yesterday's update of MSVC. I'm running MSVC 2022 64 biots version 17.14.2 | ||||
| User Comments: | ||||
apnadkarni added on 2025-05-25 16:30:07:
Strange. I build with VS 2022 too and do not see this. May depend on the revision. Mine is a little old. fvogel added on 2025-05-25 16:56:44:
It really is a new warning from recent VS 2022 versions. And we're not alone: https://bugs.openjdk.org/browse/JDK-8357193 : they disabled the warning. https://fossil-scm.org/forum/forumpost/a5a992e657 : they changed their code. jan.nijtmans added on 2025-05-26 11:51:58:
Fixed [a60bfcf236101794|here] by just disabling the warning. Since MSVC is the only compiler spitting out this warning, and the code would only become uglier when adapting for this warning .... | ||||
