Thread overview
[Issue 23894] ImportC: _InterlockedExchangeAdd and a ton of other VC intrinsics are not recognized
May 11, 2023
Walter Bright
May 11, 2023
Max Samukha
May 29, 2023
Walter Bright
May 11, 2023
https://issues.dlang.org/show_bug.cgi?id=23894

Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bugzilla@digitalmars.com

--- Comment #1 from Walter Bright <bugzilla@digitalmars.com> ---
ImportC doesn't support gcc's inline assembler, either. Is the use of these intrinsics blockable with some macro?

--
May 11, 2023
https://issues.dlang.org/show_bug.cgi?id=23894

--- Comment #2 from Max Samukha <maxsamukha@gmail.com> ---
(In reply to Walter Bright from comment #1)
> Is the use of these intrinsics blockable with some macro?

I don't think so. They are not conditioned on a macro that could be simply
(un)defined (if that's what you meant).

--
May 29, 2023
https://issues.dlang.org/show_bug.cgi?id=23894

--- Comment #3 from Walter Bright <bugzilla@digitalmars.com> ---
Could you please post the section of code in the windows.h you have?

--
June 03
https://issues.dlang.org/show_bug.cgi?id=23894

--- Comment #4 from Max Samukha <maxsamukha@gmail.com> ---
Created attachment 1878
  --> https://issues.dlang.org/attachment.cgi?id=1878&action=edit
VC intrinsics referenced by windows.h

--
June 03
https://issues.dlang.org/show_bug.cgi?id=23894

--- Comment #5 from Max Samukha <maxsamukha@gmail.com> ---
(In reply to Walter Bright from comment #3)
> Could you please post the section of code in the windows.h you have?

Please see an isolated test case in the attachment.

--
December 01
https://issues.dlang.org/show_bug.cgi?id=23894

--- Comment #6 from anonymous4 <dfj1esp02@sneakemail.com> ---
Another problem is

#define GENERIC_READ (0x80000000L)

these are interpreted as helper macros due to parentheses and skipped.

--
December 02
https://issues.dlang.org/show_bug.cgi?id=23894

--- Comment #7 from Walter Bright <bugzilla@digitalmars.com> ---
(In reply to anonymous4 from comment #6)
> Another problem is
> 
> #define GENERIC_READ (0x80000000L)
> 
> these are interpreted as helper macros due to parentheses and skipped.

This PR should resolve that problem.

https://github.com/dlang/dmd/pull/15871

--
March 11
https://issues.dlang.org/show_bug.cgi?id=23894

Carl Sturtivant <sturtivant@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |sturtivant@gmail.com

--- Comment #8 from Carl Sturtivant <sturtivant@gmail.com> ---
Here's a workaround.
https://forum.dlang.org/post/lbvjpwqgcgducgoxwsxe@forum.dlang.org
There's a list of all x64 MSVC intrinsics at the included link with prototypes
with named parameters.

--