Skip to content

Linker.c uses of swprintf() fail to compile on gcc 4.8.3

swprintf has different signatures in mingw32, where it does not include the buffer size, and in mingw-w64, where it does. That of course breaks the code as mingw-w64 treats the pointer to the format string as a size_t. Bummer:

C:/.../inplace/mingw/i686-w64-mingw32/include/swprintf.inl:30:5: note: expected 'size_t' but argument is of type 'short unsigned int *' int swprintf (wchar_t *__stream, size_t __count, const wchar_t *__format, ...)

^

rts\Linker.c:1986:12:

warning: passing argument 2 of 'swprintf' makes integer from pointer without a cast [enabled by default]

swprintf(buf, L"lib%s.DLL", dll_name);

I have a fix pending to use snwprintf instead.

Trac metadata
Trac field Value
Version 7.9
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Runtime System
Test case
Differential revisions
BlockedBy
Related
Blocking
CC simonmar
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information