mirror of
https://github.com/netwide-assembler/nasm
synced 2026-08-26 16:23:04 -04:00
Cross-referenced configure.ac's AC_CHECK_HEADERS/AC_CHECK_FUNCS/PA_* tests (as materialized into config/config.h.in) against config/msvc.h and added definitions for macros MSVC actually supports: - HAVE_STDARG_H, HAVE_STDIO_H, HAVE_WCHAR_H: always present. - HAVE_STDINT_H: available starting with Visual Studio 2010 (_MSC_VER >= 1600). - HAVE_INTRIN_H plus an #include <intrin.h>, gated on Visual Studio 2005 (_MSC_VER >= 1400) when the header was introduced. - HAVE_ISCNTRL: always present. - HAVE_ISASCII plus '#define isascii __isascii', since MSVC only provides the underscore-prefixed spelling. - HAVE__BYTESWAP_USHORT/_ULONG/_UINT64: always present, declared in <stdlib.h>, matching the names PA_FIND_FUNC probes for in autoconf/m4/pa_endian.m4. - HAVE__BITSCANREVERSE (>=1400) and HAVE__BITSCANREVERSE64 (>=1400 and only on _M_X64/_M_ARM64, since the 64-bit intrinsic does not exist on 32-bit x86). - HAVE_UNSIGNED_LONG_LONG_INT: always present. - HAVE_UINTMAX_T, gated on '#ifdef HAVE_STDINT_H' rather than a separate version check, with a textual 'unsigned long long' fallback for uintmax_t otherwise; gating strictly on HAVE_STDINT_H avoids the fallback macro clobbering <stdint.h>'s own uintmax_t typedef when both would otherwise be available. Deliberately left out anything that is POSIX/GNU/BSD-only or does not exist verbatim on MSVC (strcasecmp/strsep/strlcpy/mempcpy, getuid/ getrlimit/realpath, GCC __builtin_*/attribute probes, byteswap.h/ endian.h family, C23 stdbit.h, etc.), since compiler.h and the relevant call sites already handle those cases separately for MSVC. Verified with x86_64-w64-mingw32-gcc -fsyntax-only using manually defined _MSC_VER/_M_X64/_M_ARM64 across Visual Studio versions 1310/1400/1600/1800/1929 (mingw-w64 declares the same intrinsics in the expected headers), then confirmed end-to-end with a real MSVC (cl.exe/nmake) build in CI. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> |
||
|---|---|---|
| .. | ||
| msvc.h | ||
| unconfig.h | ||
| unknown.h | ||
| watcom.h | ||