Andrew Talbot <Andrew.Talbot(a)talbotville.com> writes:
I believe these identifiers are POSIX ones (from <sys/stat.h>), so they should not possess one leading underscore (unlike the similar ones in "msvcrt").
These defines are meant for Windows, where they do have underscores. -- Alexandre Julliard julliard(a)winehq.org
Alexandre Julliard wrote:
Andrew Talbot <Andrew.Talbot(a)talbotville.com> writes:
I believe these identifiers are POSIX ones (from <sys/stat.h>), so they should not possess one leading underscore (unlike the similar ones in "msvcrt").
These defines are meant for Windows, where they do have underscores.
I am getting "unrecognized identifier" messages when looking at ntdll/directory.c where it calls the S_ISCHR() and S_ISDIR() macros, these are caused by the identifiers like _S_IFMT in "wine/port.h" seemingly not being defined. The only place, on my system, where I could find definitions of these identifiers was in "include/msvcrt/sys/stat.h". Are files such as ntdll/directory.c and ntdll/file.c getting to know about these identifiers via a route that a static checker cannot follow? -- Andy.
Andrew Talbot <Andrew.Talbot(a)talbotville.com> writes:
I am getting "unrecognized identifier" messages when looking at ntdll/directory.c where it calls the S_ISCHR() and S_ISDIR() macros, these are caused by the identifiers like _S_IFMT in "wine/port.h" seemingly not being defined. The only place, on my system, where I could find definitions of these identifiers was in "include/msvcrt/sys/stat.h". Are files such as ntdll/directory.c and ntdll/file.c getting to know about these identifiers via a route that a static checker cannot follow?
On any decent Unix the S_ISCHR etc. macros are defined by sys/stat.h, so our defines are never used. -- Alexandre Julliard julliard(a)winehq.org
Alexandre Julliard wrote:
On any decent Unix the S_ISCHR etc. macros are defined by sys/stat.h, so our defines are never used.
Right. I now see that Splint represents S_ISCHR() and the like as functions (despite containing a comment saying that "they're macros virtually everywhere"), so the #ifndef's in "wine/port.h" were not seeing prior preprocessor definitions. Thanks, -- Andy.
participants (2)
-
Alexandre Julliard -
Andrew Talbot