From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29653 invoked by alias); 14 Sep 2008 23:26:31 -0000 Received: (qmail 28784 invoked by uid 48); 14 Sep 2008 23:25:22 -0000 Date: Sun, 14 Sep 2008 23:26:00 -0000 Subject: [Bug libstdc++/37522] New: [4.4 regression] Incorrect vswprintf prototype breaks __to_xstring X-Bugzilla-Reason: CC Message-ID: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "aaronavay62 at aaronwl dot com" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2008-09/txt/msg01741.txt.bz2 When attempting a bootstrap including libstdc++-v3, the following error will be encountered. libtool: compile: /mingw/src/gccf/./gcc/xgcc -shared-libgcc -B/mingw/src/gccf/./gcc -nostdinc++ -L/mingw/src/gccf/i386-pc-mingw32/libstdc++-v3/src -L/mingw/src/gccf/i386-pc-mingw32/libstdc++-v3/src/.libs -L/mingw/src/gccf/i386-pc-mingw32/winsup/mingw -L/mingw/src/gccf/i386-pc-mingw32/winsup/w32api/lib -isystem /mingw/src/svn/winsup/mingw/include -isystem /mingw/src/svn/winsup/w32api/include -B/mingw/i386-pc-mingw32/bin/ -B/mingw/i386-pc-mingw32/lib/ -isystem /mingw/i386-pc-mingw32/include -isystem /mingw/i386-pc-mingw32/sys-include -I/mingw/src/gccf/i386-pc-mingw32/libstdc++-v3/include/i386-pc-mingw32 -I/mingw/src/gccf/i386-pc-mingw32/libstdc++-v3/include -I/mingw/src/svn/libstdc++-v3/libsupc++ -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -g -O2 -std=gnu++0x -c ../../../../svn/libstdc++-v3/src/functexcept.cc -DDLL_EXPORT -DPIC -o .libs/functexcept.o In file included from /mingw/src/gccf/i386-pc-mingw32/libstdc++-v3/include/string:58, from /mingw/src/gccf/i386-pc-mingw32/libstdc++-v3/include/stdexcept:44, from ../../../../svn/libstdc++-v3/src/functexcept.cc:31: /mingw/src/gccf/i386-pc-mingw32/libstdc++-v3/include/bits/basic_string.h: In function 'std::wstring std::to_wstring(long long int)': /mingw/src/gccf/i386-pc-mingw32/libstdc++-v3/include/bits/basic_string.h:2675: error: no matching function for call to '__to_xstring(int (*)(wchar_t*, const wchar_t*, char*), unsigned int, const wchar_t [5], long long int&)' /mingw/src/gccf/i386-pc-mingw32/libstdc++-v3/include/bits/basic_string.h: In function 'std::wstring std::to_wstring(long long unsigned int)': /mingw/src/gccf/i386-pc-mingw32/libstdc++-v3/include/bits/basic_string.h:2681: error: no matching function for call to '__to_xstring(int (*)(wchar_t*, const wchar_t*, char*), unsigned int, const wchar_t [5], long long unsigned int&)' /mingw/src/gccf/i386-pc-mingw32/libstdc++-v3/include/bits/basic_string.h: In function 'std::wstring std::to_wstring(long double)': /mingw/src/gccf/i386-pc-mingw32/libstdc++-v3/include/bits/basic_string.h:2689: error: no matching function for call to '__to_xstring(int (*)(wchar_t*, const wchar_t*, char*), const int&, const wchar_t [4], long double&)' make[4]: *** [functexcept.lo] Error 1 The problem is that MSVCRT's prototype for vswprintf is incorrect, and differs from the standard C version. This may not be easy to fix in mingwrt. However, the _vsnwprintf function has the correct prototype and works with __to_xstring. I guess the solution is to make libstdc++ use _vsnwprintf instead of vswprintf on *-mingw32. -- Summary: [4.4 regression] Incorrect vswprintf prototype breaks __to_xstring Product: gcc Version: 4.4.0 Status: UNCONFIRMED Keywords: build Severity: major Priority: P3 Component: libstdc++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: aaronavay62 at aaronwl dot com GCC target triplet: *-mingw32 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37522