September 01, 2023
https://issues.dlang.org/show_bug.cgi?id=24130

          Issue ID: 24130
           Summary: ImportC: Windows - Cannot build nearly program that
                    uses most system headers as 32-bit.
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Windows
            Status: NEW
          Severity: critical
          Priority: P1
         Component: dmd
          Assignee: nobody@puremagic.com
          Reporter: trnsz@pobox.com

DMD v2.105.0, Windows 11, latest MSVC community edition:

>TYPE test.c

#include <windows.h>
int main(void) { return 0; }

>DMD -m32 -v test.c
predefs   DigitalMars LittleEndian D_Version2 all Windows Win32
CRuntime_Microsoft CppRuntime_Microsoft D_InlineAsm D_InlineAsm_X86 X86 assert
D_PreConditions D_PostConditions D_Invariants D_ModuleInfo D_Exceptions
D_TypeInfo D_HardFloat
binary    dmd
version   v2.105.0-dirty
config    C:\D\dmd2\windows\bin64\sc.ini
DFLAGS    -IC:\D\dmd2\windows\bin64\..\..\src\phobos
-IC:\D\dmd2\windows\bin64\..\..\src\druntime\import
include   C:\D\dmd2\windows\bin64\..\..\src\druntime\import\importc.h
C:\Program Files\Microsoft Visual
Studio\2022\Community\VC\Tools\MSVC\14.37.32822\bin\HostX64\x86\cl.exe /P
/Zc:preprocessor /PD /nologo test.c
/FIC:\D\dmd2\windows\bin64\..\..\src\druntime\import\importc.h /Fitest.i
parse     test
C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\um\winnt.h(1016):
Error: `asm` statements must end in `;`
C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\um\winnt.h(1032):
Error: `asm` statements must end in `;`
C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\um\winnt.h(1048):
Error: `asm` statements must end in `;`
C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\um\winnt.h(13826):
Error: found `i64` when expecting `)`
C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\um\winnt.h(13826):
Error: found `i64` when expecting `)`
C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\um\winnt.h(13826):
Error: found `i64` when expecting `)`
C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\um\winnt.h(13826):
Error: found `i64` when expecting `)`
C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\um\winnt.h(13826):
Error: found `i64` when expecting `)`
C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\um\winnt.h(13826):
Error: found `)` when expecting `]`
C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\um\winnt.h(13826):
Error: `=`, `;` or `,` expected to end declaration instead of `)`

--