On Wednesday 21 December 2022 14:54:13 Martin Storsjö wrote:
> On Sat, 17 Dec 2022, LIU Hao wrote:
> 
> > 在 2022-12-17 20:01, Pali Rohár 写道:
> > > It would be nice if somebody who understand these patterns write some
> > > comment what is the real purpose of the first __pctype_func() definition
> > > because for me it looks like a dead code. And this pattern is repeated
> > > multiple times in lot of other header files.
> > 
> > If we look at 'apisetcconv.h' we can find similiar patterns as well, such 
> > as:
> > 
> >   ```
> >   #ifndef WINUSERAPI
> >   #ifndef _USER32_
> >   #define WINUSERAPI DECLSPEC_IMPORT
> >   #else
> >   #define WINUSERAPI
> >   #endif
> >   #endif
> >   ```
> > 
> > There is no static library for USER32.DLL, so all USER32 functions are
> > always `DECLSPEC_IMPORT`. So, when is `WINUSERAPI` defined empty? I
> > suspect it's only effective when building USER32.DLL itself by
> > Microsoft.
> 
> I guess so too.
> 
> For the purposes of mingw-w64 headers, I guess these stem from trying to
> match more details of Microsoft headers than strictly necessary. And with
> the potential use cases of mingw-w64, it's essentially dead code.
> 
> I would be fine with removing such cases from our headers as we don't have
> any practical way of testing those codepaths anyway - especially for cases
> where it can get in the way (like for those CRT headers - while the quoted
> one from apisetcconv.h seems harmless). In particular for CRT headers, where
> there are multiple alternatives for what DLL to interact with, those ifdefs
> are kinda problematic to fix right (unless you just do what's been done so
> far - ignore that ifdef branch entirely).
> 
> // Martin

It is a good argument that there is no practical way to test those code
paths and maybe it is already broken. If there is really no user of it
then I would suggest to start cleanup / removal of #ifdefs in CRT
headers.


_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to