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
Jun 03, 2023
Max Samukha
Jun 03, 2023
Max Samukha
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, 2023
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, 2023
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.

--