On Tuesday 17 December 2024 15:34:40 Martin Storsjö wrote:
> On Sat, 14 Dec 2024, Pali Rohár wrote:
> 
> > On Tuesday 03 December 2024 16:31:16 Martin Storsjö wrote:
> > > On Wed, 27 Nov 2024, Pali Rohár wrote:
> > > 
> > > > This ensures that mingwex wprintf implementation will not be used and
> > > > statically linked when not needed. And also make it more predictable as 
> > > > %ls
> > > > format is always using wide string.
> > > 
> > > But the mingwex implementation shouldn't really be used here anyway? All 
> > > of
> > > mingw-w64-crt is compiled with -D__USE_MINGW_ANSI_STDIO=0?
> > > 
> > > So this shouldn't have any functional effect, it only makes things 
> > > clearer -
> > > or do I misunderstand something here?
> > > 
> > > > ---
> > > > mingw-w64-crt/crt/crtexe.c | 4 ++--
> > > > 1 file changed, 2 insertions(+), 2 deletions(-)
> > > > 
> > > > diff --git a/mingw-w64-crt/crt/crtexe.c b/mingw-w64-crt/crt/crtexe.c
> > > > index cdf5dcd25894..2c6fbd7e7062 100644
> > > > --- a/mingw-w64-crt/crt/crtexe.c
> > > > +++ b/mingw-w64-crt/crt/crtexe.c
> > > > @@ -89,8 +89,8 @@ __mingw_invalidParameterHandler (const wchar_t * 
> > > > __UNUSED_PARAM_1(expression),
> > > >                                  uintptr_t __UNUSED_PARAM(pReserved))
> > > > {
> > > > #ifdef __MINGW_SHOW_INVALID_PARAMETER_EXCEPTION
> > > > -  wprintf(L"Invalid parameter detected in function %s. File: %s Line: 
> > > > %d\n", function, file, line);
> > > > -  wprintf(L"Expression: %s\n", expression);
> > > > +  __ms_wprintf(L"Invalid parameter detected in function %ls. File: %ls 
> > > > Line: %d\n", function, file, line);
> > > > +  __ms_wprintf(L"Expression: %ls\n", expression);
> > > > #endif
> > > > }
> > > 
> > > Both before and after this change, I get errors due to calling an 
> > > undefined
> > > function, if I compile this file with
> > > -D__MINGW_SHOW_INVALID_PARAMETER_EXCEPTION - so I'd like to have that 
> > > fixed
> > > too before I'd be willing to take on this change.
> > > 
> > > // Martin
> > 
> > Should be fixed by changes which I sent to the list, which defines all
> > __ms_* stdio functions for UCRT builds.
> 
> It makes no difference - these files in mingw-w64-crt are built with with a
> fixed __MSVCRT_VERSION__, independent of the default mode in the headers.
> 
> Please test compiling this file yourself with
> -D__MINGW_SHOW_INVALID_PARAMETER_EXCEPTION; before this change, it errors
> out with
> 
> ../crt/crtexe.c:90:3: error: call to undeclared function 'wprintf'; ISO C99
> and later do not support implicit function declarations
> [-Wimplicit-function-declaration]
>    90 |   wprintf(L"Invalid parameter detected in function %s. File: %s
> Line: %d\n", function, file, line);
>       |   ^
> 
> and with this change:
> 
> 
> ../crt/crtexe.c:90:3: error: call to undeclared function '__ms_wprintf'; ISO
> C99 and later do not support implicit function declarations
> [-Wimplicit-function-declaration]
>    90 |   __ms_wprintf(L"Invalid parameter detected in function %ls. File:
> %ls Line: %d\n", function, file, line);
>       |   ^
> 
> // Martin

Ou, I see. I must have done something totally wrong and so that during
my test the -D__MINGW_SHOW_INVALID_PARAMETER_EXCEPTION was not
propagated at all and the code was wrongly compiled and I thought that
everything is OK.

For next test, I have to check objdump -d output.


_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to