User Activity

  • Posted a comment on ticket #481 on MinGW-w64 - for 32 and 64 bit Windows

    Now the fix is in master branch in commit d60139 Please check if it works for you.

  • Posted a comment on ticket #481 on MinGW-w64 - for 32 and 64 bit Windows

    The example how to avoid that false-positive warning in previous post does not work in C++ mode, because __mingw_choose_expr is C++ is ternary operator. Possible fix which can work in both C and C++ mode to avoid that false-positive warning can be: #define isnan(x) \ __mingw_choose_expr ( \ __mingw_types_compatible_p (__typeof__ (x), double), \ __isnan((double)(x)), \ __mingw_choose_expr ( \ __mingw_types_compatible_p (__typeof__ (x), float), \ __isnanf((float)(x)), \ __mingw_choose_expr ( \ __mingw_types_compatible_p...

  • Posted a comment on ticket #481 on MinGW-w64 - for 32 and 64 bit Windows

    You can look into objdump to check that the correct function is called. $ objdump -dr isnan.o isnan.o: file format pe-i386 Disassembly of section .text: 00000000 <_isnan_wrapper>: 0: 55 push %ebp 1: 89 e5 mov %esp,%ebp 3: 83 ec 28 sub $0x28,%esp 6: 8b 45 08 mov 0x8(%ebp),%eax 9: 89 45 f0 mov %eax,-0x10(%ebp) c: 8b 45 0c mov 0xc(%ebp),%eax f: 89 45 f4 mov %eax,-0xc(%ebp) 12: dd 45 f0 fldl -0x10(%ebp) 15: dd 1c 24 fstpl (%esp) 18: e8 00 00 00 00 call 1d <_isnan_wrapper+0x1d> 19: DISP32 ___isnan 1d:...

  • Posted a comment on ticket #481 on MinGW-w64 - for 32 and 64 bit Windows

    Hello, I have looked at this problem and mingw-w64 math.h header file is choosing the correct __isnan function. The problem is in how gcc throws -Wconversion warnings for __builtin_choose_expr usage. isnan in math is defined as: #define isnan(x) \ __mingw_choose_expr ( \ __mingw_types_compatible_p (__typeof__ (x), double), \ __isnan(x), \ __mingw_choose_expr ( \ __mingw_types_compatible_p (__typeof__ (x), float), \ __isnanf(x), \ __mingw_choose_expr ( \ __mingw_types_compatible_p (__typeof__ (x),...

  • Posted a comment on ticket #991 on MinGW-w64 - for 32 and 64 bit Windows

    If you have not specified --with-default-msvcrt option at mingw-w64 compile time then for mingw-w64 releases before v12.0.0 the default is msvcrt.dll. With release mingw-w64 v12.0.0 release the default was changed to UCRT (collection of api-ms-win-crt-*.dll libs). If you still do not know then try locate libmsvcrt.a file in mingw-w64 installation tree. This file libmsvcrt.a is a copy of another file with name lib*cr*.a. Figure out which lib*cr*.a file is same as libmsvcrt.a and that lib*cr*.a file...

  • Posted a comment on ticket #991 on MinGW-w64 - for 32 and 64 bit Windows

    Option -mcrtdll is supported since gcc 14.0.0. If you want to target msvcrt.dll instead of UCRT then it is better to compile mingw-w64 as: ./configure --with-default-msvcrt=msvcrt-os

  • Posted a comment on ticket #991 on MinGW-w64 - for 32 and 64 bit Windows

    Fix was already released in mingw-w64 v12.0.0 version. Please check if it working for you. You can also mention the released fix in your SDL bugtracker report. Note that mingw-w64 now provides _strto[u]i64 and strto[u]ll functions for all builds (when targeting MSVCRT.DLL, it statically links own str* functions to final binary).

  • Posted a comment on ticket #966 on MinGW-w64 - for 32 and 64 bit Windows

    Fix was released in mingw-w64 v12.0.0 version.

View All

Personal Data

Username:
pali
Joined:
2021-09-21 13:41:49

Projects

  • No projects to display.

Personal Tools