Thread overview
[Issue 23725] ImportC fails to parse __asm __volatile on FreeBSD stdatomic.h and fenv.h
[Issue 23725] ImportC fails to parse __asm __volatile ("pause")
Mar 19
Dlang Bot
3 days ago
Walter Bright
February 18
https://issues.dlang.org/show_bug.cgi?id=23725

Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ImportC

--
February 18
https://issues.dlang.org/show_bug.cgi?id=23725

Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|ImportC fails to parse      |ImportC fails to parse
                   |__asm __volatile ("pause")  |__asm __volatile on FreeBSD
                   |                            |stdatomic.h and fenv.h

--- Comment #1 from Walter Bright <bugzilla@digitalmars.com> ---
The trouble is __GNUCLIKE_ASM is always defined because __GNUC__ is defined. Turning off __GNUC__ causes a lot of error messages like the system .h files need to be edited.

__GNUCLIKE_ASM turns on use of the inline assembler.

--
February 27
https://issues.dlang.org/show_bug.cgi?id=23725

Iain Buclaw <ibuclaw@gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P1                          |P3

--
March 19
https://issues.dlang.org/show_bug.cgi?id=23725

--- Comment #2 from Walter Bright <bugzilla@digitalmars.com> ---
The troublesome block of code in ieeefp.h looks like:

#define __fldcw(addr)   __asm __volatile("fldcw %0" : : "m" (*(addr)))
#define __fldenv(addr)  __asm __volatile("fldenv %0" : : "m" (*(addr)))
#define __fnclex()      __asm __volatile("fnclex")
#define __fnstcw(addr)  __asm __volatile("fnstcw %0" : "=m" (*(addr)))
#define __fnstenv(addr) __asm __volatile("fnstenv %0" : "=m" (*(addr)))
#define __fnstsw(addr)  __asm __volatile("fnstsw %0" : "=m" (*(addr)))
#define __ldmxcsr(addr) __asm __volatile("ldmxcsr %0" : : "m" (*(addr)))
#define __stmxcsr(addr) __asm __volatile("stmxcsr %0" : "=m" (*(addr)))

--
March 19
https://issues.dlang.org/show_bug.cgi?id=23725

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull

--- Comment #3 from Dlang Bot <dlang-bot@dlang.rocks> ---
@WalterBright created dlang/dmd pull request #15004 "fix Issue 23725 - ImportC fails to parse __asm __volatile on FreeBSD …" fixing this issue:

- fix Issue 23725 - ImportC fails to parse __asm __volatile on FreeBSD stdatomic.h and fenv.h

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

--
3 days ago
https://issues.dlang.org/show_bug.cgi?id=23725

--- Comment #4 from Walter Bright <bugzilla@digitalmars.com> ---
Fixed by https://github.com/dlang/dmd/pull/15012

--